fix(mobile): review guide buttons stay on one line#24764
Problem
The mobile review guide notice forces its action into a 160-point container. With enlarged system text, “Write guide” wraps onto two lines even though the card has room for the complete label. The longer loading and writing labels also compete with their spinner for this fixed width.
Change
Let the guide action size to its label and spinner. Allow the adjacent “Started” timestamp to wrap onto its own row when necessary. This covers the empty, loading, writing, retry, stale, and rewriting notices in both the PR Guide tab and guide stop screens.
Scope and approval
This is a focused fix for an obvious layout bug, requested with a reproduction screenshot. It changes only the mobile guide notice layout.
Verification
- Reproduced the two-line label on Android at 1.5× system font scale; the fixed button displays the complete label on one line.
- Rendered the real
GuideNoticeandButtoncomponents in a temporary native demo fixture, with the app’s typography and appearance providers. Checked empty, loading, writing, failed, unavailable, stale, rewriting, and read-only states. The fixture and layout instrumentation are not included in the change. - iPhone small (360×780), Pro (402×874), Pro Max (440×956), Duo folded (466×678) and unfolded (951×669), and iPad (1032×1376). Repeated the small iPhone at XXXL system text size. All action labels stayed on one line, including loading indicators; the timestamp moved below the button when needed.
- Android phone at default and 1.5× system text size, plus the foldable inner display (2208×1840) and a cover-sized viewport (1080×2092) at 1.5× system text size. The emulator kept the inner display after folding, so the cover check also applied the configured cover geometry with
wm size; the override was reset afterward. - The Duo pose change reported an unsupported Xcode hinge-angle telemetry command. Both rendered viewport sizes were verified through native screenshots and accessibility snapshots.
vp run check:changedpassed: format, lint, both knip checks, and affected package typechecks. This is a visual layout fix; no implementation-mirroring UI test was added.
| Before · Android 1.5× text | After · Android 1.5× text |
|---|---|
| External image | External image |
Writing guide with the started timestamp
The timestamp stays beside the action on wide layouts and moves below it on narrow layouts. These captures include enlarged system text and show the complete notice panel.
| Small iPhone · XXXL text | Android cover size · 1.5× text |
|---|---|
| Small iPhone guide panel showing Writing guide and Started 5:00 AM below the button | Android guide panel showing Writing guide and Started 5:00 AM below the button |
Wide Android foldable · 1.5× text, with the timestamp beside the button:
Wide Android foldable guide panel showing Writing guide with Started 5:00 AM on the rightAdditional native captures: Android writing, small iPhone with larger text, Duo unfolded, iPad.
All 88 native state captures and verification snapshots.
Model: GPT-6.1 Sol, high reasoning effort. Harness: Codex in T3 Code.
Checks
Approvability
Verdict: Approved at a8621ae
Macroscope's review found this PR approvable — This is a small, self-contained mobile layout fix that lets existing review-guide actions size to their content and wrap alongside the timestamp. It does not alter action behavior, data contracts, defaults, deployment, or static-analysis settings.
You can add or adjust custom eligibility rules. Learn more.
Important
Review skipped
Review was skipped as selected files did not have any reviewable changes.
External image Run configuration
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 1eb4071
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
b447f5e8-9df0-43f8-a1e1-1d0e15e9aa31
External image Commits
Reviewing files that changed from the base of the PR and between a8621ae31b6f2a95393429aa891f53025c76d1eb and 1447ef67996a1e99a8dd51587e4c8ad1f18d06ba.
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
- 🔍 Trigger review
No actionable comments were generated in the recent review.
External image Recent review info
External image Run configuration
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: c79ef8c
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
e293df6e-535f-4764-9a89-64b87379fc08
External image Commits
Reviewing files that changed from the base of the PR and between c79ef8c454e1268ff79da5a9dcb74572e86f7861 and a8621ae31b6f2a95393429aa891f53025c76d1eb.
External image Files selected for processing: 1
apps/mobile/src/features/pull-requests/guide/GuideNotice.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.
Walkthrough
The pull-request guide action row now allows its contents to wrap. The action button is rendered directly in the row without a fixed-width wrapper or the
fullWidthsetting. Its label, tone, disabled state, press handler, and loading state remain unchanged.Changes: Guide action layout
Layer / File(s) Summary Wrapping action row
apps/mobile/src/features/pull-requests/guide/GuideNotice.tsxThe action row allows wrapping. The button renders directly in the row without a fixed-width wrapper or fullWidth. Its other listed properties remain unchanged.Priority: External image Low
Estimated code review effort: 2 (Simple) | ~7 minutes
Change: Bug fix
Possibly related PRs
- pingdotgg/t3code#24189: Both changes address long review-guide action labels in narrow layouts. This PR changes the mobile action row layout.
Suggested reviewers:
juliusmarminge
Merge Risk: External image Minimal · up to a8621
The layout change is ready to merge.
Pre-merge checks: Passed 4
Check name Status Explanation Title check Passed The title clearly identifies the mobile guide button layout fix and matches the primary change. Linked Issues check Passed Check skipped because no linked issues were found for this pull request. Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request. Description check Passed The pull request description includes all required sections: Problem, Change, Scope and approval, and Verification. It explains the layout bug, the implementation approach, the approval rationale, aff… Full details: Description check
Explanation
The pull request description includes all required sections: Problem, Change, Scope and approval, and Verification. It explains the layout bug, the implementation approach, the approval rationale, affected states and platforms, focused verification results, screenshots, limitations, and the agent model and harness.
Finishing Touches
🧪 Generate unit tests (beta)
- 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.
Added 1 commit
- fix(mobile): review guide buttons stay on one line1447ef6
Note
Written by gpt-6.1-sol on behalf of Maria
Verified in a real dev environment
No changed behavior could be exercised on this Linux Boat VM. This is an unsuccessful verification attempt, not a runtime pass.
Inspected the description, discussion, reviews, commit authors, and diff at 1447ef67996a1e99a8dd51587e4c8ad1f18d06ba. GitHub reports the PR open, with one commit by PixPMusic and no commits by juliusmarminge or t3dotgg. The change only affects the native mobile GuideNotice rendered in the PR Guide tab and guide stop screens: it removes the fixed 160-point action wrapper and permits the action/timestamp row to wrap. It does not change the web client.
Availability transcript:
| 1 | t3 device_list |
| 2 | Agent device access is turned off for this environment. |
| 3 | |
| 4 | timeout 30 adb devices -l |
| 5 | List of devices attached |
| 6 | [no devices] |
The repository mobile verification skill requires stopping verification when device tools or the selected device are unavailable. No dev server was started, no code was changed, and no screenshots or video were captured. Existing CI reports 28 successful checks, 0 pending, and 0 failing; that does not prove the native layout works.
Not verified
The original bug on github/main and the fix on the exact PR head remain unverified. No native client was available to exercise enlarged system text, single-line labels and spinners, timestamp wrapping, compact guide-stop notices, write/retry/refresh actions, or neighboring read-only and busy states. No real Codex gpt-6.1-sol provider turn was run through the mobile client. A narrow Playwright web viewport cannot exercise this React Native component. Native iOS and Android verification requires an enabled device host and a real app connection; existing PR demo-fixture captures were not treated as integration proof.
Note
Written by gpt-6.1-sol on behalf of Maria
Verified in a real dev environment
No changed behavior was verified in this attempt. Re-read the description, discussion, reviews, commit authors, exact diff, and current status. GitHub PR #24764 is open at 1447ef67996a1e99a8dd51587e4c8ad1f18d06ba, with one commit by PixPMusic and none by juliusmarminge or t3dotgg. The git.cafe number is also 24764.
The diff changes only native mobile GuideNotice: remove the fixed 160-point action wrapper and allow the button/timestamp row to wrap. Its entry points are the PR Guide screen and guide stop screen. Playwright against the web client cannot exercise this React Native layout. Existing CI reports 28 successful checks, zero pending and zero failing; that is not runtime proof.
Current availability transcript:
| 1 | device_list |
| 2 | Agent device access is turned off for this environment. |
| 3 | |
| 4 | timeout 30 adb devices -l |
| 5 | List of devices attached |
| 6 | [no devices] |
The repository mobile verification skill explicitly requires stopping verification when device tools or the selected device are unavailable. No dev server was started, no code or PR head was changed, and no captures were produced or uploaded.
Not verified
The original bug on github/main, the exact PR head in a real native client, enlarged system text, single-line action labels/spinners, timestamp wrapping, compact notices, write/retry/refresh actions, and neighboring busy/read-only states remain unverified. No Codex gpt-6.1-sol turn was run through the mobile client. Neither Android nor iOS integration was exercised. An enabled native device host and app connection are required to complete this verification; existing demo-fixture evidence was not treated as integration proof.