Closed
Labels
area:non-interactiveNon-interactive mode (-p), CI/CD, ACP protocol, and headless automationNon-interactive mode (-p), CI/CD, ACP protocol, and headless automationarea:sessionsSession management, resume, history, session picker, and session stateSession management, resume, history, session picker, and session statemore-info-needed
Description
Describe the bug
When starting a new ACP session, the session/new response's models.currentModelId and configOptions (category: model) both report claude-sonnet-4.6 regardless of the actual model being used for inference.
Affected version
1.0.5
Steps to reproduce the behavior
- Start copilot --acp --stdio (or via a client that connects over ACP)
- Send initialize then session/new
- Observe models.currentModelId in the response - it reports claude-sonnet-4.6
- Send a session/prompt asking the model to identify itself
- The model responds that it is claude-opus-4.6 (or whatever the configured model actually is)
Expected behavior
currentModelId should reflect the actual model that will handle prompts. If the model changes after session creation (e.g. via --model flag or internal routing), a config_option_update notification with category: "model" should be sent to inform the client.
Additional context
No response
Metadata
Metadata
Assignees
Labels
area:non-interactiveNon-interactive mode (-p), CI/CD, ACP protocol, and headless automationNon-interactive mode (-p), CI/CD, ACP protocol, and headless automationarea:sessionsSession management, resume, history, session picker, and session stateSession management, resume, history, session picker, and session statemore-info-needed
Activity
dkrusky commentedon Mar 29, 2026
The modelId is reporting the model it selected correctly. What is happening is it is not honoring the --model flag or internal post when using any combination of --acp or --stdio.
If you look at your billing, you will see the chats are always being sent using Claude when in this mode. The bug is not in reporting the incorrect model, but instead it is a bug with model selection.
Expected behavior :
When passing --model or internal routing via acp, respect the chosen selected model. Stop overriding the user model with the Premium billable model.
patniko commentedon Oct 26, 2026
Thanks for the report. We've shipped fixes in this area since this was filed (most recently in Copilot CLI v1.0.89), and we believe this may now be resolved. Could you retest on the latest release (Copilot CLI v1.0.103) and let us know whether you still see it? If we don't hear back in a couple of weeks, we may close this issue — you can always reopen it.
Triaged as part of a Copilot SDK backlog review, with help from GitHub Copilot.
devm33 commentedon Oct 31, 2026
Verified fixed in released Copilot CLI v1.0.89, and reverified in current stable v1.0.105.
With the official release binaries, the model reported by
session/newmatches the actual outbound inference request. Switching models updates the model configuration and inference model consistently, and a coldsession/loadrestores the selected model. Verification checked the request's model ID, rather than relying on the assistant to identify itself.The same launch-model check fails on v1.0.88: the reported model and actual inference model differ. Closing as completed.
Generated by Copilot