What changed
Claude Code 2.1.172 shipped on June 10, 2026. Sub-agent nesting opens up to 5 levels, Bedrock region resolution now matches AWS SDK conventions, and a cluster of regressions around model selection (availableModels, the /model picker, opusplan) and permission wildcard rules gets cleaned up, alongside performance work for long conversations and idle CPU.
New features
-
Sub-agents can spawn their own sub-agents (up to 5 levels deep)
Sub-agents could not delegate their own sub-tasks, so complex task decomposition had to be orchestrated entirely by the main agent. Sub-agents can now spawn their own sub-agents, up to 5 levels deep.
-
Bedrock reads the AWS region from
~/.awsconfig filesWithout the
AWS_REGIONenvironment variable, Bedrock had no region — configuration that worked with the AWS CLI and SDKs did not carry over. Amazon Bedrock now reads the AWS region from~/.awsconfig files whenAWS_REGIONisn’t set, matching AWS SDK precedence, and/statusshows where the region came from. -
Search bar when browsing a marketplace’s plugins in
/pluginLong marketplace plugin lists meant scrolling to find anything. A search bar now filters the list while browsing.
-
modelattribute on theclaude_code.lines_of_code.countOTEL metricThe lines-of-code metric could not be broken down by which model produced the work. The new
modelattribute makes per-model aggregation possible.
Key improvements
-
Long-conversation performance
Redundant message normalization and full message-history transforms accumulated as conversations grew. Redundant normalization was removed, and full history transforms are skipped when streaming tool-use state is unchanged.
-
Reduced idle CPU usage
The
/goalstatus chip re-rendered the terminal at 5 Hz while idle, and UI re-renders were frequent while subagents ran in parallel. Both paths now re-render less. -
Claude in Chrome batched tool loading
Browser tools loaded one call per tool. They now load in a single batched call.
-
Improved non-interactive Usage Policy refusal message
A Usage Policy refusal in non-interactive runs gave little guidance. The message now suggests starting a new session or changing your model.
-
/code-reviewkeeps theultraoption visibleThe
ultraoption was hidden when not signed in to claude.ai, so the feature was undiscoverable. It now stays visible with an explanation that the cloud review requires a claude.ai account. -
Shorter Remote Control footer indicator
The footer indicator is shortened to “/rc active” and hidden on narrow terminals.
Bug fixes
Sessions & context
- Sessions using 1M context without usage credits getting permanently stuck — the session now automatically compacts back under the standard context limit.
- Repeating “an image in the conversation could not be processed and was removed” error when the conversation contained multiple images — fixed.
- Agents view keeping a session under Working with a busy spinner for up to 30 seconds after the worker replied — fixed.
Background agents
- Background agents potentially reading another directory’s project settings (
.mcp.jsonapprovals, trust) when dispatched onto a pre-warmed worker — fixed. - Background-session attach failing with EAUTH for sessions started on an older version after the daemon auto-updated — fixed.
- A background sub-agent staying stuck as “active” in the agent panel after a nested agent it spawned was stopped — fixed.
Model selection
availableModelsrestrictions not being applied to subagent model overrides, the agent dispatch model picker, and the advisor model — fixed.availableModelsallowlists hiding the/modelpicker’s Opus and Sonnet 1M rows when entries use version-specific IDs likeclaude-opus-4-8— fixed.- The
/modelpicker on Bedrock offering models the provider doesn’t serve — selecting one silently switched the session model and lit the selection marker on multiple rows. Fixed. - Model IDs getting a doubled 1M-context suffix (e.g.
[1M][1m]) whenANTHROPIC_DEFAULT_OPUS_MODELalready includes one — fixed. opusplanmodel setting not shipping with 1M context in plan mode for entitled users — fixed; theopusplan[1m]workaround now also correctly switches to Opus in plan mode./modelsuggestions in theclaude agentsdispatch input rendering with a misleading slash prefix and showing models disabled for your org — fixed.
Permissions & memory
WebFetch(domain:*.example.com)wildcard domain rules never matching subdomains in allow, deny, and ask position — fixed, along with file permission rules with mid-pattern wildcards (e.g.Read(secrets-*/config.json)) being rejected at startup.- Up-arrow prompt history showing the main agent’s prompts while a subagent’s chat tab is open — fixed.
- Memory recall not finding mounted team memory stores (
CLAUDE_MEMORY_STORES) in remote sessions — fixed. - Workflow validation rejecting scripts whose prompt strings or comments merely mention
Date.now()/Math.random()— fixed.
Terminal & platform
- Mouse tracking disabled on Windows consoles that don’t fully support it.
- The
/pluginmarketplace list losing its cursor after backing out of a long plugin list, and Esc from the plugin browser returning to the wrong tab — fixed. - [VS Code] PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog — fixed, and ANSI escape codes are stripped from displayed shell output.
Notes
- 2.1.170 was the Fable 5 access release; 2.1.171 was not published — 2.1.170 contained only the Claude Fable 5 access note and a fix for sessions not saving transcripts when launched from the VS Code integrated terminal, so it is not covered as a standalone post; Fable 5 itself is covered separately. 2.1.171 was never published to GitHub Releases.
- Sub-agent nesting is capped at 5 levels — sub-agents can spawn sub-agents, but depth is limited to 5.
- Check Bedrock region with
/status— when the region comes from~/.awsconfig instead ofAWS_REGION,/statusshows where it came from. - Orgs restricting models via
availableModelsshould re-verify behavior — restrictions now actually apply to subagent overrides, the dispatch picker, and the advisor model. Paths that previously bypassed the restriction will behave differently after upgrading. - Audit
WebFetchwildcard domain rules —domain:*.example.compatterns now actually match subdomains. Allow rules that silently never applied (causing repeated prompts) start working after the upgrade — and so do deny rules.