cmux-next New Tab: the mic leaves a narrow row at the chat bar's step
web / react-apps-check (1) fails on every feat-cmux-next PR (#21794, #21786, #21734) in test/narrow-layouts.test.ts, at 280 px:
new-tab: New Tab chips: Mode overlaps Dictate
Cause. Two merges that each passed CI on their own:
- #20802 added this check. Its CI ran at 21:44Z.
- #20391, merged at 21:47Z, changed the New Tab screen's side padding from
max(16px, …)tomax(var(--cv-edge, 18px), …).
The New Tab row (.nt-pickers) has no fit hook. As it narrows, only the model chip shrinks, down to its 56 px floor. The 4 px #20391 took left the 280 px pane 1 px above that floor. With CI's font metrics the row ran out, and the mic and Send ran into the mode chip.
Fix. The New Tab row's mic now leaves at the composer width where the chat bar's mic leaves (COMPOSER_FIT_STEPS.micHidden, 340 px). A listening mic stays, as it does in the chat bar. At 280 px the model chip now has 89 px, 33 px above its floor.
Testing
On huge-blue (Linux, Chromium headless shell 1234, Playwright's font packages):
CMUX_BROWSER_TESTS=1 bun test test/narrow-layouts.test.ts test/composer-fit-steps.test.ts: 10/10 pass.composer-menu-dismiss,composer-location-stripandnew-tab-chat-title-widthpass.
Not reproduced locally: narrow-layouts also passes at the base tip on huge-blue. There the 280 px row is 1 px from the floor, and only CI's fonts push it over. A probe of the controls' rects (Model, Effort, Mode, Dictate, Send) shows the margin before and after the change. CI's run on this PR is the red-to-green check.
Changelog
- Changed: In a narrow pane, the New Tab composer hides its mic button, as the chat composer already does; it stays while dictating.
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes the New Tab composer overlapping the mode chip at 280 px panes, which broke narrow-layouts CI on every feat-cmux-next PR. The New Tab row's mic now hides at the same composer width as the chat bar's mic (340 px), with a listening mic staying visible while dictating.