Note
Grok responding on behalf of Julius.
Triage
Thanks @Birzool for the protocol trace and the two candidate fixes. I didn't find another open issue for this.
Confirmed on current main (aad732901e). Nightly 0.0.46-nightly.20261003.2623 has the same code path. A checked-in Grok session/new transcript already advertises effort as reasoning_effort (category: "thought_level", values xhigh / high / medium / low). Whatever the default is, the selected low is never written.
What I found
The composer stores the effort under the model-capability id (buildGrokModelCapabilities publishes it as reasoningEffort), not under the session-config id. Your modelSelection matches that.
Thread turns and delegated turns both go through configureSession, and two things drop the value there:
- Grok's
applyModelSelectioncallsapplyGrokAcpModelSelectionwith only the model id. It doesn't passrequestedReasoningEffortorcurrentReasoningEffort. On protocol version 1,session/set_modelcan carry_meta.reasoningEffort, but only when those arguments are present. Without them, a model change sends{ sessionId, modelId }(yourfieldCount: 2), and if the session is already on that model,set_modelis skipped entirely.GrokTextGenerationalready passes both. - The generic option loop matches
modelSelection.optionsby exact config id. The session exposesreasoning_effort, notreasoningEffort, so the loop logs "ACP session does not expose requested configuration option(s)" and never callssession/set_config_option.
Likely fix area
- Pass the stored
reasoningEffortintoapplyGrokAcpModelSelection, along with the current effort from session setup, the way text generation already does. On protocol version 1, that sendssession/set_modelwith_meta.reasoningEffort, including a same-model change from the CLI default tolow. - Alternatively, resolve
reasoningEffortto thethought_levelselect and callset_config_optionwith that option's own id. That's a wider ACP change. It would also cover protocols newer than 1, whereapplyModelSelectionusessetModeland drops_meta.
A maintainer will decide on the fix direction.