Repository navigation
cmux NEXT model picker: list every harness, installed or not (Install… row) - #31498
Conversation
Leo 2026-10-26: "show all harnesses, all models (pi, opencode, prime intellect, etc…)". The picker dropped every catalog harness this machine does not have (pickable false), so Pi, OpenCode, Gemini CLI and Vercel AI Gateway never showed unless installed. They now list after the installed harnesses: the compact menu shows the tab's catalog models (not pickable) with a "Not installed" note and an Install… row that opens the Harnesses page; the full picker shows the note and Install…. The picker's face, search, Starred and every pick path skip them. Test: webviews/test/model-picker-all-harnesses.test.tsx (red on base: 2 of 3 fail; green on head). Neighbouring picker suites: 94 pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c22e30882ee62fabd987
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
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)
Gallery before/after for
States
Pick other states with a Unclear: CI failed on
Not re-run automatically: Written by web and size checks: green Shipped in:
|
|
Review (subagent claude-opus-5-5 medium): SHIP at 1ec5688 No path lets a not-installed harness be picked, start a chat, switch the harness or become the picker face; every gate uses Follow-ups:
|
This comment has been minimized.
This comment has been minimized.
…installed (#31499) Leo 2026-10-26: "show all harnesses, all models (pi, opencode, prime intellect, etc…)". The catalog named six harnesses; acpmux also runs Prime Intellect's prime-agent, oh-my-pi, Grok, Cursor, Hermes Agent and DeepSeek (dsh) (config/discover.rs). Each gets a probe-source catalog row with its acpmux family, so the model picker (#31498) and the Harnesses page list it before it is installed; once installed its acpmux profile joins the row by family. overrides.ts, the 20261007120000 seed (new databases) and the bundled snapshot plus acpmux's identical copy gain the six rows (the snapshot rows equal projectCatalog's output for them). 20261102000000 adds them to an already-seeded database with ON CONFLICT DO NOTHING, as 20261013040000_model_catalog_gemini_fable did for Gemini. Test: bun test tests/model-catalog.test.ts, 29 pass (3 fail before the seed/test updates: the harness list, the snapshot list, seed == overrides). Agent-Session: https://cmux.com/deeplink/agent?id=aid-c22e30882ee62fabd987 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (next-review patch-id; carried): SHIP at 4c81f27 The independent SHIP at 1ec5688 carries to this head: the PR's own change ( |
|
Review (next-review patch-id; carried): SHIP at 67fc16a The independent SHIP at 1ec5688 carries to this head: the PR's own change ( |
|
Review (codex gpt-6.1-sol high, sweep, via the review router; full diff from merge base 99367ba to this head): SHIP at 67fc16a [P2] [follow-up] webviews/src/agent-session/acpmux/composerPickerEntries.ts:27 - An uninstalled catalog entry with |
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (next-review patch-id; carried): SHIP at fcbfd6a The independent SHIP at 67fc16a carries to this head: the PR's own change ( |
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (next-review patch-id; carried): SHIP at 6fb8bb2 The independent SHIP at 67fc16a carries to this head: the PR's own change ( |
|
Review (codex gpt-6.1-sol high, sweep, via the review router; full diff from merge base 35647a2 to this head): SHIP at 6fb8bb2 [P2] [follow-up] webviews/src/agent-session/acpmux/ModelPicker.tsx:1622 - selecting a not-installed harness in the full picker hides all of its catalog models, despite the new behavior promising to list them as disabled - render |
|
Review (next-review patch-id; carried): SHIP at 5957d92 The independent SHIP at 6fb8bb2 carries to this head: the PR's own change ( |
|
Review (next-review patch-id; carried): SHIP at 3e799ad The independent SHIP at 6fb8bb2 carries to this head: the PR's own change ( |
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (next-review patch-id; carried): SHIP at e2ec3bd The independent SHIP at 6fb8bb2 carries to this head: the PR's own change ( |
|
Review (next-review patch-id; carried): SHIP at 6a58b84 The independent SHIP at 6fb8bb2 carries to this head: the PR's own change ( |
|
Review (next-review patch-id; carried): SHIP at e7e7cb1 The independent SHIP at 6fb8bb2 carries to this head: the PR's own change ( |
|
Found 2 test failures on Blacksmith runners: Failures
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo-ask: ask-0f0e9e4d6c
Leo, 2026-10-26: "show all harnesses, all models (pi, opencode, prime intellect, etc…)"
What changes
The model picker dropped every model-catalog harness this Mac does not have (
composerPickerEntriesmarks thempickable: false, anduniqueHarnessesskipped them). So Pi, OpenCode, Gemini CLI and Vercel AI Gateway never appeared unless installed.Now they are flagged
notInstalledand listed after the installed harnesses:Design spec: leo-workspace
design/model-picker.md(no settled rule is changed; this adds tabs, it removes none).Follow-up (separate PR, needs a model-catalog data migration): add catalog rows for the other harnesses acpmux runs but the catalog doesn't name yet (Prime Intellect, oh-my-pi, Grok, Cursor, Hermes, DeepSeek), so they also show when not installed. When installed, acpmux already lists them.
Verification
bun test test/model-picker-all-harnesses.test.tsx: red on base (2 of 3 fail), green on head.test/model-menu-*.test.tsx,test/model-picker-*.test.tsx,QuickModelMenu.test.tsx,modelCatalog.local.test.ts): 94 pass.bun run typecheckandvp lintclean.check:design-tokens/check:type-scaleare red on base in files this PR doesn't touch.Observed / Not run
Observed: the JSDOM tests above. Not run: a DEV build. No capture: Leo tries the build.
Changelog
risk: normal (picker UI, one component area)
Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
The model picker now lists catalog harnesses even when they aren’t installed, instead of hiding them. Both picker views show their catalog models as unavailable, with a “Not installed” note and an Install… action that opens the Harnesses page.
Written for commit e7e7cb1. Summary will update on new commits.