cmux-next sidebar: pinned rows end where the other rows do (row trim)
The pinned Home and App Store rows end where the sidebar's other rows end. Since #22733 every list row stops SidebarStyle.rowTrailingTrim (8 pt) short of the list's right inset. The pinned rows draw in a block row, which lays out its own items across the full width, so their pills ran 8 pt past the group header and the workspace rows. This is the SidebarPinnedRowWidthTests red on feat-cmux-next.
What changes
SidebarRegionMetrics.trailingTrim(0 by default): a region's list rows end that much short of its right edge. Cards and the tile and inline arrangements are unchanged.- The list's blocks (
SidebarView+Sections) set it torowTrailingTrim. The fixed bands outside the list keep their full width.
Tests
SidebarPinnedRowWidthTests(failing first, 3f4d3102): the test wanted the group header to end at the inset, which has been wrong since #22733 (the same correction #23304 made inSidebarRowGutterTests). It now expects the header at the trimmed edge, and still requires the pinned pills to match the header's span and radius at every density and width, before and after a resize. At the base the pills end 8 pt past the header in all 12 cases (36 issues in the sidebar sweep run).- Not run: the Swift tests. Agents don't build or run tests on Leo's Mac, and the fleet Mac step for these suites is stuck in the queue, so PR CI is the first run.
No capture: the change is 8 pt on two pinned rows' right edge, measured exactly by the test above; a native capture needs a fleet Mac, and the Mac queue is stalled right now.
Risk: low. One new metric, 0 everywhere except the list's blocks.
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes pinned Home and App Store rows in the cmux-next sidebar ending 8 pt past the other list rows, so all rows now stop together at SidebarStyle.rowTrailingTrim short of the right inset.
The list's blocks now draw their rows trailingTrim short of the right edge via a new SidebarRegionMetrics.trailingTrim (0 everywhere except the list blocks); the fixed bands outside the list keep their full width. Updates SidebarPinnedRowWidthTests, which still asserted the pre-#22733 layout, to expect the group header at the trimmed edge and to keep checking the pinned pills match the header's span across all densities and widths.