Description
Selecting any Cursor model other than the default "Auto" fails immediately with a toast like:
Could not select the model: Invalid params: {
"message": "Invalid model value: composer-2.5"
}
This isn't specific to one model — it reproduces for every concrete model id tried (e.g. composer-2.5, cursor-grok-4.6-xhigh), so a Cursor session is effectively stuck on Auto.
Steps to reproduce
- Start a new session with the Cursor provider.
- Open the model picker and choose any model other than Auto (e.g.
composer-2.5).
- Observe the "Could not select the model: Invalid params..." toast; the session keeps using Auto.
Root cause
Waku's Cursor ACP driver (src/driver/acp.rs) sends model selection through the legacy, untyped session/set_model RPC ({"sessionId": ..., "modelId": ...}). Current Cursor CLI builds only honor that RPC for the special "auto" value; every other model id is rejected as invalid.
The mechanism Cursor now expects is the generic ACP session-config-option flow: session/new returns configOptions, the entry with category: "model" is the real model selector, and its value is set via session/set_config_option. Cursor only serves that flow to clients that advertise the _meta.parameterizedModelPicker capability in initialize. Waku's initialize call never sends that capability, so Cursor's ACP server keeps Waku on the legacy session/set_model path where only "auto" is valid.
(Separately, selecting "auto" itself can also fail — with a different error, permission_denied: This Cursor Router Optimize For mode was disabled for your team — when a Cursor Enterprise team has Router/Auto-mode optimization disabled by policy. That's a team-level Cursor setting, not a client bug, and is unrelated to this issue.)
Environment
- Cursor CLI:
2026.07.01
- Reproduces with both a CLI-advertised model id and a Waku fallback model id, so it isn't specific to the picker's catalog source.
Description
Selecting any Cursor model other than the default "Auto" fails immediately with a toast like:
This isn't specific to one model — it reproduces for every concrete model id tried (e.g.
composer-2.5,cursor-grok-4.6-xhigh), so a Cursor session is effectively stuck on Auto.Steps to reproduce
composer-2.5).Root cause
Waku's Cursor ACP driver (
src/driver/acp.rs) sends model selection through the legacy, untypedsession/set_modelRPC ({"sessionId": ..., "modelId": ...}). Current Cursor CLI builds only honor that RPC for the special"auto"value; every other model id is rejected as invalid.The mechanism Cursor now expects is the generic ACP session-config-option flow:
session/newreturnsconfigOptions, the entry withcategory: "model"is the real model selector, and its value is set viasession/set_config_option. Cursor only serves that flow to clients that advertise the_meta.parameterizedModelPickercapability ininitialize. Waku'sinitializecall never sends that capability, so Cursor's ACP server keeps Waku on the legacysession/set_modelpath where only"auto"is valid.(Separately, selecting "auto" itself can also fail — with a different error,
permission_denied: This Cursor Router Optimize For mode was disabled for your team— when a Cursor Enterprise team has Router/Auto-mode optimization disabled by policy. That's a team-level Cursor setting, not a client bug, and is unrelated to this issue.)Environment
2026.07.01