Source: ai-research/claude-code-docs-changelog-2026-07-24.md — official Claude Code changelog, fetched 2026-07-24 from code.claude.com/docs/en/changelog. Continues Week 29; the reference tables in CLI Reference carry the new flags/env/settings.
Note: The official W30 weekly digest page (code.claude.com/docs/en/whats-new/2026-w30) had not yet published as of the sweep date (2026-07-24, the first Thursday of W30). This article is compiled directly from the official changelog. v2.1.214–215 technically shipped in the final days of W29 (July 18–19) but were not included in the published W29 digest; they are included here. The W29 sweep ran on 2026-07-17 before they shipped.
The week of July 20–24 ships six releases (v2.1.214–v2.1.219). The headline is Claude Opus 5 landing as the default Opus model in Claude Code — 1M context, fast mode at 50 per MTok, replacing Opus 4.7 in the fast-mode roster. The week also delivers a substantial Bash permission hardening batch (six fail-closed security fixes in v2.1.214), /code-review as a background subagent (v2.1.218), a new DirectoryAdded hook lifecycle event (v2.1.219), and the completion of the nested subagent depth story (v2.1.217 disabled nesting; v2.1.219 restores it at depth 3 with explicit control).
Claude Opus 5 as default Opus in Claude Code (v2.1.219 — headline)
claude-opus-5 is now the default Opus model in Claude Code. Key Claude Code specifics from the changelog:
- 1M context window — Claude Code’s
/modelpicker now labels the Opus row “Opus (1M context)” to reflect the larger window. - Fast mode at 50 per MTok — fast mode now applies to Opus 5 and Opus 4.8 only; Opus 4.7 has been removed from fast mode. Speed tier pricing matches the 2× base convention.
- claude-api skill updated to default to Opus 5 with a migration path from Opus 4.8.
The model itself launched on 2026-07-24 (see Claude Opus 5 for the full capability coverage). The changelog entry adds three facts not in the launch announcement: the default-Opus-in-Claude-Code designation, the 1M context figure, and the Opus 4.7 fast-mode removal.
Also in v2.1.219:
workflowSizeGuidelinesettings key — sets the Dynamic workflow size guideline from any settings file; hides the/configtoggle while in use.- Dynamic workflows now default to a medium size guideline (aim for fewer than 15 agents); change in
/configor with/config workflowSizeGuideline=<size>. mcp_server_errorsadded to the headless stream-json init event, listing skipped--mcp-configentries.- Managed MCP allowlist/denylist
${VAR}entries now resolve from the startup environment and managed-settings env instead of settings-file env. claude mcp listand/mcpnow show HTTP status and error text when a server fails to connect, plus a warning for hidden leading/trailing whitespace in MCP config values./modelpicker highlight updated: only the newest model’s name is highlighted (marks the new release, not an arbitrary subset).claude -pno longer drops the already-produced answer when a turn dies mid-stream on an API error.- Subagent nesting: see § Subagent depth control below.
DirectoryAdded hook (v2.1.219)
New lifecycle event DirectoryAdded fires after /add-dir or the SDK register_repo_root control request registers a new working directory mid-session. This is distinct from CwdChanged (which fires when the session’s current directory changes) — DirectoryAdded fires when a new root is added to the session’s set of working directories without changing the active cwd.
Use cases: auto-loading topic-specific CLAUDE.md instructions, triggering a security or structure check when a new repo root is registered, or notifying downstream systems that the session’s scope has expanded.
See Claude Code Hooks for the full lifecycle event table.
Bash permission hardening (v2.1.214)
A batch of six fail-closed security fixes shipped together. Each addresses a bypass pattern that previously allowed allow rules or auto-approvals to fire when they should have prompted:
- Single-segment
dir/**allow rules (e.g.Edit(src/**)) were auto-approving writes to a nesteddir/anywhere in the tree, not only under<cwd>/dir. Now matches only the intended<cwd>/dirsubtree. - Windows PowerShell 5.1 permission-check bypass — a class of commands could skip the permission check entirely in PS 5.1 sessions.
- File-descriptor redirect forms that Bash parses differently than the permission analyzer now fail closed (prompt) instead of being auto-approved.
- Commands over 10,000 characters now always prompt; the analyzer was previously unreliable on very long inputs.
- zsh variable subscripts and modifiers inside
[[ ]]comparisons are no longer treated as inert text — they now prompt. help/mancommands that could carry unsafe options, command substitutions, or backslash paths are no longer auto-approved as read-only.
Also in v2.1.214: remote sessions could allow a permission prompt to proceed before the local confirmation dialog resolved — fixed.
The companion change to hook if: conditions: single-segment dir/** hook conditions now match only <cwd>/dir, consistent with the allow-rule change above. Write **/dir/** for any-depth matching; deny/ask permission rules keep their any-depth match. See Hooks.
v2.1.218 — /code-review and /deep-research
/code-reviewas background subagent — review work no longer fills the main conversation, and stacked slash commands remain its review target while it runs. Direct practical effect: you can keep working in your session while/code-reviewruns in the background without losing your working context to the review transcript./deep-researchstarts only when invoked manually — Claude no longer launches it on its own. Closes the pattern where deep-research could kick off unexpectedly during agentic sessions.- Skills with
context: forknow run in the background by default. Opt out per skill withbackground: falsein the skill frontmatter. - Agent names with
:are rejected —:is reserved for plugin namespacing. If your agent.mdfiles use:in their names, rename them before upgrading. yes/no/on/off/1/0(case-insensitive) now accepted as boolean values for skill and plugin frontmatter, alongsidetrue/false.- Server-managed settings: benign feature and cost toggles no longer trigger the settings-approval prompt — only settings that materially affect security posture do.
- Security: agent frontmatter hooks now require the agent file’s own folder to have accepted workspace trust — hooks in untrusted folders are no longer silently executed.
- Fixed
/ultrareviewfailing on descriptive arguments like “review my auth changes” — they now run a review of the current branch with the text as a note. - Fixed
/code-review ultrasilently running a local review in non-interactive sessions (was silently downgrading from cloud to local with no signal). - Fixed gateway spend metering for Bedrock application-inference-profile ARNs.
See Plugins and Marketplaces for the context: fork background-default and boolean-values changes.
Subagent depth control (v2.1.217 + v2.1.219)
These two releases shipped a paired change:
v2.1.217 (July 21): Subagents no longer spawn nested subagents by default. Set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting. Also added a concurrent subagents cap — default 20, override with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS — so one message can’t fan out unbounded background agents.
v2.1.219 (July 24): Reversed the depth-zero default: subagents can now spawn nested subagents up to depth 3 by default (was 1 before v2.1.217). The env var semantics flipped: CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 disables nesting; higher values allow deeper chains.
Net effect after both releases: default nesting depth is 3 (increased from 1 pre-v2.1.217, after a brief zero-nesting interim). The concurrent-cap (20) from v2.1.217 remains. See Agent Teams for the background-session surface and Scheduled Tasks for /loop-level scheduling context.
Also from v2.1.217: --max-budget-usd now stops background subagents once the cap is reached (new spawns denied, running background agents halted — was only blocking new foreground turns before).
EndConversation tool (v2.1.214)
Claude can now end a session with highly abusive users or persistent jailbreak attempts via the EndConversation tool — the same capability live on claude.ai since 2025. Anthropic’s research paper: anthropic.com/research/end-subset-conversations.
Other notable v2.1.214 additions
- Periodic progress heartbeat for long-running tool calls that previously went silent — the session now emits a visible tick so long tools don’t appear hung.
- ISO
modifiedtimestamp added to memory-file frontmatter (machine-readable last-modified stamp). - OpenTelemetry:
message.uuid,client_request_id,tool_sourceattributes on log events;CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTHto configure the content truncation limit. - Reasoning effort in
subagentStatusLinepayload — custom agent rows can render model and effort in the UI. - Docker permission prompts for daemon-redirect flags (
--url,--connection,--identity, Podman remote mode) — previously ran without a prompt. - Scheduled tasks fix: fired prompt is now delivered as the session’s assigned task (was previously being rejected as untrusted input). Directly relevant to scheduled/cron contexts like this sweep.
SessionStarthooks now report source"fork"when a session begins as a fork instead of"resume".
v2.1.216 (July 20)
sandbox.filesystem.disabledsetting — skip filesystem isolation while keeping network egress control. For workflows that need full-disk access but still want the sandbox’s network guardrails.- Fixed a quadratic slowdown in long sessions: message-normalization cost grew with turn count, causing multi-second stalls.
- Fixed auto mode denying commands with “HTTP 401” classifier errors after OAuth token rotation (see Auto Mode).
- Fixed
AskUserQuestioncontinuing when the free-text answer asked it to wait or explain. - Fixed worktree-isolated subagents redirecting git into the shared checkout via
git -C,--git-dir, orGIT_DIR/GIT_WORK_TREE. - dataviz skill: reordered default chart palette; fixed guidance for four-series chart labeling.
v2.1.215 (July 19)
Claude no longer runs the /verify and /code-review skills on its own — invoke them explicitly. This closes the unexpected-auto-review pattern flagged in v2.1.215.
Key Takeaways
- Claude Opus 5 is now the default Opus model in Claude Code (v2.1.219); fast mode now covers Opus 5 and Opus 4.8 only (Opus 4.7 removed).
- v2.1.214 closed six Bash permission-check bypasses simultaneously — if you rely on
allowrules for automation, verify behavior against the single-segmentdir/**fix in particular. /code-reviewnow runs in a background subagent (v2.1.218) — no longer fills the main conversation or blocks stacked commands.- Subagent nesting depth is now 3 by default (v2.1.219); the concurrent cap of 20 from v2.1.217 still applies.
- The new
DirectoryAddedhook fires when a working directory is added mid-session (not just when cwd changes). - Skills with
context: forknow run in background by default (v2.1.218); agent names with:are now invalid. /deep-researchis now manual-only (v2.1.218).
Related
- Claude Opus 5 — model capability coverage; the W30 changelog adds default-Opus status, 1M context, and Opus 4.7 fast-mode removal.
- Claude Code CLI Reference — new settings/env:
workflowSizeGuideline,sandbox.network.strictAllowlist,sandbox.filesystem.disabled,CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS,CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH,CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH; v2.1.219 additions. - Claude Code Hooks —
DirectoryAddedlifecycle event (v2.1.219);dir/**hook condition scope change (v2.1.214);SessionStartsource"fork"(v2.1.214). - Auto Mode — dangerous-rm, background-
&, suspicious-Windows-path checks now auto-mode classified (v2.1.218); plan-mode auto classifier for ambiguous Bash (v2.1.218). - Agent Teams — subagent nesting depth 3 default (v2.1.219); concurrent cap 20 (v2.1.217).
- Claude Code Scheduled Tasks —
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, scheduled-task fired-prompt fix (v2.1.214). - Plugins and Marketplaces —
context: forkbackground default; agent name:restriction; boolean frontmatter values (v2.1.218). - What’s New — Week 29 — prior digest: Artifacts MCP connectors, screen reader mode, /fork→background session, v2.1.207–212.