Two new API beta headers, for dangerous tool use checks and thinking binding controls, are now sent by default.
Two new beta feature flags were added to the outgoing beta-headers list: dangerous_tool_use (header dangerous-tool-use-2026-09-03) and thinking_binding_controls (header thinking-binding-controls-2026-08-01), pushed into the same filtered array as other established betas such as interleaved_thinking.
The thinking_binding_controls header is only added when a computed condition (kd = zPe() && OTn(f.querySource)) is true, but zPe() is a newly-added stub that unconditionally returns false, so kd can never be true and this beta header is never actually sent in this build. A matching retry-eligibility classifier was also added for errors whose message says a thinking block was 'not created in this conversation' or 'bound to a different conversation', but it too depends on the same hardcoded-false zPe() (ORed with another function, nm(), whose behavior could not be confirmed), leaving it effectively inert as well.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Then confirm against the API. Add the `thinking-binding-controls-2026-08-01` beta header, set `prefix_mismatch_behavior` to `"drop_block"`, and run a normal multi-turn session through your integration on claude-fable-5-1. The following exa…build-with-claude/preserved-thinking see the edit
Without the `thinking-binding-controls-2026-08-01` beta header the message also names that header. Keep the conversation history append-only, or send the beta header with `prefix_mismatch_behavior: "drop_block"` to drop the block and conti…api/errors see the edit
A small documentation edit on errors touched a line naming thinking-binding-controls-2026-08-01 after this was published.