Claude docs changes for July 23rd, 2026 [diff]

Executive Summary

  • New Dreams API (beta): asynchronous "memory consolidation" jobs (/v1/dreams) that distill session transcripts and/or an existing memory store into durable agent memories.
  • Extended thinking docs got a major overhaul: adaptive thinking is now the primary (and on newer models, only) reasoning mode, with new dedicated pages for steering/cost, tool-use workflows, and troubleshooting, plus a new xhigh effort level.
  • New Claude Security plugin — a local multi-agent vulnerability scanner (/plugin install claude-security@claude-plugins-official, then /claude-security) that scans a codebase or diff and produces reviewed, manually-applied patches.
  • Managed Agents/Sessions API adds initial_events to seed a session with a message or outcome definition at creation time, a new per-agent effort control, thread-level streaming previews, and new Environment/Memory Store webhook events.
  • Claude Code 2.1.218 moves /code-review to a background subagent, turns off nested subagent spawning by default (with new depth/concurrency env vars), and ships numerous accessibility, sandbox-trust, and stability fixes.

New Claude Code versions

2.1.218

New features

  • Changed /code-review to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review target
  • Added screen-reader announcements of deleted text for word and line deletions (Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K) in --ax-screen-reader mode
  • Added HTTP status and error text to claude mcp list and /mcp when a server fails to connect, plus a warning for MCP config values with hidden leading or trailing whitespace
  • Added an announcement when fast mode changes as a result of switching models via /config model=<x> or Remote Control
  • Added yes/no/on/off/1/0 (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside true/false

Existing feature improvements

  • Improved /ultrareview error feedback so Claude can correct an invalid argument instead of retrying it unchanged, and fixed it failing on descriptive arguments like "review my auth changes" — they now run a review of your current branch with the text applied as a note to the findings
  • Fixed /code-review ultra silently running a local review in non-interactive sessions — it now launches the cloud review
  • Improved auto mode: the dangerous-rm, background-&, and suspicious-Windows-path checks no longer open permission dialogs; the auto-mode classifier adjudicates them instead
  • Changed plan mode with auto to no longer prompt for Bash commands the static analyzer can't prove read-only; the auto-mode classifier judges them instead
  • Improved sandbox command restrictions for IDE interactions
  • Improved trust dialogs to name the repository root the grant covers
  • Changed server-managed settings so benign feature and cost toggles no longer trigger the settings-approval prompt
  • Changed skills with context: fork to run in the background by default; opt out per skill with background: false
  • Changed /deep-research to start only when invoked manually; Claude no longer launches it on its own
  • Changed agent markdown files to reject agent names containing :, which is reserved for plugin namespacing
  • Fixed gateway spend metering to price Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs at the configured model's rates

Major bug fixes

  • Fixed Windows paths with \u-prefixed segments (like C:\Users\unicorn) being corrupted into CJK characters in tool inputs, which made those files inaccessible
  • Fixed the left arrow key discarding the conversation with no undo: presses right after editing now ask to confirm, and Esc in the agent view returns to the conversation it backgrounded
  • Fixed multi-line paste collapsing into one line with j in place of newlines in terminals that encode pasted newlines as Ctrl+J
  • Fixed /context reporting stale pre-compact token usage after compacting from the message picker
  • Fixed mojibake when a long IDE selection was truncated mid-emoji, and a case where a tool executor error could be silently dropped
  • Fixed an engine teardown race that could start and abandon a phantom turn, and made input pushed after close consistently rejected
  • Fixed spurious "[Request interrupted by user]" messages after interrupted tool calls, and an unpaired tool_use block left in the transcript when a tool aborted mid-response
  • Fixed crashes (maximum call stack exceeded) when a deeply nested watched directory tree was deleted or moved, and when rendering deeply nested UI trees
  • Fixed pull request events occasionally being lost when a session exited immediately after creating or linking a PR
  • Fixed the Bedrock setup wizard failing profile verification for assume-role profiles in partitioned AWS regions and on proxy-only networks
  • Fixed rare negative or incorrect turn duration measurements after a system clock adjustment by timing turns with a monotonic clock
  • Fixed the "N MCP servers need authentication" startup notice over-counting claude.ai connectors that aren't connected in claude.ai
  • Fixed prompt history entries being dropped or duplicated when history writes raced or failed
  • Fixed a retry loop that re-sent identical doomed requests after a context-overflow error with a large thinking budget; Ctrl+B backgrounding now applies the same background-shell caps as other paths
  • Fixed agent frontmatter hooks running from untrusted folders: hooks now require the agent file's own folder to have accepted workspace trust
  • Fixed fork-session lineage being lost after compaction in headless and SDK sessions
  • Fixed a resumed session failing every turn, or crashing on resume, when its history held a malformed delta attachment
  • Fixed remote sessions continuing to send heartbeats after their worker was replaced, which left long-lived desktop and IDE processes retrying a rejected request every few seconds forever

Claude Code changes

New Documents

claude-security [Source]

New documentation page for the Claude Security plugin, a multi-agent vulnerability scanner that runs locally inside a Claude Code session (distinct from the managed, Enterprise-only "Claude Security" hosted product). It requires Claude Code v2.1.154+ on a paid plan (for dynamic workflows), Python 3.9.6+ as python3 on PATH, and Git for change-scoped scans. Installed via /plugin install claude-security@claude-plugins-official and activated with /reload-plugins, it adds a single /claude-security command offering three jobs: scanning a whole codebase, scanning only a diff (branch, PR, or single commit), and turning chosen findings into reviewed patches. Results are written to a timestamped CLAUDE-SECURITY-<timestamp>/ directory (CLAUDE-SECURITY-RESULTS.md/.jsonl plus a revision-stamp JSON tying findings to the exact commit/effort scanned), and patches (one F<n>.patch per finding) are independently reviewed but never auto-applied — developers apply them manually via git apply.

Changed documents

accessibility [Source]

  • New feature: Claude Code now announces deleted text when a word or line is removed from the input (Ctrl+W, Option+Delete, Ctrl+Backspace, Ctrl+U, Cmd+Backspace, Ctrl+K), requires v2.1.218+. [lines 50-56] [Source]
  • CLAUDE_CODE_ACCESSIBILITY cursor tracking extended: now follows keyboard focus into menus/panels (e.g. /config, /plugin), not just the input caret; requires v2.1.218+. [line 93] [Source]

agent-sdk/python [Source]

  • tools field default behavior clarified: omitting it now inherits only the tools available to subagents, not literally "all tools." [line 1093] [Source]

agent-sdk/subagents [Source]

  • Nested subagent spawning behavior changed: subagents can no longer spawn subagents by default; new CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH env var (default 1) controls depth. Previously (v2.1.172-v2.1.216) nesting was allowed by default up to 5 layers. [line 174] [Source]
  • New clarification: a tool left out of tools isn't in the subagent's session at all — Claude works without it silently (no permission prompt or error). [lines 526-531] [Source]
  • tools omission clarified to mean "every tool available to subagents" rather than "all tools," and tool definitions inherited by subagents are now noted as "filtered for background runs." [lines 156, 191]

agent-sdk/typescript [Source]

  • tools field default behavior clarified: omitting it inherits only tools available to subagents, not literally "all tools from parent." [line 640] [Source]

authentication [Source]

  • Login-expiry warning threshold changed from 5 days to 3 days before expiration (v2.1.217+). [line 152] [Source]

claude-code-on-the-web [Source]

  • New documented behavior: if Claude asks a question and a cloud session sits idle, you can still answer later (up to environment expiry) and the session continues from your answer. [line 596] [Source]
  • New clarification on teleport: the terminal gets its own copy of the session, so new local work doesn't propagate back to the cloud session; to keep steering from the phone after teleporting, start /remote-control locally. [line 649] [Source]

costs [Source]

  • /usage breakdown now also flags behaviors (e.g. long context, cache misses) accounting for ≥10% of recent usage. [line 25] [Source]
  • New section explaining why usage climbs in long sessions: full-context resends, cache misses (cache lifetime 1hr on subscription/5min once on usage credits or with API key/cloud provider), scheduled tasks firing while idle, agent teammates consuming tokens until exit, and /compact being itself a large request (vs. free /clear). [lines 240-250] [Source]

desktop [Source]

  • Environment option renamed from "Remote" to "Cloud" for Anthropic-hosted cloud sessions (throughout the doc). [line 36] [Source]

desktop-quickstart [Source]

  • Environment option renamed from "Remote" to "Cloud" for Anthropic-hosted cloud sessions. [line 60] [Source]

env-vars [Source]

  • New env var CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS: caps concurrently running subagents per session (default 20), v2.1.217+. [line 241] [Source]
  • New env var CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH: sets allowed subagent nesting depth below main conversation (default 1, i.e. no nesting by default), v2.1.217+. [line 246] [Source]

errors [Source]

  • "Agent would be spawned with zero tools" error reworked with three distinct failure categories, including new detail that background subagents (the default) drop tools only available to foreground subagents. [lines 1223-1227] [Source]
  • New fix guidance: remove entries for tools background subagents drop (e.g. LSP, TaskCreate) or run the subagent in the foreground; a tools list containing only Agent resolves to zero tools unless nested spawning is enabled. [lines 1238-1240] [Source]

hooks [Source]

  • New requirement: frontmatter hooks in a project subagent only run after the workspace trust dialog has been accepted for the folder the agent file came from; before v2.1.218 they could run from untrusted folders. [line 529] [Source]

interactive-mode [Source]

  • New emoji shortcode input feature: type :name: to insert an emoji, or : plus 2+ chars for a suggestion popup (Tab/Enter to insert); requires v2.1.217+; toggle via emojiCompletionEnabled. [lines 76, 317-325]
  • Background commands owned by a subagent now get a separate 60-minute termination (configurable via CLAUDE_SUBAGENT_BG_SHELL_MAX_MS); before v2.1.218 Ctrl+B-backgrounded commands weren't covered by either memory-pressure or time limits. [line 265] [Source]
  • PR status badge now always renders as a hyperlink even when hyperlink support can't be detected (e.g. over SSH/tmux); set FORCE_HYPERLINK=0 to force plain text. [line 382] [Source]

keybindings [Source]

  • Footer navigation context now includes artifacts, with a new footer:dismiss action (Backspace/Delete) to dismiss an artifact link from the footer without affecting the published artifact; requires v2.1.217+. [lines 53, 228]

mcp [Source]

  • Startup notice for servers needing auth now only counts servers you can sign in to from Claude Code; before v2.1.218 it also incorrectly counted disconnected claude.ai connectors (which can only be connected from claude.ai settings). [line 485] [Source]

memory [Source]

  • New documented limit on brace-expansion in paths rules: a shared budget of 1,000 expanded patterns and 4 MiB per rule; patterns exceeding it are used unexpanded (matching nothing). Before v2.1.217, many brace groups could stall or crash the CLI at startup. [lines 208-209] [Source]

monitoring-usage [Source]

  • New section: a generic OTEL_EXPORTER_OTLP_ENDPOINT/credential variable set in managed settings now governs all signals' endpoints, stripping any signal-specific endpoint override set at lower precedence (user settings/shell) at startup with a debug warning. Before v2.1.217, signal-specific overrides could redirect telemetry away from the managed collector. [lines 59-75] [Source]

security-guidance [Source]

  • Added a new "deep scan" row for the Claude Security plugin: a multi-agent vulnerability scan of a repo or diff with independently reviewed findings and patches, distinct from the single-pass /security-review. [line 212] [Source]

sessions [Source]

  • Clarified/changed /branch semantics: it copies the transcript and switches the same process to write to it, so "allow for this session" permission grants now DO carry over to the branch (previously documented as not carrying over); only --fork-session (separate process) requires re-approving. Also documents that in-flight background subagents/Bash commands keep running and their output goes to the new branch, not the original. [lines 104-111] [Source]

settings [Source]

  • New emojiCompletionEnabled setting (default true) to control emoji shortcode suggestions/replacement; requires v2.1.217+. [line 242] [Source]
  • New filesystem.disabled sandbox setting to skip filesystem isolation entirely (network isolation stays enforced); only honored from user/managed/CLI --settings; requires v2.1.216+. [lines 386, 445]

sub-agents [Source]

  • Nested subagent spawning is now off by default (previously on by default, fixed 5-level depth, not configurable). New env var CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH sets how many layers of nesting are allowed. [lines 755-773] [Source]
  • New "Concurrent subagent limit": default cap of 20 simultaneously-running subagents spawned via the Agent tool; fails with Concurrent subagent limit reached when exceeded; configurable via CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS; not enforced for ultracode sessions. Requires v2.1.217+. [lines 777-786] [Source]
  • Available-tools model reworked into two filters: a short always-removed list (now including Agent until nested spawning is enabled, plus newly added TaskOutput and Workflow), and a second filter that gives background subagents (the default) a much smaller built-in tool set — only Read, Grep, Glob, Bash, PowerShell, Edit, Write, NotebookEdit, WebFetch, WebSearch, TodoWrite, Skill, ToolSearch, EnterWorktree, ExitWorktree, Monitor, TaskStop, SendMessage, Artifact (plus all MCP tools). [lines 285-286] [Source]
  • Worktree-isolation Bash check hardened: commands that try to redirect git into the main checkout (via git -C, --git-dir, GIT_DIR/GIT_WORK_TREE, or cd first) now fail with an error. [line 221] [Source]
  • Subagent memory is now tied to the auto-memory feature: turning off auto memory (autoMemoryEnabled or CLAUDE_CODE_DISABLE_AUTO_MEMORY) makes the subagent memory field a no-op. [line 446] [Source]
  • Resuming a session with claude --agent now restores the agent's system prompt, tool restrictions, and model along with the conversation; if the named agent no longer exists, the session falls back to defaults with a warning. [line 643] [Source]

tools-reference [Source]

  • New documented behavior: when you answer AskUserQuestion by typing free text, Claude Code relays it with neutral wording so Claude follows the instruction as written; new dedicated "AskUserQuestion tool behavior" section split out. [lines 13, 104-112]
  • New "Windows encoding and exit codes" section for PowerShell (v2.1.214+): >/>> redirection now writes UTF-8 on PowerShell 5.1, piped stdin to native commands is UTF-8 encoded, and exit code 1 from where.exe/fc.exe/diff.exe is treated as a valid negative result rather than a failure. [lines 307-315] [Source]

API changes

New Documents

dreams [Source]

Overview page for a new beta resource, the Dreams API (/v1/dreams), gated behind the dreaming-2026-04-21 beta header. A "Dream" is an asynchronous memory-consolidation job: it reads an input memory store and/or a set of session transcripts, and writes consolidated memories into a new output memory store, letting an agent "sleep on" its accumulated session history to distill it into durable memories. The page documents the BetaDream object (id, status lifecycle of pending/running/completed/failed/canceled, inputs, outputs, model, usage, error) and notes the feature is explicitly in "research preview." It ties into the broader "agent memory" feature set alongside the memory_stores resource and reuses the same ModelConfig shape as the Agents API.

dreams/archive [Source]

Documents POST /v1/dreams/{dream_id}/archive, which archives a Dream job (setting archived_at) so it's excluded from default list results unless include_archived is set.

dreams/cancel [Source]

Documents POST /v1/dreams/{dream_id}/cancel, which stops a pending or running Dream job, transitioning it to canceled status.

dreams/create [Source]

Documents POST /v1/dreams, which starts a Dream job. The request body takes inputs (either a memory_store reference the dream reads without mutating, or a sessions reference listing session_ids whose transcripts feed the consolidation), an optional instructions string, and a model. The response is a BetaDream object beginning in pending status.

dreams/list [Source]

Documents GET /v1/dreams, which lists Dream jobs with pagination and filtering by created_at[gt]/created_at[lt], statuses, and include_archived.

dreams/retrieve [Source]

Documents GET /v1/dreams/{dream_id}, returning the full BetaDream object for a single job, including cumulative usage and error detail if the job failed.

thinking [Source]

New primary "Thinking" overview page, largely superseding the old extended-thinking.md page (which lost ~760 lines in this same commit and is now a legacy/migration reference). Explains the modern adaptive thinking model (thinking: {"type": "adaptive"}), where Claude decides whether and how deeply to reason, versus the older manual budget_tokens scheme. Covers the display field ("summarized" vs "omitted", with per-model defaults), thinking + tool-use rules, interleaved thinking, thinking-block preservation/caching per model, redacted_thinking blocks, and thinking encryption via the signature field.

thinking-steering-and-cost [Source]

New page on steering adaptive thinking via output_config.effort (max/xhigh/high/medium/low) plus prompt-based steering as a secondary lever. Also covers cost mechanics: max_tokens as the hard cap covering thinking + text combined, how effort/thinking-config changes invalidate prompt caching, and usage.output_tokens_details.thinking_tokens for billed reasoning-token counts.

thinking-tool-workflows [Source]

New page with a complete, runnable two-turn tool-use walkthrough with thinking enabled, showing how to echo the assistant's thinking + tool_use content blocks back unmodified when submitting a tool_result, and how interleaved thinking changes where reasoning appears between chained tool calls.

thinking-troubleshooting [Source]

New symptom-to-fix reference for thinking-related errors: a per-model table of which thinking.type values are supported/default/rejected, plus fixes for common 400 errors, empty thinking fields, missing thinking blocks under adaptive mode, stop_reason: "max_tokens" truncation, and cache-hit drops after changing thinking/effort settings.

Changed documents

use-case-guides/content-moderation [Source]

  • Code examples no longer set temperature=0; that guidance was dropped from all four sample functions. [lines 151-161] [Source]
  • Response parsing changed from response.content[0].text to a pattern that finds the text block explicitly, accounting for other block types like thinking. [line 161] [Source]
  • Code samples now show multi-language tabs (Python/TypeScript/C#/Go/Java/PHP/Ruby) instead of Python-only. [line 42] [Source]

use-case-guides/customer-support-chat [Source]

  • Removed the note recommending the Claude Console's Evaluation tool for testing prompts. [lines 552-554] [Source]
  • ChatBot walkthrough is now generalized/multi-language: added language tabs, and clarifies the Streamlit UI section is Python-only while the ChatBot class can be ported to any language. [lines 394-500] [Source]

use-case-guides/ticket-routing [Source]

  • The recommendation to use the Claude Console's "prompt generator" tool was replaced with a pointer to the metaprompt recipe from the Claude Cookbook. [line 137] [Source]

tool-use/computer-use-tool [Source]

  • "Extended thinking" cross-reference renamed to "Thinking," now pointing to the new build-with-claude/thinking.md page. [line 290] [Source]

tool-use/define-tools [Source]

  • References to "extended thinking" updated to "thinking," pointing to the new build-with-claude/thinking.md page; tool_choice: any/tool with thinking now documented to result in an error. [lines 20, 197]

tool-use/tool-use-with-prompt-caching [Source]

  • Cache-invalidation table entry expanded: changing thinking parameters now always invalidates the messages cache, and on models that render thinking config ahead of tools/system prompt, it also invalidates the tool and system caches. [line 66] [Source]
  • New table row: changing output_config.effort has the same cache-invalidation behavior as thinking parameters; explicitly setting the model's default effort is equivalent to omitting it. [line 67] [Source]

tool-use/troubleshooting-tool-use [Source]

  • "Every request is a cache miss" row now also lists variation in thinking configuration or output_config.effort as likely causes, with a new link to "Thinking and prompt caching." [line 35] [Source]

beta [Source]

  • New "dreaming-2026-04-21" beta header added to the AnthropicBeta enum. [line 77] [Source]
  • New BetaDreams endpoint group added: create/list/get/cancel/archive a Dream — a wholly new managed-agents resource. [lines 789-807] [Source]
  • Seven new webhook data.type values added: environment.archived/created/deleted/updated and memory_store.archived/created/deleted — new "Environment" and "Memory Store" resources with lifecycle webhooks. [lines 874-880] [Source]

beta/agents [Source]

  • New effort field added to BetaManagedAgentsModelConfig: sets output_config.effort (low/medium/high/xhigh/max) applied to every Messages call the agent's session makes. [line 141] [Source]
  • New effort field added to BetaManagedAgentsModelConfigParams (create/update variant): accepts a bare level string or {"type": "high"} object. [line 1723] [Source]

beta/agents/archive [Source]

  • Adds the new effort field to BetaManagedAgentsModelConfig. [line 207] [Source]

beta/agents/create [Source]

  • New effort parameter added to the create-agent model body param (bare level string or {type} object; omitting resolves per-model default). [lines 248-251] [Source]
  • Response schema/examples now show model.effort alongside model.speed. [lines 1132-1135] [Source]

beta/agents/list [Source]

  • Adds the new effort field to BetaManagedAgentsModelConfig. [line 225] [Source]

beta/agents/retrieve [Source]

  • Adds the new effort field to BetaManagedAgentsModelConfig. [line 213] [Source]

beta/agents/update [Source]

  • Schema change: the top-level version body parameter (previously required, for optimistic-concurrency control) is now optional — update succeeds unconditionally if version is omitted, and only enforces the concurrency check when a version is supplied. [lines 665-667] [Source]
  • New effort parameter added to the update-agent model body param, with the same create/update semantics as agents/create. [lines 276-279] [Source]

beta/agents/versions/list [Source]

  • Adds the new effort field to BetaManagedAgentsModelConfig. [line 217] [Source]

beta/environments/work [Source]

  • Adds new secret field to BetaSelfHostedWork: credential payload used by the environment worker to execute the work item, populated only when polling for work. [line 93] [Source]

beta/environments/work/ack [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 151] [Source]

beta/environments/work/list [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 161] [Source]

beta/environments/work/poll [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 163] [Source]

beta/environments/work/retrieve [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 151] [Source]

beta/environments/work/stop [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 157] [Source]

beta/environments/work/update [Source]

  • Adds the new secret field to BetaSelfHostedWork. [line 157] [Source]

beta/messages [Source]

  • New refusal category value "general_harms" added, with explanatory text now added for every category (cyber, bio, frontier_llm, reasoning_extraction, general_harms). [line 3698] [Source]
  • speed field description filled in/clarified: "fast" now documented as premium-priced and rejecting invalid model/speed combinations at create time. [line 9106] [Source]
  • BetaFallbackParam doc note reworded: override fields on a fallback entry now "set the corresponding parameter" rather than strictly "replace" the top-level field. [lines 8957-8960] [Source]

beta/messages/batches [Source]

  • New refusal category value "general_harms" added with descriptive text for all category values. [line 1654] [Source]
  • speed field description filled in/clarified. [line 2562] [Source]

beta/messages/batches/results [Source]

  • New refusal category "general_harms" added to the category enum, plus explanatory descriptions added for all existing categories. [line 1490] [Source]
  • speed field description changed from a short blurb to a fuller explanation noting premium pricing and rejected invalid model/speed combinations. [line 2398] [Source]

beta/messages/count_tokens [Source]

  • speed field description updated with the same premium-pricing/rejected-combinations wording. [line 4145] [Source]

beta/messages/create [Source]

  • speed request param description filled in with premium-pricing/rejection wording. [line 4315] [Source]
  • New refusal category value "general_harms" added with descriptions for all values. [line 8420] [Source]

beta/sessions [Source]

  • New effort field added to BetaManagedAgentsModelConfigParams used for session model overrides, and to the response-side BetaManagedAgentsModelConfig for session/subagent model blocks. [lines 257, 1041]

beta/sessions/archive [Source]

  • New effort field added to model config (request and response shapes), with response examples now showing model.effort: {"type": "low"} for both the top-level agent and subagents. [lines 205, 367]

beta/sessions/create [Source]

  • New capability: initial_events array parameter — lets a session-create call seed up to 50 initial events processed in order, supporting user.message (text/image/document content) and user.define_outcome (task description + rubric, inline or file reference). [lines 655-869] [Source]
  • Within initial_events, user.define_outcome supports max_iterations (default 3, max 20) controlling eval→revision cycles before giving up. [lines 869-871] [Source]
  • New effort field added to model/model_config params. [line 305] [Source]

beta/sessions/events [Source]

  • BetaManagedAgentsSessionRetriesExhausted description reworded to decouple this stop reason from max_iterations: now purely "repeated errors exhausted the retry budget," a distinct terminal condition from outcome-eval exhaustion. [line 5435] [Source]
  • New effort field added to model config in event payloads. [line 6217] [Source]

beta/sessions/events/list [Source]

  • retries_exhausted description reworded (same decoupling from max_iterations), and new effort field added to model config. [lines 2042, 2827]

beta/sessions/events/stream [Source]

  • retries_exhausted description reworded, and new effort field added to model config. [lines 2014, 2799]

beta/sessions/list [Source]

  • New effort field added to model config (request/response shapes), and list response examples now include model.effort for sessions and subagents. [lines 275, 1235-1238]

beta/sessions/retrieve [Source]

  • New effort field added to model config, with retrieve response examples now including model.effort. [lines 205, 1155-1158]

beta/sessions/threads [Source]

  • retries_exhausted description reworded (decoupled from max_iterations), and new effort field added to model config. [lines 2481, 133]

beta/sessions/threads/events/list [Source]

  • retries_exhausted description reworded, and new effort field added to model config. [lines 2012, 2797]

beta/sessions/threads/events/stream [Source]

  • New capability: new query parameter event_deltas opts a thread-level SSE stream into best-effort streaming preview deltas (event_start, event_delta) before the final event arrives, for agent.message (incremental content fragments) and agent.thinking (start-only signal). Mirrors a capability already present on the session-level stream endpoint but new for the thread-level endpoint. [lines 21-30] [Source]
  • Corresponding new event_start/event_delta SSE event schemas documented, gated on the event_deltas opt-in. [lines 3499-3536] [Source]

beta/sessions/threads/list [Source]

  • New effort field added to model config, with thread list response examples now showing model.effort. [line 217] [Source]

beta/sessions/threads/retrieve [Source]

  • New effort field added to model config, with response examples now showing model.effort. [line 209] [Source]

beta/sessions/update [Source]

  • New effort field added to model config for session updates (request/response shapes), with update response examples now including model.effort. [lines 461, 1412-1415, 1431-1434]

beta/webhooks [Source]

  • Seven new webhook event data schemas added, corresponding to two new webhook-emitting resources: BetaWebhookEnvironmentCreatedEventData/UpdatedEventData/ArchivedEventData/DeletedEventData, and BetaWebhookMemoryStoreCreatedEventData/ArchivedEventData/DeletedEventData. [lines 253-943] [Source]
  • BetaWebhookEventData discriminated union grew from "33 more" to "40 more" member types to accommodate the new environment/memory-store event data variants. [line 953] [Source]

errors [Source]

  • Claude Sonnet 5 added to the list of models that reject assistant-message prefill. [line 141] [Source]
  • Three new error sections added: "Extended thinking not supported" (Opus 4.7/4.8, Sonnet 5, Fable 5, Mythos 5 reject thinking.type.enabled), "Adaptive thinking not supported" (older models reject thinking.type.adaptive), and "Thinking cannot be disabled" (Fable 5/Mythos 5 reject thinking.type.disabled). [line 169] [Source]

messages [Source]

  • New refusal category "general_harms" added alongside cyber/bio/frontier_llm/reasoning_extraction, each now with a one-line explanation. [line 7247] [Source]

messages/batches [Source]

  • Same new "general_harms" refusal category addition. [line 11] [Source]

messages/batches/results [Source]

messages/create [Source]

models/list [Source]

  • New beta feature id "dreaming-2026-04-21" added to the model capabilities/features enum. [line 111] [Source]

models/retrieve [Source]

  • Same new "dreaming-2026-04-21" feature id added. [line 95] [Source]

build-with-claude/context-windows [Source]

  • New detail: Claude Haiku 4.5 does not support interleaved thinking (previously only Opus 4.5/Sonnet 4.5/earlier Claude 4 models were said to need the beta header; now explicitly excludes Haiku 4.5). [line 96] [Source]

build-with-claude/effort [Source]

  • Effort parameter availability walked back from "all supported models" to "the following models," and a new note explains xhigh is a newer effort level that some max-supporting models don't support. [lines 11, 50]
  • The detailed per-model effort/thinking-mode breakdown was removed and replaced by a pointer to the new thinking docs; Opus 4.5 is now called out as "the only extended-thinking-only model that supports effort." [line 165] [Source]
  • New best practice: changing effort between requests invalidates prompt caching, so effort should be held constant within a cached conversation. [line 175] [Source]

build-with-claude/extended-thinking [Source]

  • Page heavily trimmed (~760 lines removed): the old supported-models table, "how it works," and best-practices sections were deleted, with the content moved to the new thinking.md, thinking-steering-and-cost.md, and thinking-tool-workflows.md pages. The page is now scoped to legacy manual/extended thinking (budget_tokens), explicitly noted as deprecated (but functional) on Opus 4.6/Sonnet 4.6 and rejected with a 400 on Opus 4.7/4.8, Sonnet 5, Fable 5, and Mythos 5. A new "Migrating to adaptive thinking" section with a before/after config example was added. [line 13] [Source]

build-with-claude/overview [Source]

  • The features table's "Extended thinking" row was replaced with a "Thinking" row, and adaptive thinking is now listed as the only thinking mode on Sonnet 5, Fable 5, and Mythos 5, in addition to Opus 4.7/4.8. [lines 45, 55]

build-with-claude/prompt-caching [Source]

  • Cache-invalidation table updated: "Thinking parameters" now shows "Model-specific" invalidation, and a new row documents that changing output_config.effort always invalidates message-block caching. [lines 336-337] [Source]
  • Troubleshooting checklist and cache pre-warming guidance both now call out keeping thinking configuration and effort consistent across calls. [lines 470, 574]

build-with-claude/prompt-engineering/overview [Source]

  • The "Prompt generator" link (Claude Console dashboard tool) was replaced with a "Prompt generator notebook" pointing to the Cookbook's metaprompt Colab notebook, and the reference to Console prompting tools was removed. [line 19] [Source]

cli-sdks-libraries/libraries/apple-foundation-models [Source]

  • Sample code updated to use .sonnet5 instead of .sonnet4_6 as the recommended default model throughout the guide. [line 57] [Source]

cli-sdks-libraries/sdks/java [Source]

  • Java SDK version bumped from 2.48.0 to 2.50.0 in the Maven install snippet. [line 24] [Source]

manage-claude/api-and-data-retention [Source]

  • "Extended thinking" row removed from the ZDR/HIPAA eligibility table and replaced with a "Thinking" row, still Yes/Yes eligible. [line 207] [Source]

manage-claude/cmek [Source]

  • Expanded warning box on enabling CMEK: Anthropic keeps no key copy, misconfiguration causes permanent data loss, and a new requirement to verify Anthropic's identifier against published production identities before granting key access. [line 21] [Source]

managed-agents/agent-setup [Source]

  • Agent's model object now accepts an effort level, settable at agent creation; a per-session model override's effort is ignored. [line 20] [Source]
  • Updating an agent's version field is now optional: omitting it applies the update unconditionally (last write wins) instead of requiring an exact version match. [line 99] [Source]

managed-agents/cloud-sandboxes-reference [Source]

  • Default sandbox networking changed: API-created environments now default to unrestricted networking, while Studio-provisioned sandboxes default to limited (previously simply "disabled by default"). [line 73] [Source]

managed-agents/define-outcomes [Source]

  • New capability: an outcome can now be defined directly in the session-create request via a single user.define_outcome event in initial_events, instead of requiring a separate follow-up call. [line 119] [Source]

managed-agents/dreams [Source]

  • Dream runtime guidance changed from "minutes to tens of minutes" to "minutes to a few hours," driven by the number of input transcripts. [line 92] [Source]
  • Clarified that the archiving/deletion guard while a dream is running applies only to the dream resource itself, not its input/output stores; input_session_unavailable now only fires on session deletion (not archival). [line 149] [Source]

managed-agents/events-and-streaming [Source]

  • system.message behavior changed: it now appends system-level context to subsequent turns rather than replacing the system prompt, and can no longer be sent while idle with stop_reason: requires_action unless it trails a tool-result event in the same request. [lines 17, 418]
  • New capability: event-delta previews (event_deltas[]) now supported on session thread streams, not just the session-level stream; new "Preview session thread events" section added. [lines 95, 217]
  • Usage reporting changed: cache_creation_input_tokens replaced by a cache_creation object broken down by cache lifetime (ephemeral_5m_input_tokens, ephemeral_1h_input_tokens). [line 432] [Source]

managed-agents/files [Source]

  • Max files per session increased from 100 to 500. [line 72] [Source]
  • mount_path semantics changed: the path is now rooted under the session's uploads directory (e.g. /data.csv/mnt/session/uploads/data.csv) rather than being the exact path. [line 143] [Source]

managed-agents/mcp-connector [Source]

  • MCP tool output overflow threshold changed from 100,000 tokens to 100,000 characters (~25,000 tokens) — a much lower effective limit. [line 98] [Source]
  • Credential URL matching now normalizes scheme/host case, default ports, and trailing slashes instead of requiring an exact match, and mcp_authentication_failed_error was broadened to also cover missing-credential and OAuth-refresh failures. [lines 116, 125]

managed-agents/multiagent-orchestration [Source]

  • Behavior change: referencing an agent with its own multiagent.agents roster (depth > 1) now fails the create/update request with a validation error, instead of being silently ignored. [line 66] [Source]

managed-agents/reference [Source]

  • user.message now supports image and document content, not just text. [line 43] [Source]
  • MCP servers that only support the deprecated SSE transport now work via automatic fallback (previously streamable HTTP was required). [line 66] [Source]

managed-agents/scheduled-deployments [Source]

  • Deployments now accept user.define_outcome (not just user.message) as the required initial event. [line 20] [Source]
  • Scheduled-run jitter changed from "up to 10 seconds" to "up to 15% of the interval between runs, min 5s, max 9 minutes." [line 68] [Source]

managed-agents/self-hosted-sandboxes [Source]

  • Output location changed: self-hosted sandboxes no longer use /mnt/session/outputs; deliverables now land under the working directory, with the sample Dockerfile/spawn-script mounting /workspace instead. [line 47] [Source]
  • ant CLI version bumped from 1.17.0 to 1.19.0; custom-tool description length limit increased from 1,024 to 4,096 characters. [lines 132, 503]
  • Self-hosted sandboxes now explicitly reject any session with a resources entry (broader restriction than the previous "memory not supported" note), and operations endpoints (work.stats, work.stop) now accept either the org API key or the environment key. [lines 314, 515]
  • work.stop now defaults to a graceful async "stopping" transition confirmed by the worker's next lease heartbeat, rather than immediate in-flight-call draining; force: true still stops immediately. [line 555] [Source]

managed-agents/session-operations [Source]

  • terminated status now also occurs on normal completion, not just unrecoverable error. [line 22] [Source]

managed-agents/sessions [Source]

  • New "Seed the session with initial events" section: initial_events (up to 50 user.message/user.define_outcome events) lets you create a session and start work in one call, entering running status immediately. [line 43] [Source]
  • New override rule: clearing mcp_servers now returns a 400 if tools still references one of its mcp_toolset entries. [line 99] [Source]

managed-agents/skills [Source]

  • Skill version pinning (vs. latest) now applies to both Anthropic pre-built skills and custom skills, previously custom-only. [line 53] [Source]

managed-agents/tools [Source]

  • Same tool-output overflow threshold change (100,000 tokens → 100,000 characters / ~25,000 tokens) as mcp-connector. [line 30] [Source]

managed-agents/webhooks [Source]

  • New "Environment events" and "Memory store events" event types added to the webhook catalog. [line 33] [Source]
  • Signature headers changed from a single X-Webhook-Signature to webhook-id/webhook-timestamp/webhook-signature; event id format changed to a whe_-prefixed ID. [line 66] [Source]
  • Delivery/retry policy rewritten: now up to 3 attempts with jittered exponential backoff (5–120s), dropped after final failure with no durability guarantee; auto-disable now triggers on immediate 3xx/invalid-IP or "sustained" failure windows. [line 139] [Source]

release-notes/overview [Source]

  • New "July 22, 2026" changelog entry added, summarizing agent effort config, environment/memory-store webhooks, session initial_events, optional agent version on update, and thread-level event deltas. [line 15] [Source]