Agent chat: a run of rows and status lines sit 16 from the prose around them

Merged
TE
4d ago
+55-16

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.

ReferenceRun to prose
chatgpt.com16 box to box
ChatGPT desktopabout 40 centre to centre
Claude Code desktop37 to 40 centre to centre
claude.ai10 box to box
cmux, before24 box to box (46 / 46.75 centre to centre)
cmux, after16 box to box (38.375 centre to centre)
  • New grid token gap-run (16): layout-grid.json, then gen-layout-grid.py, which writes desktop.css; the Swift copy in LayoutGrid.swift is updated by hand.
  • transcriptGap gives it to step↔message pairs. A new MARK_STATUS mark covers every other isStatusRow line: 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, noteGap in model.ts) uses the same 16.
  • The table test from #31614 drops its two pending marks, so step-to-prose and prose-to-step are enforced from now on.
  • transcript-interim-prose-gap now reads gap-run.
  • continuationSpacing has a new unit test of the gap rules.

Observed / Not run

  • Fleet, before the rebase onto #31719: the table rows pass, continuationSpacing passes 9/9, and interim-prose-gap passes.
  • Fails the same way on base:
    • transcript-row-alignment asks 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).
    • rowEstimates steer 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 Autofix with [code]smith
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-run grid 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.