← All briefs
Matins
24 changes / 4 actionable / 3 deep dives
Claude Code

TL;DR

  • Opus 5 is the new default Opus model (1M context, $10/$50 per Mtok) and Opus 4.7 is removed from fast mode. /fast now applies to Opus 5 and Opus 4.8 only; if you relied on fast mode with 4.7, it will silently stop working (more below).

  • Subagent nesting is back on by default at depth 3. 2.1.217 turned nesting off; 2.1.219 reverses that, so if you set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH after 2.1.217 to re-enable it, your override may now be redundant (more below).

  • Dynamic workflows now default to a medium size guideline (fewer than 15 agents). Set a different size via workflowSizeGuideline in settings or Dynamic workflow size in /config if your workflows routinely exceed that.

  • Managed MCP allowlist/denylist ${VAR} entries now resolve from the startup environment, not settings-file env. If your MCP config uses ${VAR} in allowlists, the variable source has quietly shifted.

New in 2.1.220, 2.1.219

2.1.220 (July 26, 2026)

  • Bug fixes and reliability improvements

2.1.219 (July 26, 2026)

  • Added Claude Opus 5 (claude-opus-5), now the default Opus model, 1M context, fast mode at $10/$50 per Mtok
  • Added sandbox.network.strictAllowlist setting to deny non-allowlisted hosts for sandboxed commands without prompting
  • Added DirectoryAdded hook that fires after /add-dir or the SDK register_repo_root control request registers a new working directory mid-session
  • Added mcp_server_errors to the headless stream-json init event, listing --mcp-config entries skipped by config validation; terminal runs print a startup warning
  • Added the workflowSizeGuideline settings key so the advisory Dynamic workflow size guideline can be set from any settings file; the /config row is hidden while one does
  • Added nested subagent forwarding in stream-json: subagents spawned at depth-2+ now appear when --forward-subagent-text is set, keyed by their spawning Agent tool_use id
  • Fixed claude -p text output dropping the answer already produced when a turn dies on a mid-stream API error
  • Added HTTP status and error text to claude mcp list and /mcp when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace
  • Fixed the Fable model row showing "Requires usage credits" for plans that include it, when a stale cache had baked the label in
  • Fixed the /model picker showing the merged Opus row as plain "Opus" instead of "Opus (1M context)"
  • Fixed copy-on-select inside GNU screen printing base64 into the terminal instead of copying the selection
  • Fixed Remote Control clients keeping a stale fast-mode status after a model switch, reconnect, or failed org check
  • Fixed CLAUDE_CODE_GIT_BASH_PATH on Windows exiting or being used as bash when the path isn't a bash/sh binary; it's now ignored with a warning
  • Fixed Vim mode: pressing left arrow on an empty prompt now returns to the agent view from NORMAL mode, not just INSERT
  • Fixed screen-reader mode rewriting the entire input line on every keystroke instead of echoing only the typed character
  • Improved the "Remote Control is only available via api.anthropic.com" error to name the specific setting that caused it
  • Improved claude --teleport to show which repo your current checkout points at when it doesn't match the session's repo
  • Changed dynamic workflows to default to a medium size guideline (aim for fewer than 15 agents); pick another size or unrestricted with Dynamic workflow size in /config
  • Changed managed MCP allowlist/denylist ${VAR} entries to resolve from the startup environment and managed-settings env instead of settings-file env
  • Changed the /model picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
  • Added the current default workflow size to the running-workflow status line, with a pointer to /config for changing it
  • Removed Opus 4.7 from fast mode; /fast now applies to Opus 5 and Opus 4.8
  • Updated the claude-api skill to default to Claude Opus 5, with a migration path from Opus 4.8
  • Subagents can now spawn nested subagents up to depth 3 by default (was 1); set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting

Notes

Opus 5 rollout and fast mode reshuffling

Opus 5 landing as the default is the main event. The pricing ($10/$50 per Mtok) matches the Opus 4.8 tier, and 1M context carries over, so no billing surprises. The /model picker now highlights only the newest model name, which is a cosmetic tell that Anthropic expects most users to move over quickly.

The fast mode change is the part that can bite you. Opus 4.7 is removed from /fast entirely. If you were on Opus 4.7 with fast mode enabled, /fast will silently have no effect until you switch to Opus 5 or 4.8. The claude-api skill has also been updated to default to Opus 5, with a migration path documented for Opus 4.8 users.

Subagent nesting: off, then on again

The nesting default has flipped twice in a week. 2.1.217 (July 24) disabled nested subagents by default, introducing CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH as an opt-in. 2.1.219 (today) sets the default to depth 3. If you added the env var after 2.1.217 with a value above 3, it still works. If you set it to allow nesting at all (any positive value), it is now redundant unless your value differs from 3. The concurrency cap from 2.1.217 (default 20 concurrent subagents, CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) remains in place, so depth-3 nesting is bounded by the concurrency ceiling.

New hook and settings surface for automation builders

DirectoryAdded is the first hook that fires on a working-directory change. It triggers after /add-dir or the SDK's register_repo_root control request. If you have hook-driven setup (environment activation, linter config) that today only runs at session start via SessionStart, this hook lets you extend it to directories added mid-session. Separately, sandbox.network.strictAllowlist gives a hard-deny alternative to the prompted allowlist: sandboxed commands hitting non-allowlisted hosts are silently blocked instead of prompting.