Repository navigation
cmux NEXT layout: trim only a column's rounding, not a column meant to run past the edge (base red) - #26100
Conversation
…t the strip's edge 0f8696c cut any column that ran past the trailing edge back to the room left, so a column that overflows on its own fraction (a second full column, a column running on under a right dock) collapsed to 1 pt. That broke ColumnCloseMotionTests and DividerCursorUnderDockTests on base, and the rounded columns still stopped short of the edge (ColumnStripFitTests). A column now takes the room left only when it fits before rounding and rounding pushes it past the edge, or when its unrounded end is the trailing edge. Equal columns too narrow for a pane's minimum widen and scroll, as asked for; the screen-geometry check expects that scroll. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-cc8bff1c3ddb4ec353c5
|
Owned by an agent session · session |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 8ff9fcf to compare; do not merge until green; see lane-rules |
|
Found 15 test failures on Blacksmith runners: Failures
...and 5 more test failures. View all on Blacksmith: run 40481711284, run 40481710740
|
|
Bead |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
What this fixes
Three suites fail on the feat-cmux-next tip:
ColumnStripFitTests,ColumnCloseMotionTestsandDividerCursorUnderDockTests(tip suite job). All three come from one line inColumnStripGeometry.frames, added by 0f8696c ("fix(layout): columns that fit the strip end on the viewport edge"):The commit meant to trim rounding: equal columns, each rounded to a pixel on its own, overflowed by up to 1.5 pt. The line trims any column past the trailing edge, though, including one that is meant to overflow:
ColumnCloseMotionTests, revealing it leaves the chat on screen.DividerCursorUnderDockTestsfinds no divider under the dock.ColumnStripFitTests, equal columns end 0.25 to 2.25 pt before the edge.The change
A column now takes the room left in two cases, and only before any column was widened to its minimum:
A column whose own fraction runs past the edge keeps its width, and the strip scrolls, as it did before 0f8696c.
Test changes
aColumnPastTheEdgeKeepsItsWidth: two full columns stay equal and the strip scrolls.screenGeometryOfEqualColumnsHasNoOverflow: it still requires zero overflow wherever the equal share is at least the column's minimum width. Below that minimum it now expects the strip to scroll. Columns widen to the pane minimum so panes never collapse; that is the existingminimumWidthscontract. The old expectation (fit 5 columns into 600 pt) contradicted it, and the 23 to 435 pt "overflow" in that check is that widening.Order this serves:
Source change: 0f8696c, with its test c35c180. This is a minimal forward fix that keeps that commit's intent (no overflow from rounding).
No capture: a pure geometry fix whose visible effect (columns end on the strip edge; a second full column or a column under a dock keeps its width) is asserted pixel-exact by the three suites above. Two
cmux-ci capture --state tour:coreattempts on fleet minis released their lease before the app could be driven ("the lease has 13s left" and "45s left: too little to drive the app").Risk: low. Pure geometry, one function, covered by the three suites above.
Review (codex gpt-6-astra xhigh): SHIP at fa681c4
Agent session: agent session
🤖 Generated with Claude Code