fix(chat): the live line under a run is one more 22px line of it (#29965)

Merged
TE
4d ago
+38-10

The live line under a run is one more 22px line of it, and the waiting group ("2 messages from 2 sessions") under the live line sits 22 under it (#29965). On base the live line sat in the footer's 32px slot even when it came right after a step row, so agent-pane.transcript-spacing-table measured step-to-live at 27 and live-to-step at 51, in both light and dark.

Leo: "well now there's sometimes too much spacing between tool calls"

The spacing was regressed by #27580 (squash 044769ae). #31497 restored the 22 pitch between steps, and #31690 put the live line in the footer slot.

  • model.ts isLiveStep: when the running turn's line is the last row (below) and sits right after a step row, it gets MARK_STEP and the height of one tool row (22). That keeps the transcript gap flush on both sides of it. Under a reply or a prompt it keeps the 32px footer slot, so the turn ending still moves nothing there.
  • App.tsx marks that row acpmux-row--after-step. conversation.css sizes it at --cv-tool-row-height, for both the working/thinking line and the activity line.
  • transcriptSpacing.ts: deleted the pending lines on step-to-live and live-to-step. Both now measure 22.0 in light and dark.

One trade-off: under a run, the line is now 22px tall, not 32. When the turn ends and the 32px footer takes its place, the footer grows by 10px. Under a reply or a prompt nothing changes.

Tests: transcript-spacing-table step-to-live and live-to-step went from red (pending) to green. These failures are the same on base: the transcript-spacing-table rows prose-to-footer, footer-to-next and footer buttons; rowEstimates "a steer the agent has not read"; working-counts "a count moves nothing"; and transcript-rhythm "a message above the composer" (4 variants). These stayed green: continuationSpacing, rowLayoutLinearity, running-live-line, codex-live-line, running-layout, ctrl-b-background, activity-line, peer-chat, chat-column, collapsed-tool-runs and followGlide. fmt and tsc are clean.

Agent session: agent session

šŸ¤– Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the live line spacing under a run so the step-to-live and live-to-step gaps both measure 22px.

When the running turn's line sat right after a step row, it took the footer's 32px slot, measuring 27px under the run and 51px under the waiting group. It's now treated as one more 22px tool row in that position, keeping the transcript gap flush on both sides.

  • The line only changes under a run; under a reply or prompt it keeps the footer's 32px slot.
  • Trade-off: when the turn ends, the footer grows by 10px to reclaim its 32px slot.