base red: transcript status-row gaps and the empty footer on the grid

Closed
TE
4d ago
+17-17

Test-only. Part of the webview suite being red on feat-cmux-next after the grid PR #27580 (044769ae). Does not change product code.

Per assertion

  • src/agent-session/acpmux/conversation/TurnFooter.test.tsx:63 (expected 24, received 0). The test reference was out of date. On the grid, a settled turn footer has no height of its own. Its action row is laid in the gap under the reply (leo-workspace design/grid.md 5.5: a message's hover action row "takes no layout height"). The test now expects heights[1] to be 0 for an empty footer, at the end of the chat, and for a footer with an answer. It also checks that the gap holding the footer is the stack's turn gap between two prompts, and the block gap (tailGap) at the end of the chat. Both values come from transcriptGrid.ts (TRANSCRIPT_TURN_GAP, TRANSCRIPT_BLOCK_GAP) and fit the 16px glyph with 4px on each side (gridLength("transcript-icon-box")). Culprit: #27580.
  • test/transcript-row-alignment.test.ts:267 (status rows "have 24px above and 24px below, not 26px more above"). The test reference was out of date. Every status row in this fixture sits between two replies, so its neighbours are prose. grid.md 5.5 says any two transcript blocks are a block gap apart ("block 24"), and "Gaps never add up". #27580 made #30865's reply room 0 (--cv-reply-room: 0px). The test now reads --grid-gap-block from the live CSS and expects that gap above and below each status row. Nothing in this PR asserts a gap between two consecutive one-line rows. Culprit: #27580, over #30865.

Still red, owned by the grid lane

  • transcript-row-alignment.test.ts: the footer label "Worked for 5s" and the footer's first action glyph both measure at -6px from the prose's left edge, in light and dark. Expected: 0px. The test measures ink: the first text glyph's range and the svg's box. The overhang is applied twice. .acpmux-turnSummary .cv-turn-actions sets inset-inline: calc(-1 * var(--cv-action-overhang)) (-6, added by #27580). The first button also takes margin-inline-start: calc((var(--cv-glyph-slot) - var(--cv-meta-row)) / 2) (-6 with the 28px control). As a result, the label's ink sits at -6 and the 28px button's box at -12, which puts its 16px glyph at -6. grid.md 5.5 and design/chat-transcript.md ("Rows between replies") put that ink on col-left. The expectation is unchanged, so this one case is still red. It is reported to the grid lane, which owns the product fix (dropping one of the two offsets). The status-row gap part of this case passes at this head.

CI at this head: TurnFooter.test.tsx 6 pass. transcript-row-alignment.test.ts fails only on the two footer-ink lines above (run 41366930349). The status-row gaps pass.

šŸ¤– Generated with Claude Code

Agent session: agent session