base red: row-gap drags select again; Retry stage and recap test follow the grid's action row (#27580)
Base reds from #27580 (ours), which moved the transcript's gaps out of the rows into the virtual stack and lays a prompt's action row in the turn gap (design/grid.md 5.5). Each test below passes on #31384 (only #27580 reverted) and fails on feat-cmux-next:
- Row gaps select again (
transcript-gutter-select-browser.test.ts"a drag from each row gap starts at its nearest mounted caret", chromium and webkit; gallery: "Gap drag selected no text")..acpmux-row__gaptook its height from the row's padding, which is now 0, so a drag from between two rows selected nothing. RowFrame gives it the placed gap under its row (tops[i+1] - tops[i] - heights[i]). User-visible fix. - Retry is clickable in its gallery stage (
retry-model-menu.test.ts, 8 tests). The stage div took.acpmux-row's--cv-insetas a relative offset plus its own padding, so the action row laid in the gap (right: -6) landed past the 560px viewport. The stage's inset is now a wrapper's; the row clears its offset and keeps layout containment only, as article rows do. Fixture-only. - Recap card test counts the footer band (
agent-pane-recap-card.test.ts"the card leaves the turn's footer in view above it"). The rest gap starts under the turn footer's band (transcriptGrid.ts restBand), and the test sized the pane without it. Test-only.
Tests: red at base (CI run 41362440478 and cmux-ci at 0dbfb2ed/c0b3866c), green at this head (cmux-ci, all 3 files).
Not in this PR: agent-pane-stream-jitter (reply moves 26 = restBand when a turn ends) and streaming-text-frames p95 are still red at base. They need a design call on where the live line's room goes when the footer arrives.
Risk: small. One inline style on the gap target, a gallery fixture, and a test.
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
Fixes three regressions from #27580, which moved transcript gaps out of rows into the virtual stack and lays a prompt's action row in the turn gap.
- Bug Fixes
- Row gaps are draggable again:
RowFramesizes the gap target from the row's own bottom padding plus the placed gap under it (down to the next row), instead of inheriting the row's now-zero padding. It comes before the row content, so the action rows laid in the same gap paint and hit-test over it. - Retry is clickable in its gallery stage: the stage's inset moved to a wrapper so the action row no longer lands past the viewport.
- Recap card test now counts the turn footer's band when sizing the pane, matching
transcriptGrid.ts restBand.
- Row gaps are draggable again: