Repository navigation
fix(native-chat): line Continue up with the chat column - #27042
brennanb2025 wants to merge 1 commit into
Conversation
Review summaryProblem: after a reply was cut off when Orca stopped, the chat's Continue button sat to the right of the transcript and the message box, outside the chat column. The row had its own fixed width ( Change: the Continue row now uses the same column token ( Verified:
Not verified: the phone app, which renders its own layout. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review. 📝 WalkthroughWalkthroughThe Continue control now uses an outer wrapper for horizontal padding. Its inner row uses the chat content-width variable instead of a fixed maximum width. A layout test checks that the button’s parent has the expected alignment and width classes. Button, tooltip, and accessible explanation behavior remain unchanged. Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The change adjusts the Continue control’s alignment without an evidenced impact to chat behavior or data. No actionable merge-blocking risk is established from the supplied change context. Pre-merge checks |
|
ELI5
When Orca (or the server a chat runs on) stops in the middle of an agent's reply, the native chat shows a small Continue button under the cut-off reply. That button sat off to the right, outside the column the conversation and the message box live in, so it looked detached from the chat. It now sits inside that same column, right-aligned with the message box.
What Changed
Before: the Continue row had its own fixed width (
max-w-4xl, 56rem) and its own padding. The conversation and the message box use the chat's column width instead (46rem by default, or whatever the user picked in the chat width setting). On any pane wider than the chat column, Continue landed to the right of the transcript and the message box, outside the chat column. With the "full" chat width setting it was the other way round: the chat filled the pane but Continue stayed capped at 56rem.After: Continue lines up with the right edge of the message box at every chat width setting and pane size.
Mechanism:
NativeChatInterruptedContinuenow uses the same two-layer layout as the message box (NativeChatComposerField) and the other rows around it: an outer wrapper with the message box's side padding (px-3 sm:px-4), and an innermx-auto w-full max-w-(--chat-content-max-width)column.--chat-content-max-widthis the chat-column width token the native chat sets from the user's width setting. The button, tooltip and screen-reader text are unchanged, only re-indented into the new inner wrapper.The off-column width came in with #25675, which added the Continue row.
Why
Every other row in the chat (transcript, message box, queued messages, notices, task list, background-tasks strip) sizes itself from
--chat-content-max-width. A fixed width on this one row is why it drifted, and it also ignored the user's chat width setting. Using the shared token, not a different fixed number, keeps Continue in the column if that setting or the default ever changes. It copies the message box's padding, not the transcript's (which adds 5px inside the column), because the button is right-aligned and should line up with the message box directly below it.Linked Issue
None. Visual follow-up to #25675.
Visual Proof
Live desktop app, a chat whose reply was cut off when Orca stopped, with the message box below.
Before: Continue sits to the right of the chat column, past the right edge of the notice and the message box.
After, default chat width: Continue's right edge lines up with the notice and the message box (measured: 1198 px for the button, the chat column and the message box).
After, Full chat width: Continue follows the chat width setting too (all three at 1362 px).
Testing
Added a test to
NativeChatInterruptedContinue.test.tsxthat checks the Continue button sits in the shared chat column. It fails on the old markup and passes with this change.NativeChatInterruptedContinue.test.tsxandNativeChatStructuredSession.test.tsxpass (40 tests).Web typecheck (
config/tsconfig.tc.web.json) passes.pnpm run check:code-quality:changedpasses, and so do all 22 local static-analysis checks from CI (lint, code quality, localization, ratchets).I manually tested these changes locally
Automated tests added/updated, or explained why not below
AI Disclosure
Review
Agent skill upstream boundary
Notes
This is a renderer-only layout change (CSS classes), so it is the same on every platform and for local, SSH and paired-server chats. No data, wire or behaviour changes.
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)