OpenCode model picker shows stale seed models before ACP discovery
Nobody has claimed this yet.
- Dominant language
- Scheme
- Stars
- 28
- Forks
- 3
- Avg merge
- 11h 30m
- Merged PRs (30d)
- 2
Description
Summary
Selecting the opencode connector in M-x agent-switch shows only five hard-coded seed models, even though the installed OpenCode catalog contains many newer models.
Reproduction
- Open or create a chat.
- Run
M-x agent-switch. - Choose
opencode. - Inspect the model picker.
The picker offers only:
opencode/big-pickleopencode/claude-sonnet-5opencode/claude-opus-5opencode/claude-haiku-4-5opencode/gemini-3.1-pro
Expected
The picker should use OpenCode’s current model catalog, or initially offer only the connector default and populate the picker after ACP reports its live model options. It should not present an old seed list as if it were current.
Cause
agent-connectors.scm declares those five models statically. chat-model-options uses that seed until a live OpenCode session reports model configOptions. But agent-switch asks for a model before the new ACP session starts, creating a chicken-and-egg path.
The ACP backend already ingests OpenCode configOptions, emits model-state, and persists the reported connector models. The missing piece is obtaining or deferring the live list before the initial model choice.
Environment and evidence
- OpenCode:
1.18.31 opencode modelsreports 586 models on this machine.- Current workaround: select OpenCode, submit an empty model to start with its default, then use
C-c m/M-x chat-set-modelafter the ACP session reports its live list.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in agent-connectors.scm and trace how chat-model-options supplies the OpenCode seed models to agent-switch before an ACP session begins. Read the ACP backend handling of configOptions, model-state, and persisted connector models; done means the picker no longer presents stale models and either offers the default first or reflects the live catalog after discovery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- emacs
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100