Agent chat: a run of rows and status lines sit 16 from the prose around them
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 rows step-to-prose / prose-to-step.
| Reference | Run to prose |
|---|---|
| chatgpt.com | 16 box to box |
| ChatGPT desktop | about 40 centre to centre |
| Claude Code desktop | 37 to 40 centre to centre |
| claude.ai | 10 box to box |
| cmux, before | 24 box to box (46 / 46.75 centre to centre) |
| cmux, after | 16 box to box (38.375 centre to centre) |
- New grid token
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.- A note folded into a run (
.cv-tool-note,noteGapinmodel.ts) uses the same 16. - The table test from #31614 drops its two pending marks, so
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
- Fleet, before the rebase onto #31719: the table rows pass,
continuationSpacingpasses 9/9, andinterim-prose-gappasses. - Fails the same way on base:
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.
- Fleet runs at this head and at base are in progress. Results follow in a comment.
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
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with 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.
- Adds a
gap-rungrid token (16) for the spacing between a run of rows and surrounding prose. - Applies the same gap to other status lines (task ends, compactions, failovers) and to notes folded into a run.
- Steps within a run stay flush, and prompts keep their 32px turn gap.
- The continuation-spacing and transcript-rhythm tests now enforce the new values.