Claude Code v2.1.232: Subagent Forking On by Default, @-Mentions for Other Sessions, and GitLab Support
Claude Code v2.1.232 turns on subagent forking by default, lets you @-mention other Claude sessions, adds GitLab marketplace support and token redaction, and fixes PowerShell and Git Bash permission bypasses.
Claude Code v2.1.232 is a broad release with 49 changelog entries. Subagent forking is now on by default, you can @-mention other Claude sessions to message them, and GitLab gains plugin marketplace support and secret redaction. The release also tightens gateway configuration checks, brings Fable 5 back to /advisor for organizations with Fable access, and fixes several permission bypasses alongside many Remote Control issues.
What’s New
Subagent Forking Is On by Default
Subagent forking is now on by default: a subagent_type: "fork" subagent inherits the full conversation and prompt cache. Non-teammate agent spawns in interactive sessions now also run in the background by default.
@-Mention Your Other Sessions
Type @ in the prompt to mention another Claude session by name; Claude then uses SendMessage to reach that session directly. SendMessage now delivers to a bare name that exactly matches one live session, instead of first asking you to confirm with a ref. 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-word variant and tells you. /config also gains rows for “Dialog expiry” and “Messages from your other sessions” (cross-session inbound accept/hold/refuse).
GitLab Support
Plugin marketplaces now support GitLab: bare gitlab.com repo URLs (including nested subgroups) clone like github.com URLs, and clone auth-failure hints name your actual git host. Secret redaction now covers GitLab token families (glrt-, gloas-, glptt-, glagent-, glimt-, glsoat-, glcbt-, glft-, glffct-) with full redaction of routable glpat-/gldt- tokens, and the glab CLI config store gets the same sandbox and credential-path protection as gh.
Friendlier Marketplace Setting Names
additionalMarketplaces and allowedMarketplaces are now accepted as friendlier aliases for extraKnownMarketplaces and strictKnownMarketplaces. For enterprise policy, a url-typed blockedMarketplaces entry for a bare repo URL keeps blocking that URL when the CLI classifies it as a git clone.
Stricter Gateway Configuration Checks
The gateway’s desktop: overlay now accepts every released Desktop setting (previously 11 hand-listed keys), validated at boot against Desktop’s own schema; unknown or invalid keys fail boot. Empty managed.policies[].match.groups/admin.admin_groups entries and malformed email_domain values (empty, or containing @, whitespace, or commas) now also fail at boot instead of silently matching no one or granting admin access.
Fable 5 Returns to /advisor
Fable 5 is offered as an advisor in /advisor again for organizations with Fable access, with usage-credits consent set up through /model fable. The consent message for interactive --advisor fable launches, which told you to run /model fable in an interactive session that had just exited, has also been fixed.
Fixes and Improvements
Security and permissions
- A PowerShell permission bypass, where variable-writing parameters could silently overwrite
$PSDefaultParameterValuesand redirect later commands’ file access, is fixed. - A Windows permission bypass, where Git Bash followed Cygwin-style symlinks that path validation saw as regular files, is fixed; writes through them now require permission approval.
- Nested git repositories no longer inherit trust from a parent directory; each repository now requires its own trust confirmation.
- Bash input redirections (
< file) are now permission-checked like their argument spellings on all platforms. - The Linux filesystem sandbox is hardened against a protected-path bypass, and the auto-generated cross-session messaging socket directory on shared
/tmpnow refuses a pre-planted symlink or another user’s directory instead of using it. sandbox.ripgrepis now honored only from user, managed, and--settingssettings; project settings can no longer override the sandbox’s ripgrep binary.
Remote Control
- 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.
- Sessions started from Claude Desktop or an IDE now reattach to the existing claude.ai session when the local session is resumed, instead of appearing as a new one each time.
- Sessions hosted by a bridge inside a cloud session no longer inherit that session’s transcript or credentials.
- 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 (a regression in v2.1.227).
Connectivity and providers
- MCP connections no longer hang for the full 30-second connect timeout when a server fails to answer or sends a malformed reply to the protocol-version probe.
- Stream idle timeout errors now recover instead of failing the request on Bedrock, Vertex, and gateway deployments.
- mTLS client certificate rotation no longer requires a restart; Claude Code now reloads the rotated cert and key automatically on connection errors.
Commands and plugins
/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./feedbackand/bugnow open immediately when invoked while Claude is responding, instead of waiting for the turn to finish.
Managed settings
- The managed settings approval dialog now 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).
Performance and voice
- Fullscreen streaming keeps long sessions responsive because the whole conversation is no longer re-normalized on every update, and pasted and clipboard images are read without blocking the event loop.
- Voice mode on native builds no longer gets stuck on “listening…” when the voice service rejects the connection; the rejection is now shown immediately.
This release contains 49 changes in total; see the Claude Code changelog for the complete list.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - Note two behavior changes: non-teammate agent spawns in interactive sessions now run in the background by default, and nested git repositories now require their own trust confirmation.