New Tab: picking a folder keeps the model you picked
On a New Tab, pick Claude Haiku 5.5, then pick a folder: the chips jump back to the saved default, Claude Sonnet 5.5 路 High. The explicit pick gives way to a default.
A chip pick on a New Tab starts a deferred switch, and applySwitch draws its harness, model and options into the snapshot's summary. A folder pick sets projectDraft, and the composer's snapshot then replaced the whole summary with {sessionId: "", cwd}. With no harness in the summary, newTabStart predicted the chat again from acpmux's saved start, and the pick was gone from the chips.
The folder draft now lives in newtab/draftFolder.ts. Review follow-up (7c283768e86): on a sessionless chat page, Send's chat.new in the picked folder named no harness, which cancelled the switch holding the pick, so the chips showed the pick while the chat started on the default. Send now names the held harness and model (heldPick), and switchTo carries the pick's options to the new folder. A failed switch holds no pick, so a folder pick then names the folder's start again. A page that holds a pick keeps the summary and takes only the new folder. A page with no pick still names only the folder, so its chips name what a chat starts on there, as before. When the prompt is sent, chat.new in the new folder carries the held model and options to the new switch (switchTo keeps the same harness's config), so the chat starts on what the chip shows.
Found in a click-through pass on cmux16 (tagged build of feat-cmux-next c25d784): Haiku 路 Low picked, then folder proj-b picked, and the chips read Sonnet 5.5 路 High.
Verification
bun test test/new-tab-folder-keeps-pick.test.ts: the held-pick case fails on 8fd322b2c9a (Sonnet) and passes with the fix (Haiku, Low); the no-pick case passes before and after.bun test test/new-tab-*.test.ts* test/model-*.test.tsx test/agent-pane-start-mode-chip.test.ts test/access-chip-pending-warning.test.tsx: 106 pass, 11 skip (browser lane), 0 fail.bun run typecheck: no errors.new-tab-folder-keeps-pick.test.tsalso checks that a failed switch holds no pick (fails on the previous head) and that the chat a send starts in the picked folder gets the held model and effort.- Live: On cmux16, a tagged build of
feat-cmux-nextc25d784 with #21677, #21685, #21688, #21733 and #21729 merged locally (acpmux swapped in from that tree, since this host can't buildcmux-tuiwithout zig):scripts/cmux-next/clickthrough-live.py(#21729) passes "a pick made before a folder pick holds across it" and "the chat runs exactly the picked model and reasoning". A pick made while the trust question waits now lands, and the chip shows it.
Changelog
Fixed: picking a folder on a New Tab keeps the model and reasoning you already picked there.
馃 Generated with Claude Code