TL;DR
- Subagent forking is now on by default, and non-teammate agent spawns in interactive sessions run in the background automatically. Fork subagents (
subagent_type: "fork") inherit the full conversation and prompt cache. If your workflows relied on foreground agent spawns, they will background now (more below). - Type
@in the prompt to mention another Claude session by name;SendMessagedelivers to a bare name that exactly matches one live session without asking for a ref first. Cross-session messaging is now a first-class input gesture, not just a tool the model calls on its own (more below). - Bash input redirections (
< file) are now permission-checked like their argument spellings on all platforms. If you use< filein Bash commands, expect new permission prompts where there were none before. sandbox.ripgrepis now honored only from user, managed, and--settingssettings. If you were setting this in project.claude/settings.json, it will be silently ignored.
New in 2.1.232, 2.1.231
2.1.232 (August 14, 2026)
- Subagent forking is now on by default: a
subagent_type: "fork"subagent inherits the full conversation and prompt cache, and non-teammate agent spawns in interactive sessions now run in the background by default - Type
@in the prompt to mention another Claude session by name; Claude then usesSendMessageto reach that session directly SendMessagenow delivers to a bare name that exactly matches one live session, instead of asking to confirm with a ref first- Interactive sessions on one machine now keep unique names: starting or renaming a session to a name another live session already uses gives it a
name-word-wordvariant and tells you - Added
/configrows for "Dialog expiry" and "Messages from your other sessions" (cross-session inbound accept/hold/refuse) - Added secret redaction for GitLab token families (
glrt-,gloas-,glptt-,glagent-,glimt-,glsoat-,glcbt-,glft-,glffct-) and full redaction of routableglpat-/gldt-tokens; theglabCLI config store gets the same sandbox and credential-path protection asgh - Added GitLab support to plugin marketplaces: bare
gitlab.comrepo URLs (including nested subgroups) now clone likegithub.comURLs, and clone auth-failure hints name your actual git host - Settings:
additionalMarketplacesandallowedMarketplacesare now accepted as friendlier aliases forextraKnownMarketplacesandstrictKnownMarketplaces - Enterprise policy: a url-typed
blockedMarketplacesentry for a bare repo URL keeps blocking that URL when the CLI classifies it as a git clone - Gateway: the
desktop:overlay now accepts every released Desktop setting (was 11 hand-listed keys), validated at boot against Desktop's own schema; unknown or invalid keys fail boot - Gateway: empty
managed.policies[].match.groups/admin.admin_groupsentries and malformedemail_domainvalues (empty, or containing@, whitespace, or commas) now fail at boot instead of silently matching no one or granting admin access - Fable 5 is offered as an advisor in
/advisoragain for organizations with Fable access, with usage-credits consent set up through/model fable - Fixed a PowerShell permission bypass where variable-writing parameters could silently overwrite
$PSDefaultParameterValuesand redirect later commands' file access - Fixed a Windows permission bypass where Git Bash followed Cygwin-style symlinks that path validation saw as regular files; writes through them now require permission approval
- Fixed nested git repositories inheriting trust from a parent directory; each repository now requires its own trust confirmation
- Fixed MCP connections hanging for the full 30-second connect timeout when a server fails to answer or sends a malformed reply to the protocol-version probe
- Fixed Remote Control sessions hosted by a bridge inside a cloud session inheriting that session's transcript or credentials
- Fixed Remote Control sessions started from Claude Desktop or an IDE appearing as a new claude.ai session each time the local session was resumed; they now reattach to the existing one
- Fixed Remote Control sessions appearing unreachable to newly attached clients while idle
- Fixed Remote Control bridge sessions not restoring conversation history when the session worker restarts
- Remote Control: resuming a conversation whose session was deleted from claude.ai or the app now starts a replacement instead of failing with a message about your login (regressed in v2.1.227)
- Fixed Cloud gateway
/loginexiting silently or leaving an unresponsive terminal after "Press Enter to continue" when managed settings failed to load; the reason is now shown - Fixed voice mode on native builds getting stuck on "listening..." when the voice service rejected the connection; the rejection is now shown immediately
- Fixed mTLS client certificate rotation requiring a restart; Claude Code now reloads the rotated cert and key automatically on connection errors
- Fixed malformed AWS or Vertex region values being used to build request URLs; they now fall back to the default region
- Fixed stream idle timeout errors failing the request instead of recovering on Bedrock, Vertex, and gateway deployments
- Fixed content-sized overlays containing truncated text rendering one column too wide, and start-truncated text collapsing to an ellipsis
- Fixed a stray garbled character where a long shell-command or agent-description preview was cut off mid-emoji
- Fixed a startup race that could silently unregister a plugin marketplace due to concurrent writes to
known_marketplaces.json - Fixed
/updateand/tuirefusing to restart while work that survives the relaunch was running - Fixed usage-limit guidance suggesting unavailable slash commands in SDK and remote sessions
- Fixed the consent message for interactive
--advisor fablelaunches, which told you to run/model fablein an interactive session that had just exited - Improved fullscreen streaming: long sessions stay responsive because the whole conversation is no longer re-normalized on every update
- Improved the managed settings approval dialog: shows endpoint URLs, uses clearer wording for telemetry-only changes, skips routine OpenTelemetry options, and requires approval for server-managed sandbox binary overrides (
sandbox.bwrapPath,sandbox.socatPath,sandbox.ripgrep) /feedbackand/bugnow open immediately when invoked while Claude is responding, instead of waiting for the turn to finish/plugin install plugin@marketplacenow refreshes the marketplace first, so newly published plugins install without a manual marketplace update/code-reviewat high, xhigh, and max effort now runs in a background agent like the other levels- Pasted and clipboard images are read without blocking the event loop
- Remote Control now keeps reconnecting for about 30 minutes after a network blip and no longer drops after a few blips spread across an hour
- Remote Control: resuming a conversation no longer silently takes Remote Control away from another Claude Code on the same machine that still has it; run
/remote-controlthere to move it - Updated agent panel: completed subagents hide immediately with a
/tasksfooter hint, and the "down-arrow N more" overflow indicator moved left for visibility - Remote Control: the terminal now says whether a session was taken over by another device, ended from another app, or deleted, and stops suggesting a reconnect that would undo it
- Bash input redirections (
< file) are now permission-checked like their argument spellings on all platforms - Shortened the message shown when resuming a completed background agent
- Cowork sessions no longer inline external @-imports from user-scope memory files
- Hardened the auto-generated cross-session messaging socket directory on shared
/tmp: a pre-planted symlink or another user's directory is now refused instead of used - Hardened the Linux filesystem sandbox against a protected-path bypass
- Changed
sandbox.ripgrepto be honored only from user, managed, and--settingssettings; project settings can no longer override the sandbox's ripgrep binary - Removed the startup tip suggesting you create custom subagents, and the matching nudge in the
/poweruptour
2.1.231 (August 14, 2026)
- Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack
Notes
Cross-session messaging becomes a first-class UX surface
The @-mention gesture completes an arc that started in 2.1.224. 2.1.224 added SendMessage and ListAgents as tools the model could call. 2.1.228 added inline display of sender and body instead of a collapsed line. Now 2.1.232 puts session mention into the prompt input itself, simplifies delivery (bare name match skips the ref confirmation), and enforces unique session names on a machine so ambiguity does not arise.
The new /config rows ("Dialog expiry" and "Messages from your other sessions") give you control over inbound message handling. You can accept, hold for review, or refuse messages from other sessions. If you run multi-session workflows, this is the governance layer that was missing when SendMessage first shipped.
Subagent forking default changes interactive session behavior
Two defaults flipped at once. First, subagent_type: "fork" is now on by default, so fork subagents inherit the full conversation and prompt cache from the parent session. Second, non-teammate agent spawns in interactive sessions now run in the background by default, where previously they ran in the foreground. The combined effect: agent-heavy interactive workflows will feel different because spawned agents no longer block the conversation. If you need foreground behavior, set run_in_background: false explicitly on the agent call.
This follows the workflow-scaling arc from 2.1.217 through 2.1.229. 2.1.217 added the concurrency cap. 2.1.219 re-enabled depth-3 nesting and added the medium-size guideline. 2.1.229 introduced prefix staggering. Now 2.1.232 makes forking and backgrounding the default posture. The direction is clear: Anthropic wants multi-agent orchestration to be the normal mode, not an opt-in.