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 /model picker 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:

  • workflowSizeGuideline settings key — sets the Dynamic workflow size guideline from any settings file; hides the /config toggle while in use.
  • Dynamic workflows now default to a medium size guideline (aim for fewer than 15 agents); change in /config or with /config workflowSizeGuideline=<size>.
  • mcp_server_errors added to the headless stream-json init event, listing skipped --mcp-config entries.
  • Managed MCP allowlist/denylist ${VAR} entries now resolve from the startup environment and managed-settings env instead of settings-file env.
  • claude mcp list and /mcp now show HTTP status and error text when a server fails to connect, plus a warning for hidden leading/trailing whitespace in MCP config values.
  • /model picker highlight updated: only the newest model’s name is highlighted (marks the new release, not an arbitrary subset).
  • claude -p no 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 nested dir/ anywhere in the tree, not only under <cwd>/dir. Now matches only the intended <cwd>/dir subtree.
  • 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/man commands 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-review as 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-review runs in the background without losing your working context to the review transcript.
  • /deep-research starts 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: fork now run in the background by default. Opt out per skill with background: false in the skill frontmatter.
  • Agent names with : are rejected: is reserved for plugin namespacing. If your agent .md files 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, alongside true/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 /ultrareview failing 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 ultra silently 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 modified timestamp added to memory-file frontmatter (machine-readable last-modified stamp).
  • OpenTelemetry: message.uuid, client_request_id, tool_source attributes on log events; CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to configure the content truncation limit.
  • Reasoning effort in subagentStatusLine payload — 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.
  • SessionStart hooks now report source "fork" when a session begins as a fork instead of "resume".

v2.1.216 (July 20)

  • sandbox.filesystem.disabled setting — 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 AskUserQuestion continuing 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, or GIT_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 allow rules for automation, verify behavior against the single-segment dir/** fix in particular.
  • /code-review now 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 DirectoryAdded hook fires when a working directory is added mid-session (not just when cwd changes).
  • Skills with context: fork now run in background by default (v2.1.218); agent names with : are now invalid.
  • /deep-research is now manual-only (v2.1.218).
  • 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 HooksDirectoryAdded lifecycle event (v2.1.219); dir/** hook condition scope change (v2.1.214); SessionStart source "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 TasksCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, scheduled-task fired-prompt fix (v2.1.214).
  • Plugins and Marketplacescontext: fork background 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.