feat(ios): add full thread row menu - #5753
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
65e66ee to
4df1e9b
Compare
f6d7154 to
cc44c81
Compare
|
Rebased this draft onto the signed SwiftUI base rewrite at 4df1e9b. The only conflict was in NewThreadView; the repair keeps the new activePicker flow and preserves workspaceSelectionIsSeeded = false when a branch is chosen. GitHub now reports the intended 13-file diff (865 additions, 72 deletions), not the rewritten base history. Verification: 12 focused Xcode tests passed, 0 failed; git diff --check passed. New tip: cc44c81. |
cc44c81 to
ca4bcd1
Compare
|
Closeout receipt for exact head
I am retaining draft status. The change is single-purpose but labeled |
What changed
The SwiftUI thread row now exposes the complete applicable thread workflow from one context menu: new thread on the same branch/worktree, pin/unpin, settle/reopen, snooze/wake, rename, regenerate title, archive/restore, copy path, copy branch, copy thread ID, and delete.
The menu is derived from environment capabilities and current thread state. Title regeneration reports a disabled
Regenerating…item while the request is pending. New-thread seeding preserves the selected branch/worktree, including an explicitly seeded branch that is temporarily absent from branch discovery; ordinary deleted branches still fall back normally.This is one SwiftUI-client outcome. It does not change the React Native client, web, desktop, server, or wire schemas. Mark unread remains intentionally excluded while the server read-status dependency in #5652 is open.
Why
The SwiftUI row menu previously exposed only a subset of the thread workflow. Users could not start related work on the same checkout, choose useful snooze times, reverse snooze/archive/settle states, regenerate titles, or copy thread metadata from the row.
UI evidence
Before
After
Snooze presets
Explicit branch/worktree seeding
Reverse and state-gated actions
Title-regeneration progress
Interaction video
24-second menu, snooze, and wake interaction video
Verification
t3code/rebuild-mobile-app-swiftat0d0c77431c851ff31181fb5f1708f351e0c5e80c.ThreadContextMenuTestsandCoreContractTests/testCommandBuildersMatchOrchestrationContract— 14 passed, 0 failed, 0 skipped.apps/swift-ios/Scripts/ci-test.sh— 231 tests in 28 suites passed.node scripts/generate-swift-wire-fixtures.ts --check— exit 0.git diff --check— exit 0.Scope and review note
The effective non-test diff is
size:XL. It is deliberately limited to the accepted SwiftUI thread-row-menu outcome, but an XL feature still needs maintainer alignment before merge.Checklist
size:XL)Implemented and reviewed with GPT-5.6 Sol high in the Codex harness through T3 Code.