Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Adds opt-in project folders to mobile thread navigation, with remembered collapse state and search across closed folders. Existing defaults remain unchanged, and turning the option off restores the previous layout and Working section preference. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
Note Written by This PR now conflicts with I have that merge ready, and |
|
I opened ozeitis#1 against this branch. It makes the folders match desktop: no repeated project icon, one-line rows indented under the folder name, and the count only on collapsed folders. It also applies cleanly on top of the |
|
Sharing related Android work from #13141 in case it is useful to people following this PR. I’ve been maintaining a personal phone-focused fork that combines an inbox-style overview with collapsible project groups. It keeps Working as a separate section above the folders. The current fork includes:
Pinned currently stays first. The optional inbox sections and Working sit above the project groups; Snoozed and one shared Settled section stay below them. Grouping applies to the main active list, while the other sections remain global. Updated Android prerelease and APK — Actual Pixel / Android 10 captures with synthetic projects and chats:
Prepared with GPT-6.1 Sol in Codex through T3 Code. |







The native mobile Threads list is flat even when a user organizes their work with the web/desktop Boring sidebar. Mobile has project filters and repository grouping identities, but no option to browse the active list as collapsible project folders.
Add Settings → Labs → Boring sidebar (group by project) to the phone list and tablet navigation sidebar. This is an opt-in presentation of the established Boring sidebar capability from #21039; the default stays flat. It reuses mobile's existing project scopes, icons, preferences, and row components. There are no dependency, server, contract, or provider changes.
Verification
vp test run src/features/home/homeThreadList.test.ts src/features/threads/threadListV2.test.ts src/features/threads/useThreadListV2.test.tsxfromapps/mobile: 69 passed.vp run check:changed --concurrency 2: all checks passed, including 80 relevant tests, 14 selected React Compiler checks, affected typechecks, lint, formatting, and both knip checks.Native pass on iPhone 18 Pro and iPad Pro 13-inch (M5), iOS/iPadOS 27.0, Xcode 27.2, against an isolated server with three synthetic projects and nine threads:
The shared fallback/Android sidebar is updated and typechecked, but Android runtime validation was not performed. Web and desktop retain their existing implementations. No live user data or real agent turns were used.
Before / after
All captures use synthetic fixtures. The images show the same build with the option disabled (existing behavior) and enabled.
Collapse and search recording · Persisted folders in dark mode
Model and harness: GPT-6, OpenAI Codex.