Uh oh!
There was an error while loading. Please reload this page.
fix(mobile): keep the machine glyph next to the environment label - #9486
Conversation
The v2 thread row's subtitle text was flex-1, so the glyph landed at the far right beside the PR and provider trailers instead of after the environment name it belongs to. The text now shrinks inside a wrapper that takes the slack, so the glyph hugs the label and the trailers stay pinned. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| </Text> | ||
| ) : null} | ||
| </Text> | ||
| {props.environmentLabel && props.environmentMachine ? ( |
There was a problem hiding this comment.
🟡 Mediumthreads/thread-list-v2-items.tsx:784
Failed rows now render the machine glyph whenever environmentLabel and environmentMachine are present, including failures without lastError; this regresses the intended failed-row presentation. Restore the status !== "failed" guard on the glyph condition.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/mobile/src/features/threads/thread-list-v2-items.tsx around line 784:
Failed rows now render the machine glyph whenever `environmentLabel` and `environmentMachine` are present, including failures without `lastError`; this regresses the intended failed-row presentation. Restore the `status !== "failed"` guard on the glyph condition.
There was a problem hiding this comment.
Not a regression. The glyph now lives inside the thread.branch || environmentLabel branch, which only renders when status === "failed" && lastError is false, so a failed row that has an error message still shows the red text and no glyph, exactly as before. A failed row without an error message never had a distinct presentation: the old code also fell through to the "branch · env" line and drew the label, and the old status !== "failed" guard only suppressed the icon next to that label. Drawing the label without its glyph was an accidental asymmetry, so the glyph following the label whenever the label renders is the intended behavior.
There was a problem hiding this comment.
This does change failed rows without lastError: the previous explicit guard hid their glyph. I found no evidence that removing that distinction was intended, so the original concern stands.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Would Approve Macroscope's review found this PR approvable — This is a focused mobile presentation fix that keeps the machine glyph beside the environment label without affecting application state or backend behavior. The current diff also shows the glyph on failed rows without an error message, so that Medium-severity regression must be resolved before merge. Not approved because:
Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more. |
Problem
On the mobile thread list, the machine glyph that #9299 added lands at the far right of the subtitle row, next to the PR number and provider icon, instead of after the environment name it describes. The subtitle
Textwasflex-1, so it swallowed the horizontal slack and pushed the glyph away fromnucbox-1.Fix
The text now shrinks inside a
flex-1wrapper that takes the slack, so the row readsmain · nucbox-1 ▭with the glyph hugging the label, and the PR and provider trailers stay pinned right. Only the v2 thread row needed this; the pending row and the v1 rows already placed the glyph beside the label.The glyph can't live inside the
Textitself without breaking single-line truncation, which is why it sits as a sibling.Before / after
Rows with a branch, environment label, and linked PR, where the slack between label and trailers is widest. Before, the glyph sat with the PR number; after, it follows the label. iPhone 17 Pro simulator, dev client on this branch against a disposable backend seeded from real data.
Verification
Mobile typecheck and lint pass. Layout-only change.
Built with Claude Fable 5 in Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Layout-only change in the mobile thread list subtitle row; no API, auth, or data handling impact.
Overview
Fixes v2 thread list subtitle layout so
EnvironmentMachineSymbolsits immediately after the branch/environment text (main · nucbox-1 ▭) instead of at the far right beside the PR and provider icons.The branch/label line is wrapped in a
flex-1row: truncatingTextusesshrink(notflex-1), and the glyph is a sibling inside that wrapper so single-line ellipsis still works. The old row-level glyph (shown when not failed) is removed in favor of the in-wrapper placement when bothenvironmentLabelandenvironmentMachineare set.Reviewed by Cursor Bugbot for commit 36dec6d. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Keep machine glyph next to environment label in
ThreadListV2RowReworks the branch/environment metadata row into a flexible horizontal wrapper that truncates the text while keeping the machine symbol adjacent to the environment label. The PR and provider trailers remain positioned after the flexible metadata area, and the machine symbol stays suppressed for failed rows.
📊 Macroscope summarized 36dec6d. 1 file reviewed, 1 issue evaluated, 0 issues filtered, 1 comment posted
🗂️ Filtered Issues