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
xhigheffort 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_eventsto seed a session with a message or outcome definition at creation time, a new per-agenteffortcontrol, thread-level streaming previews, and new Environment/Memory Store webhook events. - Claude Code 2.1.218 moves
/code-reviewto 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-reviewto 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-readermode - Added HTTP status and error text to
claude mcp listand/mcpwhen 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, alongsidetrue/false
Existing feature improvements
- Improved
/ultrareviewerror 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 ultrasilently 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: forkto run in the background by default; opt out per skill withbackground: false - Changed
/deep-researchto 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 (likeC:\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
jin place of newlines in terminals that encode pasted newlines as Ctrl+J - Fixed
/contextreporting 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_useblock 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+Bbackgrounding 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_ACCESSIBILITYcursor 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]
toolsfield 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_DEPTHenv 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
toolsisn't in the subagent's session at all — Claude works without it silently (no permission prompt or error). [lines 526-531] [Source] toolsomission 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]
toolsfield 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-controllocally. [line 649] [Source]
costs [Source]
/usagebreakdown 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
/compactbeing 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; atoolslist containing onlyAgentresolves 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 viaemojiCompletionEnabled. [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.218Ctrl+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=0to force plain text. [line 382] [Source]
keybindings [Source]
- Footer navigation context now includes artifacts, with a new
footer:dismissaction (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
pathsrules: 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
/branchsemantics: 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
emojiCompletionEnabledsetting (defaulttrue) to control emoji shortcode suggestions/replacement; requires v2.1.217+. [line 242] [Source] - New
filesystem.disabledsandbox 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_DEPTHsets 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 reachedwhen exceeded; configurable viaCLAUDE_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
Agentuntil nested spawning is enabled, plus newly addedTaskOutputandWorkflow), and a second filter that gives background subagents (the default) a much smaller built-in tool set — onlyRead, 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, orcdfirst) now fail with an error. [line 221] [Source] - Subagent memory is now tied to the auto-memory feature: turning off auto memory (
autoMemoryEnabledorCLAUDE_CODE_DISABLE_AUTO_MEMORY) makes the subagentmemoryfield a no-op. [line 446] [Source] - Resuming a session with
claude --agentnow 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
AskUserQuestionby 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 fromwhere.exe/fc.exe/diff.exeis 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].textto 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.mdpage. [line 290] [Source]
tool-use/define-tools [Source]
- References to "extended thinking" updated to "thinking," pointing to the new
build-with-claude/thinking.mdpage;tool_choice: any/toolwith 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.efforthas 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.effortas 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 theAnthropicBetaenum. [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.typevalues added:environment.archived/created/deleted/updatedandmemory_store.archived/created/deleted— new "Environment" and "Memory Store" resources with lifecycle webhooks. [lines 874-880] [Source]
beta/agents [Source]
- New
effortfield added toBetaManagedAgentsModelConfig: setsoutput_config.effort(low/medium/high/xhigh/max) applied to every Messages call the agent's session makes. [line 141] [Source] - New
effortfield added toBetaManagedAgentsModelConfigParams(create/update variant): accepts a bare level string or{"type": "high"}object. [line 1723] [Source]
beta/agents/archive [Source]
beta/agents/create [Source]
- New
effortparameter added to the create-agentmodelbody param (bare level string or{type}object; omitting resolves per-model default). [lines 248-251] [Source] - Response schema/examples now show
model.effortalongsidemodel.speed. [lines 1132-1135] [Source]
beta/agents/list [Source]
beta/agents/retrieve [Source]
beta/agents/update [Source]
- Schema change: the top-level
versionbody parameter (previously required, for optimistic-concurrency control) is now optional — update succeeds unconditionally ifversionis omitted, and only enforces the concurrency check when a version is supplied. [lines 665-667] [Source] - New
effortparameter added to the update-agentmodelbody param, with the same create/update semantics as agents/create. [lines 276-279] [Source]
beta/agents/versions/list [Source]
beta/environments/work [Source]
- Adds new
secretfield toBetaSelfHostedWork: 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]
beta/environments/work/list [Source]
beta/environments/work/poll [Source]
beta/environments/work/retrieve [Source]
beta/environments/work/stop [Source]
beta/environments/work/update [Source]
beta/messages [Source]
- New refusal
categoryvalue"general_harms"added, with explanatory text now added for every category (cyber,bio,frontier_llm,reasoning_extraction,general_harms). [line 3698] [Source] speedfield description filled in/clarified: "fast" now documented as premium-priced and rejecting invalid model/speed combinations at create time. [line 9106] [Source]BetaFallbackParamdoc 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
categoryvalue"general_harms"added with descriptive text for all category values. [line 1654] [Source] speedfield description filled in/clarified. [line 2562] [Source]
beta/messages/batches/results [Source]
- New refusal category
"general_harms"added to thecategoryenum, plus explanatory descriptions added for all existing categories. [line 1490] [Source] speedfield 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]
speedfield description updated with the same premium-pricing/rejected-combinations wording. [line 4145] [Source]
beta/messages/create [Source]
speedrequest param description filled in with premium-pricing/rejection wording. [line 4315] [Source]- New refusal
categoryvalue"general_harms"added with descriptions for all values. [line 8420] [Source]
beta/sessions [Source]
- New
effortfield added toBetaManagedAgentsModelConfigParamsused for session model overrides, and to the response-sideBetaManagedAgentsModelConfigfor session/subagent model blocks. [lines 257, 1041]
beta/sessions/archive [Source]
- New
effortfield added tomodelconfig (request and response shapes), with response examples now showingmodel.effort: {"type": "low"}for both the top-level agent and subagents. [lines 205, 367]
beta/sessions/create [Source]
- New capability:
initial_eventsarray parameter — lets a session-create call seed up to 50 initial events processed in order, supportinguser.message(text/image/document content) anduser.define_outcome(task description + rubric, inline or file reference). [lines 655-869] [Source] - Within
initial_events,user.define_outcomesupportsmax_iterations(default 3, max 20) controlling eval→revision cycles before giving up. [lines 869-871] [Source] - New
effortfield added tomodel/model_configparams. [line 305] [Source]
beta/sessions/events [Source]
BetaManagedAgentsSessionRetriesExhausteddescription reworded to decouple this stop reason frommax_iterations: now purely "repeated errors exhausted the retry budget," a distinct terminal condition from outcome-eval exhaustion. [line 5435] [Source]- New
effortfield added tomodelconfig in event payloads. [line 6217] [Source]
beta/sessions/events/list [Source]
retries_exhausteddescription reworded (same decoupling frommax_iterations), and neweffortfield added tomodelconfig. [lines 2042, 2827]
beta/sessions/events/stream [Source]
retries_exhausteddescription reworded, and neweffortfield added tomodelconfig. [lines 2014, 2799]
beta/sessions/list [Source]
- New
effortfield added tomodelconfig (request/response shapes), and list response examples now includemodel.effortfor sessions and subagents. [lines 275, 1235-1238]
beta/sessions/retrieve [Source]
- New
effortfield added tomodelconfig, with retrieve response examples now includingmodel.effort. [lines 205, 1155-1158]
beta/sessions/threads [Source]
retries_exhausteddescription reworded (decoupled frommax_iterations), and neweffortfield added tomodelconfig. [lines 2481, 133]
beta/sessions/threads/events/list [Source]
retries_exhausteddescription reworded, and neweffortfield added tomodelconfig. [lines 2012, 2797]
beta/sessions/threads/events/stream [Source]
- New capability: new query parameter
event_deltasopts a thread-level SSE stream into best-effort streaming preview deltas (event_start,event_delta) before the final event arrives, foragent.message(incremental content fragments) andagent.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_deltaSSE event schemas documented, gated on theevent_deltasopt-in. [lines 3499-3536] [Source]
beta/sessions/threads/list [Source]
- New
effortfield added tomodelconfig, with thread list response examples now showingmodel.effort. [line 217] [Source]
beta/sessions/threads/retrieve [Source]
- New
effortfield added tomodelconfig, with response examples now showingmodel.effort. [line 209] [Source]
beta/sessions/update [Source]
- New
effortfield added tomodelconfig for session updates (request/response shapes), with update response examples now includingmodel.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, andBetaWebhookMemoryStoreCreatedEventData/ArchivedEventData/DeletedEventData. [lines 253-943] [Source] BetaWebhookEventDatadiscriminated 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 rejectthinking.type.adaptive), and "Thinking cannot be disabled" (Fable 5/Mythos 5 rejectthinking.type.disabled). [line 169] [Source]
messages [Source]
- New refusal category
"general_harms"added alongsidecyber/bio/frontier_llm/reasoning_extraction, each now with a one-line explanation. [line 7247] [Source]
messages/batches [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]
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
xhighis a newer effort level that somemax-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
effortbetween 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, andthinking-tool-workflows.mdpages. 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.effortalways 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
.sonnet5instead of.sonnet4_6as the recommended default model throughout the guide. [line 57] [Source]
cli-sdks-libraries/sdks/java [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
modelobject now accepts aneffortlevel, settable at agent creation; a per-sessionmodeloverride'seffortis ignored. [line 20] [Source] - Updating an agent's
versionfield 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
unrestrictednetworking, while Studio-provisioned sandboxes default tolimited(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_outcomeevent ininitial_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_unavailablenow only fires on session deletion (not archival). [line 149] [Source]
managed-agents/events-and-streaming [Source]
system.messagebehavior changed: it now appends system-level context to subsequent turns rather than replacing the system prompt, and can no longer be sent while idle withstop_reason: requires_actionunless 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_tokensreplaced by acache_creationobject 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_pathsemantics 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_errorwas 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.agentsroster (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.messagenow 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 justuser.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/workspaceinstead. [line 47] [Source] antCLI 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
resourcesentry (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.stopnow defaults to a graceful async "stopping" transition confirmed by the worker's next lease heartbeat, rather than immediate in-flight-call draining;force: truestill stops immediately. [line 555] [Source]
managed-agents/session-operations [Source]
terminatedstatus 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 50user.message/user.define_outcomeevents) lets you create a session and start work in one call, enteringrunningstatus immediately. [line 43] [Source] - New override rule: clearing
mcp_serversnow returns a 400 iftoolsstill references one of itsmcp_toolsetentries. [line 99] [Source]
managed-agents/skills [Source]
- Skill
versionpinning (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-Signaturetowebhook-id/webhook-timestamp/webhook-signature; eventidformat changed to awhe_-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]