Transcript: keep finished work headers on the activity rhythm

TE
2d ago
+323-17

Leo: “our transcript sometimes gets a bit wack with the tool calls and spacing and whatnot in general”.

The finished Codex work disclosure used a 28px control row with a 24px gap before the reply. It now shares the transcript’s settled 22px activity rhythm and 16px prose gap. Opening it joins the header directly to the revealed calls. Claude keeps its per-run summaries and visible reply. The change uses existing grid tokens, adds no observers or timers, and can be reverted independently.

Gallery: agent-pane.transcript-cohesion (codex-closed, codex-open, claude). References: chatgpt/live/transcript-thinking-and-tool-calls-consolidation, chatgpt/live/transcript-worked-for-branch-menu, claude/live/transcript-agent-text-and-collapsed-tool-row. The synthetic light/dark captures were compared beside the private references; private captures stay private. Spec: leo-workspace design/transcript-spacing.md, rules 3–4 and “Collapsed-work header”, settled in teamleaderleo/leo-workspace#3054.

The activity-row classification introduced in #31745 omitted the finished work header; #31879’s 16px activity/prose spacing therefore did not apply to it.

Performance

Same Chromium harness, gallery data, viewport and themes against base 49d2b6e52cb9494d59ce798689c78ac913533621 and this head; measurements agree in light and dark.

metricbeforeafterdeltaharness or run link
Closed work-header to reply gap24px16px−8px (−33.3%)fleet run, test/transcript-cohesion.test.ts
Work-header height28px22px−6pxsame run and harness
Opened work-header to revealed activity gap24px0px−24pxsame run and harness
Closed work-header to first reply line, visible text centres49px38px−11pxsame run and harness

Validation at cb9bc24af34f7ea35869bf252367f09c9f0c25de: all six browser cases pass; all 39 scoped layout/estimate tests pass. The focused new regression fails on the base’s 28px estimate and passes after the fix. The full web check ran every piece and reported existing findings in unchanged files: the changelog spacing token, App/cloudRun formatting, and the missing after() helper in transcript-spacing-kinds.test.ts; none are introduced here.

Risk: compacting the finished work header; estimates and rendered geometry are checked together, with no new render loop. Nothing is disabled. Reverting this PR restores the prior layout.

🤖 Generated with Codex

Agent session: agent session