Picker: keep Add harness in the harness strip
The picker keeps Add harness… in the existing harness strip. The compact and full pickers now end that strip with a clearly labelled + item; More models contains models only, and the model list no longer has a separate Add harness row.
Leo, word for word:
how the fuck was that your fucking first instinct? ... If you're thinking about adding a harness, where the fuck would you put it? If not already in the existing harnesses area, that section.
The + item is available in both the composer chat picker and New Tab picker, with the accessible name “Add harness…”. Existing model selection and harness rows remain unchanged. This is the d follow-up to #26071.
Keyboard behavior: the rail arrows reach the trailing Add action without changing the selected harness. Enter/Space keep native button activation. Returning to a harness restores focus even with a hidden search field. New Tab renders one Add action, and More models is absent when the harness has no extra models.
Validation:
- Branch base:
dfdfc55265f4d5caefa8b8148618ee368382fc98(#26589). - Head:
add512615797846ae25d1f380f8fc5bbe260a1dc. - Focused verification: run 40657628190. Both return-from-Add regressions fail against
a033e89; all three focused files pass atadd512615797without retries (model-picker-picks,QuickModelMenu,new-tab-add-harness-chip). The full webviews check passes: formatting, lint, typecheck, guards, and generated protocol. - The empty-search keyboard repair lets ArrowDown reach Add harness and Enter activate it; returning through the current harness or directly to search clears Add so Enter selects the model; the New Tab gallery play now checks the rail action and models-only More models.
- Gallery comparison: run 40648057223 rendered the More models play in both themes. The base and head share the existing disclosure-step base red: base layout shift
0.068107, head0.069632in both themes (the0.001525increase is ~2.2%); this is recorded as a base red and the disclosure source is unchanged.
Gallery: new-tab.quick-model-menu/combined, new-tab.quick-model-menu/claude, new-tab.quick-model-menu/claude-more-models, agent-pane.model-picker/quick-menu
Before / after
Synthetic gallery captures from advisory run 40644096979, rendered at base dfdfc552 and the pre-repair visual head c588a33. The follow-up commits only repair keyboard activation and gallery assertions, so these visual states are unchanged at final head add512615797; the captures contain no private data.
| State | Base light | Head light | Base dark | Head dark |
|---|---|---|---|---|
| Combined menu | ![]() | ![]() | ![]() | ![]() |
| Claude menu | ![]() | ![]() | ![]() | ![]() |
| Claude More models | ![]() | ![]() | ![]() | ![]() |
The rail action is a + Add harness item in the head; More models contains models only. The full picker and compact picker preserve the existing menu model list.
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Keeps "Add harness…" in the harness rail so both the compact and full pickers end the strip with a clearly labelled + item instead of a row in the model list.
- "More models" now contains models only; the separate Add row is gone from the model list and submenu.
- The Add rail item is reachable via click and rail arrows; focus moves between it and neighboring harness tabs without changing the selection.
- Rail arrows reach Add even when search is hidden, empty, or the picker has no matches, with focus wrapping between Add and the Starred tab.
- Cmd-Ctrl-M over the compact menu now replaces it with the full picker instead of keeping the compact menu open.
Agent session: agent session











