Repository navigation
Agent chat: a run of rows and status lines sit 16 from the prose around them - #31879
Conversation
design/transcript-spacing.md rule 4: chatgpt.com draws 16 between its activity rows and the reply's prose, ChatGPT and Claude Code desktop ~40 centre to centre. New grid token gap-run (16); transcriptGap gives it to step<->message, and a folded note takes it too. The table's step-to-prose and prose-to-step rows are enforced from here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-81baa1463f6190d4c5dc
…runs A background task's or subagent's end, a compaction and the other isStatusRow lines get MARK_STATUS: 16 from a reply, as a tool run is, so transcript-row-alignment's one gap above and below every status row holds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-81baa1463f6190d4c5dc
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules Shipped in:
|
|
Owned by an agent session · session |
|
Found 12 test failures on Blacksmith runners: Failures
...and 2 more test failures. View all on Blacksmith
|
|
Review (codex gpt-6.1-sol xhigh, router-review): BLOCK at 5b75dea BLOCK at 5b75dea Visual verdict: no images; Leo tries the build
|
transcript-rhythm measured header->message and message->group (step<->prose) against the 24
block gap; they are gridLength("gap-run") now (review of #31879).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-81baa1463f6190d4c5dc
|
Review (codex, router-review): SHIP at d7a14cf Reviewer: codex gpt-6.1-sol xhigh, fast tier. SHIP at d7a14cf No correctness findings. Grid validation and 12 gap-rule assertions pass; Bun/browser suites were unavailable. Follow-ups: none |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-81baa1463f6190d4c5dc
…ard) (#32076) upwardAnchorTrace.ts keeps its own copy of transcriptGap's rules (it runs serialized in the page). #31879 drew a step or status line 16 from a reply's prose (--grid-gap-run), and the oracle still expected the 24 block gap, so every such pair counted as a blank band: "received card folds preserve painted row-box adjacency while streaming" reported blankBandFrames 79. The oracle reads --grid-gap-run for step<->message now; its negative fixture declares the token. Agent-Session: https://cmux.com/deeplink/agent?id=aid-81baa1463f6190d4c5dc Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…nt's line (#32138) #31879 made every status row (model.ts isStatusRow, which includes another agent's received message) sit the run gap (16) from the reply around it. transcript-continuation-spacing still expected the block gap (24) under the reply for the gallery's peer line. Read transcriptGap(MARK_MESSAGE, MARK_STATUS) instead of a literal token. Agent-Session: https://cmux.com/deeplink/agent?id=aid-2f629b93d5a20c58e6f8 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…k again (#32154) #31879 made layoutConversation ask isStatusRow of every non-step row, and isStatusRow read row.incoming twice for a user row; isLineRow (via isStepRow) already read it three times. A hidden bookkeeping row went from 11 to 13 reads of incoming per placement, past rowLayoutLinearity's 12-per-row bound. isStatusRow and isLineRow now read the kind once and compare it, which leaves 10 reads per hidden row. Same results for every row. Agent-Session: https://cmux.com/deeplink/agent?id=aid-2f629b93d5a20c58e6f8 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-11-02: "well now there's sometimes too much spacing between tool calls", and "ugh we'll really want to study how chatgpt desktop and claude desktop do their spacing i just feel gross looking at these".
What changed
A run of one-line rows (tool calls, sent messages, inbox and notice lines) and any other status line now sits 16 from the reply prose above or below it. It was the 24 block gap. Spec: leo-workspace
design/transcript-spacing.md, rule 4 and rowsstep-to-prose/prose-to-step.gap-run(16):layout-grid.json, thengen-layout-grid.py, which writesdesktop.css; the Swift copy inLayoutGrid.swiftis updated by hand.transcriptGapgives it to step↔message pairs. A newMARK_STATUSmark covers every otherisStatusRowline: a background task's or a subagent's end, a compaction, a failover. Every status line between two replies keeps one gap above and the same gap below. Steps stay flush with each other, and a prompt keeps its centred 32 turn gap..cv-tool-note,noteGapinmodel.ts) uses the same 16.step-to-proseandprose-to-stepare enforced from now on.transcript-interim-prose-gapnow readsgap-run.continuationSpacinghas a new unit test of the gap rules.Observed / Not run
continuationSpacingpasses 9/9, andinterim-prose-gappasses.transcript-row-alignmentasks for 26 more room above a status row than below. Base draws 24/24, this branch 16/16. The grid lane is retargeting it to the grid tokens in a test-only PR.transcript-spacing-reference(2026-10-30 values; grid lane, same PR).rowEstimatessteer row-height test.Changelog
Changed: In agent chat, a run of tool calls or status lines sits 16px from the reply text around it instead of 24px.
Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
In agent chat, a run of tool-call or status lines now sits 16px from the reply prose above or below it, down from the previous 24px.
gap-rungrid token (16) for the spacing between a run of rows and surrounding prose.Written for commit 298d5a8. Summary will update on new commits.