Skip to content

feat(mobile): add thread long-press actions - #4

Open
anirudhsama wants to merge 813 commits into
mainfrom
t3code/add-mobile-thread-menu-options
Open

anirudhsama wants to merge 813 commits into
mainfrom
t3code/add-mobile-thread-menu-options

Conversation

@anirudhsama

@anirudhsama anirudhsama commented Aug 8, 2026 •

Copy link
Copy Markdown
Owner

Mobile thread rows expose only a subset of the desktop context menu.

This brings both mobile thread-list variants to desktop action parity:

  • start a new thread on the same branch/worktree
  • pin, settle, snooze, wake, or archive where supported
  • rename and capability-gated title regeneration
  • mark unread with device-local persisted read state and a Done indicator
  • copy the effective workspace path or branch
  • delete

The actions are separated into lifecycle, title, utility, and destructive sections. iOS uses inline native UIMenu groups; Android flattens those same groups with separators while preserving Snooze as a real submenu.

Native iOS menu images now receive explicit appearance-resolved colors, fixing the transparent symbol column under React Native's New Architecture. The menu library's Fabric schema requires integer colors, so semantic PlatformColor objects are deliberately avoided. Mark unread uses envelope.badge, Copy branch uses the valid arrow.triangle.branch SF Symbol, and destructive images use iOS light/dark system-red values. Android maps the same symbol names to its local icon set.

The branch is rebased onto upstream main, which includes pingdotgg#5901 for long-press navigation suppression. This PR no longer carries a separate implementation of that fix.

Verification:

  • bunx --bun vp test run apps/mobile/src/components/menu-image-colors.test.ts apps/mobile/src/components/android-menu-sections.test.ts apps/mobile/src/features/threads/thread-list-menu.test.ts apps/mobile/src/features/threads/thread-read-state.test.ts apps/mobile/src/features/threads/new-thread-from-thread.test.ts apps/mobile/src/state/preferences.test.ts (16 tests)
  • bunx --bun vp run --filter @t3tools/mobile typecheck
  • targeted vp lint and vp fmt on changed files

Physical-device verification is being performed by the PR author.

Implemented by GPT-5.6 Sol via the Codex harness in T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L size:XL and removed size:L labels Aug 8, 2026
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch 2 times, most recently from 1f56cc4 to ec5119c Compare August 10, 2026 07:02
@github-actions github-actions Bot added size:XXL and removed size:XL labels Aug 10, 2026
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch from 206afa1 to 84e6d71 Compare August 22, 2026 12:14
@github-actions github-actions Bot added size:XL and removed size:XXL labels Aug 22, 2026
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch from d4d22c3 to d9a7093 Compare August 24, 2026 07:11
@github-actions github-actions Bot added size:XXL and removed size:XL labels Aug 24, 2026
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch from d9a7093 to 98c8e26 Compare August 25, 2026 15:34
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch 3 times, most recently from 6610fc1 to fc14138 Compare September 3, 2026 07:32
juliusmarminge and others added 28 commits September 7, 2026 00:20
… update depth errors (pingdotgg#7138)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…0493)

Onboarding listed every directory Claude Code or Codex had ever run in as one flat list of paths, with everything from the last 30 days preselected. On my machine that was 270 rows and 80 preselected. Most of them were Codex scratch folders, worktrees, and one-off questions. I wanted two or three projects and had no fast way to get there.
The scanner now reads each candidate's `.git/config` directly, so the client can group clones by origin and show the GitHub `owner/name`. Linked worktrees, Codex scratch directories under `~/Documents/Codex`, `~/Downloads`, and temp roots are no longer offered. Folders that are not git repositories collapse under "Other folders". The default selection requires a git repository with at least three threads. Select all and Select none sit above the list, and each row shows the source icons, thread count, and last activity.
On the same machine this drops the list to 162 rows and the default selection to 16.
Mobile has no project import step, so there is no mobile change.
Created with Claude Fable 5.1 in Claude Code.
Rebuild buildThreadListMenuActions to mirror web's
buildThreadActionMenuItems ordering: lifecycle block, title actions with
mark-unread, a Copy submenu (path/branch/thread id), then Archive thread
(disabled while a turn runs) beside Delete in the destructive group.

Done with ox-alpha (opencode)
- disable lifecycle Archive while a turn runs, matching the tail item
- map the `number` SF symbol to IconHash so Copy thread ID keeps its
  icon on Android
- stamp the visit time when marking a mid-turn visit read so later
  completions still surface as unread
- pass the project title when opening New Task from split-view rows

Done with ox-alpha (opencode)
ThreadListRow built its menu without isRunning, so the lifecycle-archive
disable path never applied to compact rows. Pass it through.

Done with ox-alpha (opencode)
@anirudhsama
anirudhsama force-pushed the t3code/add-mobile-thread-menu-options branch from 0909183 to 58f3116 Compare September 7, 2026 11:01
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 58f3116.

This comment will update automatically after the next completed run.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.