The advisor tool gained an expanded model compatibility matrix (Haiku and Sonnet executors can now use Opus, Fable 5, or Mythos 5 as advisors), plus new behaviors for truncation signaling and pause_turn resumption.
Server tools documentation now fully documents what happens when a server tool and a client tool are called in the same parallel group — a common agentic pattern that previously lacked clear guidance.
The web fetch tool received major clarifications: it is now confirmed available on Claude Platform on AWS and Microsoft Foundry (not Bedrock/Google Cloud), PDFs are now returned as base64, blocked_domains cannot be combined with allowed_domains, and several error codes were corrected.
Programmatic tool calling documentation was updated with corrected timeouts (4 min), required container IDs, and a stricter tool-result content rule (strings/text only).
The memory tool doc confirmed GA status (no beta header needed) and documented many previously undocumented behaviors: view on image files, view_range with -1, create overwriting, str_replace deletion, and root-path protection for delete/rename.
The model compatibility table was significantly expanded: Haiku 4.5 and Sonnet 4.6 executors can now use Opus 4.6, Opus 4.7, Opus 4.8, Fable 5, or Mythos 5 as advisors; Sonnet 4.6 can also advise itself; same-capability Opus pairs can advise each other; Fable 5 and Mythos 5 executors can only use the same model as advisor. [line ~32]
Clarified that Fable 5 and Mythos 5 advisors return advisor_redacted_result while all other supported advisors return advisor_result. [line ~102]
New section documenting how to resume a pause_turn response that contains a pending advisor call: re-send the same assistant content with the same tools and beta header — no new user message or tool_result block needed. [line ~146]
Added note that tool_choice: {"type": "tool", "name": "advisor"} can force an advisor call, but cannot be combined with extended thinking (returns 400). [line ~215]
Clarified that top-level max_tokens does not cap advisor tokens, advisor tokens don't draw from task budgets, and Priority Tier applies per model independently. [line ~232]
When max_tokens is hit, the API now appends [Advisor output truncated at max_tokens=2048.] to the advice text so the executor can detect the truncation in its own context. [line ~354]
Memory tool is now generally available — no beta header is required. [line ~128]
New section documenting ready-made handler implementations: BetaLocalFilesystemMemoryTool for Python and TypeScript; Go and Ruby require a manual tool-use loop; PHP uses BetaRunnableTool. [line ~147]
view command now also displays image files (.jpg, .jpeg, .png) and truncates text files longer than 16,000 characters. [line ~255]
view_range: [start_line, -1] reads from start_line to end of file. [line ~200]
create can overwrite existing files; str_replace with new_str omitted deletes old_str; insert with insert_line: 0 inserts at the beginning. [line ~290]
delete and rename operations on the memory root (/memories) are now explicitly rejected. [line ~361]
Error return format documented: errors are returned by setting is_error: true on the tool_result block. [line ~460]
Added explicit rule that every tool_result block must appear before any text content in a user message. [line ~13]
disable_parallel_tool_use now has a dedicated section with full runnable code examples clarifying it is set inside the tool_choice object and that its effect differs by mode: auto allows at most one tool call, any/tool allows exactly one. [line ~170]
Both code execution version strings (code_execution_20260120 and code_execution_20260521) are now accepted interchangeably in allowed_callers; response blocks always tag the caller as code_execution_20260120. [line ~127]
Container ID is now required (not optional) when responding to pending programmatic tool calls. Idle containers are reclaimed after ~5 minutes (up from 4.5). Pending tool calls time out after ~4 minutes, raising TimeoutError with message (no response after 270s). [line ~177]
Tool results answering programmatic calls must be strings or text blocks — image, document, and other content block types are rejected. [line ~591]
All code examples updated: tools now take a single dict of arguments and return a string; Claude's generated code uses json.loads(await tool_name({"key": "val"})). [line ~97]
New major section documenting mixed server + client tool calls in the same parallel group: the API returns stop_reason: "tool_use" immediately with both the server_tool_use block and the client tool_use block (no server result yet); the client sends only its tool_result blocks in the follow-up, and the API then runs the deferred server tool. Full Python code example included. [line ~81]
Documented distinction from pause_turn: pause_turn never leaves a client tool_use block waiting; tool_use stop_reason does. MCP connector mcp_tool_use blocks follow the same deferred pattern. [line ~180]
max_iterations is now supported across all seven SDKs; the tool runner loop exits when this limit is reached. [line ~110]
Client-side automatic compaction (Python, TypeScript, Ruby) is now deprecated in favor of server-side context editing. Go, Java, C#, and PHP tool runners do not include client-side compaction. [line ~249]
Debugging behavior is now documented per-SDK: only Python logs full exceptions (stack traces) via the logging module; Go, Ruby, C#, and PHP do not read ANTHROPIC_LOG and require exceptions to be caught inside the tool function. [line ~253]
Web fetch (with and without dynamic filtering) is now documented as available on the Claude API, Claude Platform on AWS, and Microsoft Foundry — not on Amazon Bedrock or Google Cloud. [line ~10]
Web fetch is now described as a server tool: the API fetches content during the request, so no tool_result is needed from the caller. [line ~38]
PDF handling updated: the API now returns PDF content as base64-encoded data and processes it like a directly attached PDF document. [line ~45]
Dynamic filtering no longer requires the caller to add the code execution tool to the tools array — the API enables it automatically. [line ~71]
blocked_domains cannot be combined with allowed_domains (now documented in the parameter comment). [line ~140]
Failed fetches now count against the max_uses limit. The max_content_tokens limit applies only to text content, not binary content such as PDFs. [line ~153]
Added a use_cache code example and clarified that later tool versions add use_cache and response_inclusion parameters. [line ~177]
Citations for web fetch are now explicitly documented as disabled by default. [line ~217]
Several error codes corrected: invalid_input → invalid_tool_input; web_fetch_tool_error type → web_fetch_tool_result_error; new error code url_not_in_prior_context; unsupported_content_type now includes HTML. [line ~361]