Voice mode: support model selection
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
## Problem
Users expect to be able to say things like "change to GPT-5", Voice mode currently lacks an end-to-end action contract for those requests.
## Desired behavior
- Select a model in the active or explicitly targeted chat input.
## Implementation split
### Frontend — #329493
- [x] Add frontend-owned `set_model` dispatch handling.
- [x] Support both workbench chat and the Agents/new-session composer.
- [x] Resolve exact model identifiers/names and return model candidates for ambiguous input.
- [x] Resolve active-editor, URI, and exact workspace-relative attachments.
- [x] Optionally navigate to and retarget a supplied `coding_session_id` before applying the action.
### Voice backend
- [ ] Register and emit `set_model` with `model_id` or `model`, plus optional `coding_session_id`.
- [ ] Register and emit `attach_file` / `attach_files` with `uri`, `path`, `uris`, or `paths`, plus optional `coding_session_id`.
- [ ] Treat an attachment action without a file argument as "attach the active editor".
- [ ] Ask for clarification on `ambiguous_model` and `ambiguous_file`.
- [ ] Confirm success only after the frontend returns `ok: true`.
Contributor guide
Assessment
This issue has not been assessed yet.