Repository navigation
fix(mobile): Usage and Settings use the glass header and the Duo rail - #24348
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — This focused iOS UI change makes existing workspace pages use the glass header and moves the Usage environment filter into the native Duo rail. Because it changes the default presentation of existing product screens, the user-visible behavior merits human review. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Workspace header styling apps/mobile/src/features/workspace/WorkspaceRootScreen.tsx |
The workspace root now bases iOS header transparency on native liquid-glass support. It leaves content styling unset and removes the Usage-tab-specific headerRight override. |
Settings header options apps/mobile/src/features/settings/SettingsRouteScreen.tsx, apps/mobile/src/features/settings/components/SettingsScreen.tsx |
Both settings screens remove their iOS native stack options for header and content backgrounds. |
Usage native menu apps/mobile/src/features/usage/UsageRouteScreen.tsx, apps/mobile/src/features/workspace/WorkspaceExtraTab.tsx |
The Usage screen configures environment-filter actions through native header items. The extra tab no longer sets header items to undefined. |
Priority:
Estimated code review effort: 2 (Simple) | ~12 minutes
Change: Bug fix
Suggested labels: 📱 Native Change, size:M
Suggested reviewers: pixpmusic
Merge Risk: 
Minimal · up to 968ff
-
The Usage filter remains named in the native menu. No actionable merge-blocking issue is established; this change is ready for normal checks.
Pre-merge checks: 
3 · 
1
-
Failed checks: 1 warning Passed checks: 3 passedFull details: Description check
-
Explanation
The description explains the problem, implementation, affected platforms, verification results, and includes visual evidence. It does not provide the required scope and approval information, and the Settings before screenshot link is empty.
Resolution
Add the Scope and approval section with the related issue or explicit maintainer approval, or explain why this focused fix qualifies for an exemption. Provide a valid Settings before screenshot link and verify that all before/after labels match their images.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
## What's Changed * fix(mobile): Live Activity stops shouting the running-agent count by @juliusmarminge in pingdotgg/t3code#24329 * feat(usage): include Muse Code session history by @Wiktor102 in pingdotgg/t3code#22443 * feat(mobile): add Usage and Settings to workspace navigation by @PixPMusic in pingdotgg/t3code#23841 * fix(mobile): keep iPad workspace columns aligned while resizing by @PixPMusic in pingdotgg/t3code#24182 * fix(mobile): no-project threads show a chat bubble instead of a monogram by @flamboh in pingdotgg/t3code#21546 * fix(mobile): stabilize Duo search and portrait navigation by @PixPMusic in pingdotgg/t3code#24206 * fix(mobile): the unfolded Duo keeps its header in portrait by @juliusmarminge in pingdotgg/t3code#24339 * fix(client-runtime): avoid duplicate handoff previews during startup by @Yash-Singh1 in pingdotgg/t3code#24349 * fix(mobile): Usage and Settings use the glass header and the Duo rail by @juliusmarminge in pingdotgg/t3code#24348 * perf(server): coalesce superseded streaming text updates by @juliusmarminge in pingdotgg/t3code#24267 ## New Contributors * @Wiktor102 made their first contribution in pingdotgg/t3code#22443 **Full Changelog**: pingdotgg/t3code@v0.1.3-nightly.20261024.3604...v0.1.3-nightly.20261024.3617 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.3-nightly.20261024.3617
* test: delete low-value tests and dead test-only exports (pingdotgg#24058) * test(server): restore DST scheduling tests deleted in the test snap (pingdotgg#23991) * test(web): restore project settings permission tests deleted in the test snap (pingdotgg#24011) * test(mobile): restore clipboard secret-redaction test deleted in the test snap (pingdotgg#23980) * fix(web): Cmd+B toggles the sidebar unless text is selected (pingdotgg#24063) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): agent-browser and Chrome no longer outlive the agent that started them (pingdotgg#21299) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(client-runtime): restore render scheduler tests deleted in the test snap (pingdotgg#23977) * fix(web): cmd+k search hides subagents and favors recent, whole-word matches (pingdotgg#24032) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(lint): new polling loops in tests now fail lint (pingdotgg#23983) * ci: unused dependency patches fail in check:changed, not after push (pingdotgg#23988) * fix(desktop): PDFs in the preview can be annotated (pingdotgg#24022) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): instructed compact runs without a bare compaction first (pingdotgg#24008) Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(desktop): reduce app crashes when a preview tab's renderer dies during agent screenshots (pingdotgg#24056) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): Stop stops a thread's subagents again (pingdotgg#23886) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(desktop): a stuck quit no longer leaves the app unkillable (pingdotgg#23873) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): keep blockquote text readable in every theme (pingdotgg#24036) * fix(bitbucket): stop the startup sweep from flooding Bitbucket with 429s (pingdotgg#23889) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): screen readers hear when the open thread starts, needs you or finishes (pingdotgg#23752) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): reduce allocations in streaming timeline scans (pingdotgg#23739) * perf(web): reuse a collator when sorting changed-file trees (pingdotgg#23776) * perf(scripts): check:changed finishes in about 10 s (pingdotgg#23581) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): size Usage header controls to the available width (pingdotgg#24123) * perf(server): speed up large terminal clipboard sequences (pingdotgg#23819) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): make stale CLI service recovery actionable (pingdotgg#23541) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): pasted images show their upload tile instantly (pingdotgg#23832) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): clean up deleted threads worktrees with subagents (pingdotgg#23900) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): pause periodic PR discovery without foreground clients (pingdotgg#23852) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): meter checkpoint git subprocess attempts (pingdotgg#24218) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(web): clear stale resource monitor errors after retry (pingdotgg#24229) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(mobile): align draft workspace controls with the composer (pingdotgg#24239) * feat(mobile): thread header minimizes on the Duo while reading back through history (pingdotgg#24235) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): center pull request timeline actions (pingdotgg#24259) * fix(server): find the resource monitor when the server runs from its build output (pingdotgg#23965) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Victor Vogel <satsdev@only21mil.xyz> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com> Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Akshar Patel <123344143+AksharP5@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> * fix(pull-requests): list filters narrow on every host that can (pingdotgg#23922) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(pull-requests): a filtered list fills its page instead of waiting for a scroll (pingdotgg#23923) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(pull-requests): label and author filters search the host (pingdotgg#23924) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): chat and composer chips stay readable in light mode (pingdotgg#22585) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): review thread avatars no longer clip in collapsed activity rows (pingdotgg#23545) * ci: close "needs more info" issues after 7 days without a reply (pingdotgg#22628) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(server): Codex accounts show ChatGPT's current plan names (pingdotgg#24200) * fix(observability): desktop dev version and web environment match the other services (pingdotgg#23975) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(observability): custom resource attributes use the t3code prefix (pingdotgg#23974) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(mobile): Home and pull request lists let UIKit own their top inset (pingdotgg#24284) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): keep the Duo's Home and pull request headers fixed (pingdotgg#24295) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): interrupts started by an agent no longer say "by user" in the timeline (pingdotgg#24299) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(relay): deploy on-demand preview stages for labeled PRs Labeled same-repo PRs deploy stage pr-<n> behind the relay-preview environment reviewer gate. Unlabel or close tears the stage down, and a nightly job retries failed teardowns. Runtime-created managed endpoint tunnels and CNAMEs are swept by a PreviewTunnelSweep resource. Known gaps, tracked as follow-ups: an interrupted preview deploy can leave runtime tunnels behind; repo-level relay secrets still bypass the environment gate until moved. 🤖 Generated with [Claude Code](https://claude.com/claude-code) * fix(mobile): HTML links in pull request comments open when tapped (pingdotgg#22110) * perf(client): avoid full ordering scans for streamed replacements (pingdotgg#24264) * fix(server): a fork's first /compact compacts its inherited history (pingdotgg#24172) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): agent recordings honor the browser frame rate setting (pingdotgg#23895) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(client-runtime): Stop clears commands already finished on the server (pingdotgg#23814) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): SSH environments on an older reused remote server explain the version mismatch instead of reconnecting forever (pingdotgg#23647) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): keep usage-limit wake action visible (pingdotgg#23803) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): reject pairing with an incompatible server protocol (pingdotgg#23789) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): Live Activity stops shouting the running-agent count (pingdotgg#24329) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(usage): include Muse Code session history (pingdotgg#22443) Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(mobile): add Usage and Settings to workspace navigation (pingdotgg#23841) * fix(mobile): keep iPad workspace columns aligned while resizing (pingdotgg#24182) * fix(mobile): no-project threads show a chat bubble instead of a monogram (pingdotgg#21546) * fix(mobile): stabilize Duo search and portrait navigation (pingdotgg#24206) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): the unfolded Duo keeps its header in portrait (pingdotgg#24339) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(client-runtime): avoid duplicate handoff previews during startup (pingdotgg#24349) * fix(mobile): Usage and Settings use the glass header and the Duo rail (pingdotgg#24348) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): coalesce superseded streaming text updates (pingdotgg#24267) * fix(server): stop flooding analytics with successful MCP tool calls (pingdotgg#24287) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(search): Cmd+K finds the right thread first, with indexed message search (pingdotgg#24343) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --------- Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Akshar Patel <123344143+AksharP5@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Victor Vogel <satsdev@only21mil.xyz> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: Wiktor Golicz <56449542+Wiktor102@users.noreply.github.com>
Now that Usage and Settings are workspace pages instead of sheets (#23841), they still looked like sheets: #23841 forced an opaque header on them, and on the folded Duo on every root tab, Home and pull requests included. Usage's environment filter was a custom React view in
headerRight, so the Duo couldn't move it into the vertical bar and it sat beside the title.SettingsScreenpages keep the transparent glass header the stack already configures. Their scroll views already carry scroll-edge markers, so content blurs under the bar like threads and pull requests.Folded Duo simulator (the after captures happen to be in landscape):
Also checked unfolded: Settings and Usage show the glass header with their filter at the trailing edge.
check:changedpasses. Like other unset Duo screens, Settings and Usage follow the system's minimize-on-scroll on the folded display; Home and the pull request lists stay pinned tonever(#24295).Model: Claude Opus 5.5 | Harness: Claude Code in T3 Code
🤖 Generated with Claude Code