cx-ncc.103: agent pane recap card when a turn ends on a question (Labs)
cx-ncc.103. When a finished turn ends on a question, a recap card appears above the composer. It shows the answer's last paragraph (muted, at most three lines), the question, a default action on ⌘↩ ("Yes, open PR" when the question names one, otherwise "Yes"), and "Not now". This is part (2) of the in-session status parity work with Claude Code desktop (part 1, the plan card, is #20833).
- Debug toggle: it shows only with the Debug Settings toggle "In-session status (plan card, recap card)" on (
agent.sessionStatus, off by default). With it off, the pane is unchanged. No Labs gating. - Depends on #20953 (cx-ncc.104), which adds the toggle, its
sessionStatuspage event anduseSessionStatus(). This branch merges it; land #20953 first. - Harness-agnostic: it reads the transcript rows, not any one harness's events.
- Yes: sends the reply as a normal prompt. ⌘↩ triggers it while the composer is empty.
- Not now and ×: dismiss the card for that question. The choice is remembered per session.
- Hidden: while the agent works, or while a permission, trust or folder ask is up.
- Strings: new
recap.*strings in all 21 locales.
Transcript fix (all users, not only with the toggle on): the card made a transcript bug visible. A followed transcript stopped 16 px short of its last row, because the layout's total height left out the thread's top padding. Under Reduce Motion it also stuck at the old end for one frame, because the spacer's 0.01 ms transition let the browser clamp the scroll. The layout now counts the padding, and the spacer no longer transitions. Any chat that overflows had this cut; an assistant row's bottom padding usually hid it.
Captures
Gallery renders of the real pane (760×560, reduced motion). A real-app capture and clip from a DEV build follow in a comment.
| Toggle on, dark | Toggle on, light |
|---|---|
![]() | ![]() |
| Without the transcript fix: the card covers the footer | Toggle off: unchanged |
|---|---|
![]() | ![]() |
Testing
bun test test/recap-card.test.ts(10 pass) andtest/gallery-coverage.test.tspass on sbx;bunx vp checkis clean.- Browser test
CMUX_BROWSER_TESTS=1 bun test test/agent-pane-recap-card.test.ts:- red at 93225a4a7aea: the new footer test fails with
below: 16; - green at head: 5 pass (the card is turned on via
cmuxAcpmuxBridge.applySessionStatus(true)).
- red at 93225a4a7aea: the new footer test fails with
- The transcript jsdom tests (42) and the browser tests for follow-live, chat-column, bottom-stack, reading-place, soft-edges, history-paging and transcript-follow pass.
Changelog
- Added: Debug toggle: a recap card offers a finished turn's question with a ⌘↩ default reply.
- Fixed: the agent transcript now scrolls fully to its last row instead of stopping 16 px short.
🤖 Generated with Claude Code



