Repository navigation
New Tab: keep project selection at zero layout shift - #26850
Conversation
|
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)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base 7197093; does not block Gallery before/after for
States
Pick other states with a |
|
Bead |
|
Owned by an agent session · session |
|
Found 5 test failures on Blacksmith runners: Failures
|
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40682236069 at 8114288 failed: cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40681979402 at d6c40eb failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40681192502 at 3da6f43 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40680946738 at 0339b44 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40683834325 at 2645001 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40683016589 at 9fbc12e failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40686413651 at a0c8bdb failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40684373512 at 42bbb37 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40684174353 at 442849d failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40684605734 at 1048c0f failed: cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40684922462 at 28d9a7d failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40686199378 at c02ae48 failed: cmux-next Release compile (fleet fast check), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40688911044 at 52bbe91 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40690021866 at 1e8fb3c failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next generated files. |
…eading token #26850 kept the chooser row's room after a pick with a min-height built from --text-heading--line-height (26px), but Hero's question sits on a 28px line, so picking a project shrank the headline 2px and moved it (new-tab-headline-selection-cls). One --nt-headline-line now sets both the question's line and the reserved height, per look.
|
Shipped in:
|
…ner frame timing new-tab-gallery-reached graded steps itself: it tolerated only the project pick's layout shift and failed any other problem, so a 60-100 ms frame on a busy runner failed it on every push (the rule other play tests follow since cx-mfkky is that runner timing never fails a play). The pick now keeps CLS 0 (#26850 and the headline line fix), so the shift tolerance is gone too: playFailures fails a thrown play, a moved anchor or any shift.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Selecting a project on New Tab collapsed the optional headline from two rows to one and resized the footer's folder/icon column. The title moved by 22px and neighboring controls moved with the shorter folder name. Reserve the headline row and the location group's existing 45% responsive allocation, left-align its label, and share the existing 14px ghost icon size with project badges. Long names consume available space and keep a full-path tooltip.
Leo: "lawrence thinks we should have better alignment of stuff in general / see claude code, then see ours / we can do a lot better i think". This fixes the real project-selection interaction exposed by #26828. Send performance is tracked separately in #26807.
Reference:
cmux-design-references/apps/cmux/live/new-workspace-composer-default.jpg; retains the existing quiet composer, colors and glass. The fixed left slot leaves quiet space after a short folder name; long names use that space instead of moving the machine and permission controls.Performance
Same mounted gallery interaction, Chromium Linux, 2x, Apple System Colors dark/light. The regression opens the real project option, chooses it, then reopens the menu; it counts every layout-shift entry and requires exactly zero. Immutable runtime base
bd735a6e46772724c6af19010a7ea171dd65f6b4and final head use the identical test/fixture.Before / after
Actual gallery screenshots from the matched local Chromium lane (100% product UI, synthetic data only). Each pair shows the same selected project at the same viewport; all eight assets passed the broker's privacy check.
Validation
ae57efb9c3049155ef3bbb70621a476cb13b69b0, then the layout repair.CMUX_BROWSER_TESTS=1 bun test test/new-tab-headline-selection-cls.test.ts: base 8 fail on nonzero CLS; head 8 pass / 160 assertions. Checks real selection, reopening, stable title/composer/footer rectangles, visible controls within bounds, and full-name tooltip carrier.scripts/web-lint.shandpython3 scripts/cmux-next/prepush-gate.pypass.gcp-agent-lane-2:/home/cmux/scratch/newtab-headline-cls-proof/receipt.json. No native build or hosted performance run was dispatched.Final owner loop: nx-composer root owns independent exact-head review, required-check reconciliation and the pinned squash.
Agent session: agent session