What
Programs that drive Claude Code through the SDK or Remote Control can send a set_max_thinking_tokens request to set Claude's thinking budget and how its thinking is shown (thinking_display). A request for "highlights" is now checked before anything is applied. If highlights is not available, the request fails with the error "thinking_display "highlights" is not available in this session, so neither the budget nor the display was changed", and neither setting changes. It fails:
- after the API has already refused highlights;
- on Bedrock, Vertex or another provider without Anthropic's first-party beta features;
- when experimental betas are off, through
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASor organisation policy; - on a Claude 3 model, except on Microsoft Foundry.
The same check runs in the Remote Control handler (onSetMaxThinkingTokens) and in the interactive session's thinking-budget handler. Before, the only check was that the budget was a whole number or null, and for these clients the request succeeded and the display fell back to "omitted".
Why
Programs asking for highlights where it cannot work now get a clear error instead of a partial change where the budget moved but the display did not.
Only the request's description was checked, not the code that enforces it.