fix(composer): align search fields with menu rows
Composer search fields had their own height and inset rules, so the model search row appeared taller and more padded than the model rows below it. Project, file, compact model and shared menu search surfaces now use the same row height and horizontal inset tokens.
Leo: "Didn't I previously fucking say this is just— this looks so stupid. The fucking size of the rows is just different and there's so much unnecessary padding that you just duplicate".
Changes:
-
Make the compact model search row exactly one menu row high, removing the popup-padding height added around it.
-
Apply the shared row height and inset to file search fields/results, project search fields, and the common MenuSearchField.
-
Add a regression test that checks all composer search surfaces use the shared tokens.
Reference matched: cmux-design-references apps/claude/live/composer-model-picker-per-account.png and topics/menus-and-palette.md; the search field and first result share one row inset.
Gallery variants considered:
- model picker search with the existing doubled field height;
- one shared 36px row with the existing bottom rule;
- one shared row with the project and file palettes included.
The shared-row variant was selected because it keeps the search field and the first result aligned in chat and New Tab.
Before / after (CI Linux gallery, Chromium)
Apple System Colors, dark and light. Base 56b08cf17a3 versus 60cfbf6b1cb (parent of the current head 403f3377a8f). The compact menu, file search, and project menu runtime files shown here are unchanged at the current head. The final commit also aligns the full model picker's search row. These are rendered gallery captures from cmux-ci test; native scene capture does not expose these open menus. pr-media-check passed.
| Menu | Before | After |
|---|---|---|
| Compact model, dark | ![]() | ![]() |
| Compact model, light | ![]() | ![]() |
| File search, dark | ![]() | ![]() |
| File search, light | ![]() | ![]() |
| Projects, dark | ![]() | ![]() |
| Projects, light | ![]() | ![]() |
Validation:
bun test ./src/agent-session/acpmux/QuickModelMenu.test.tsx(8 pass, 29 assertions)bunx oxlint src/agent-session/acpmux/QuickModelMenu.test.tsx(0 warnings, 0 errors)bun run check:design-tokens(passed)git diff --check(passed)
Base: 56b08cf17a3c8d0bc0da90c70d5c17518edd6834
Agent session: agent session











