Skip to content

chore: update feat/code-review-menus#90

Merged
sirily11 merged 14 commits into
mainfrom
feat/code-review-menus
Jun 4, 2026
Merged

chore: update feat/code-review-menus#90
sirily11 merged 14 commits into
mainfrom
feat/code-review-menus

Conversation

@autopilot-project-manager
Copy link
Copy Markdown
Contributor

Changes

  • Implemented manual commit actions for macOS, iOS, and Android.
  • Redesigned iOS collapsed threads with improved alignment and ragged edge fixes, inspired by Android design.
  • Added a "What's New" button in the macOS Settings page.
  • Introduced a "Code Review" action in the mobile chat view for macOS, iOS, and Android.
  • Fixed floating chevron + number badges for flush alignment.
  • Resolved lint issues and optimized ThreadStore.swift for SwiftLint compliance.
  • Relaxed access control on three members in ThreadStore.swift.
  • Created ThreadStore+Embeddings.swift for managing Thread Embedding Chunks.
  • Reused existing commit hooks to streamline review processes.
  • Updated code-review config to persist provider-qualified selections.
  • Ensured consistent wire contracts between Swift and Kotlin.
  • Corrected gating requirements for branch and thread reviews.
  • Enhanced error handling for alerts and loading dialogs.

@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rxcode Ready Ready Preview, Comment Jun 4, 2026 6:48pm

Request Review

sirily11 and others added 13 commits June 5, 2026 01:49
Claude plan markdown files (~/.claude/plans/*.md) are planning scaffolding,
not real project edits, but were showing up in the thread changes list on
both desktop and mobile. Add a shared PlanLogic.isPlanFilePath(_:) predicate
(reused by the existing isPlanFileWrite) and filter these out at the two
display consumers: threadFileEdits(in:) for the desktop "This Thread" view
and handleMobileThreadChangesRequest for the mobile "View Changes" sheet.

Filtering at the consumers rather than fetchFileEdits avoids orphaning rows
in the rename/delete migration paths that also use that fetch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Render user message bubbles through the markdown renderer (new
rxCodeChatUser style tuned for the accent bubble), rewriting [ImageN]
chips into rxcode-image:// links so taps still open the image preview,
and preserving long-message collapse via height clipping. Also parse
table cell contents as inline markdown so bold/code/links/italics render
instead of showing literal syntax.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… settle

A tall card (Edit diff, Bash output) that lays out in one frame grows the
content height while the throttled/async scroll-to-bottom is still pending,
leaving distanceFromBottom huge. A non-user-driven stable geometry frame in
that window would recompute isNearBottom to false even though the user never
scrolled, causing the pending auto-scroll to bail and stranding the view above
the bottom.

Gate the un-stick recompute in MessageListScrollAnchor.apply on a new
isUserDriven flag so only a genuine user scroll releases the anchor; layout
settles keep it sticky. Preserves the "only follow the bottom while at the
bottom" semantics.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
saveSession rebuilt the ChatSession without carrying over parentThreadId,
threadLabel, and skipHooks. When a [Code Review] child thread finished
streaming, the re-save overwrote both the in-memory summary and the
persisted row with linkage-less values, un-nesting the review from its
parent. With zero children, the sidebar disclosure control returned nil
and disappeared (and stayed gone across reloads since the store row was
overwritten too).

Carry the linkage fields through in saveSession so a finished review keeps
its parent link and the collapse control remains.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ect, and thread

Add a manual "Code Review" action that spawns a [Code Review] thread, mirroring
the built-in Code Review hook but user-triggered. Two host functions in
AppState+CodeReview: branch-level review grounds the reviewer in the branch
briefing + thread summaries; thread-level review nests under a thread and reviews
its changed files.

Surfaces:
- macOS: briefing card menu, project sidebar menu ("Code Review for Current
  Branch"), and per-thread row context menu.
- iOS/Android: briefing detail + project menus (branch) and per-thread menus.

Mobile relays via two new desktop-mediated autopilot ops
(projectCreateCodeReview / threadCreateCodeReview) with AutopilotThreadBody and
AutopilotCodeReviewResult; the Mac runs the review and returns the new thread id
so the phone can navigate to it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Render a small status dot on each briefing thread row reflecting the
latest code-review verdict for the session: green (statusSuccess) when
passed, red (statusError) when issues were found, none when not reviewed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Surface the per-thread Code Review action inside the open conversation on
mobile, not just the thread list:
- iOS: new "Code Review" item in the chat thread-actions menu; spawns a
  [Code Review] thread for the current thread and deep-links to it once synced.
- Android: matching "Code Review" item in the ChatScreen overflow menu; creates
  the review thread and navigates to it via selectSession.

Also refine the macOS thread-row item label to "Code Review for this thread".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the floating chevron+count badge that sat in the left margin and
knocked parent cards out of alignment with an attached, full-width
disclosure bar beneath the parent ("N Code Reviews" + rotating chevron).
All top-level cards now share the same leading edge, and expanded reviews
get a connecting vertical rail tying them to their parent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code-review threads were appearing as briefing threads on macOS, iOS,
and Android. Exclude them at the root so all surfaces stay clean:

- Skip writing thread/title summaries for [Code Review] threads in
  storeThreadSummaryTitle and updateStoredThreadSummary, so review
  threads never enter the briefing dataset or branch-briefing text.
- Add ThreadStore.codeReviewThreadIds(label:) to identify review threads
  by their persisted threadLabel, filtering in memory to avoid SwiftData
  optional #Predicate pitfalls.
- Filter already-persisted review summaries out of BriefingView and the
  mobile snapshot (mobileThreadSummaries), which feeds iOS/Android.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Code Review hook re-prompted the original thread on both an explicit
reviewer FAIL and an "unknown" verdict (a reply with no REVIEW_RESULT:
marker). A manually cancelled review thread produces exactly that
markerless reply, so it was mistaken for "reviewer wants changes" and
kicked off an unwanted auto-retry fix turn.

Split the cases: only an explicit FAIL re-prompts (bounded by
maxReviewRounds). An unknown verdict now records not-passed and finishes
the card without re-prompting, so a cancelled or interrupted review never
auto-retries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- the Commit & Push hook injects a synthetic commit prompt as a user
  message, which leaked into thread summaries and extracted memories
- capture the commitPush setup-session marker before the after-stop
  dispatch consumes it, and skip summary/memory updates for that turn

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c466199 made the scroll anchor stay sticky through non-user layout
settles, so isNearBottom no longer flips false→true during a pinned
turn. The pinned-turn integration test asserted that obsolete flicker
and broke CI. Rewrite it to assert the new intended behavior: once the
streaming turn fills the reserved space, the list keeps following the
bottom (the pin releases without stranding the view).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sirily11 sirily11 enabled auto-merge (squash) June 4, 2026 18:50
@sirily11 sirily11 merged commit 796dddc into main Jun 4, 2026
14 checks passed
@sirily11 sirily11 deleted the feat/code-review-menus branch June 4, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant