Claude Code 2.1.133
A new `worktree.baseRef` setting (`fresh` | `head`) lets you choose whether worktrees branch from `origin/<default>` or local `HEAD`, and hooks and Bash commands can now read the active effort level via `$CLAUDE_EFFORT`. Plus fixes for a refresh-token race that dead-ended parallel sessions at 401, MCP OAuth ignoring `HTTP(S)_PROXY`/mTLS across discovery and token refresh, and subagents failing to discover project, user, or plugin skills.
This article is a summary based on official documentation.
What changed
Claude Code 2.1.133 shipped on May 7, 2026. It adds an explicit worktree.baseRef setting and exposes the active effort level to hooks and Bash, alongside a round of operationally meaningful fixes — a refresh-token race that wiped shared credentials and dead-ended parallel sessions at 401, MCP OAuth not honoring HTTP(S)_PROXY/NO_PROXY/mTLS across the full flow, and subagents failing to discover project, user, or plugin skills via the Skill tool.
New features
-
worktree.baseRef— choose the worktree base (fresh|head)Since 2.1.128,
--worktree,EnterWorktree, and agent-isolation worktrees branched from localHEAD, which carried unpushed commits into new worktrees but conflicted with workflows that expect a clean branch offorigin/<default>. This release introducesworktree.baseRefand resets the default tofresh(=origin/<default>). Setworktree.baseRef: "head"to keep the previous behavior of carrying unpushed commits forward. -
sandbox.bwrapPath/sandbox.socatPath— custom sandbox binary paths (Linux/WSL)Linux and WSL sandboxing relies on
bubblewrap(bwrap) andsocat. When those binaries lived outside the auto-discovery path, the sandbox failed to start. The two managed settings let admins point Claude Code at the right binaries. -
parentSettingsBehavior— admin-tier policy merge opt-in ('first-wins' | 'merge')An admin-tier key that lets admins decide whether SDK
managedSettings(the parent tier) joins the policy merge. Set it tomergeto fold SDK-side settings into the merged policy. -
Effort level exposed to hooks and Bash
Hooks now receive the active effort via the
effort.levelJSON input field and the$CLAUDE_EFFORTenvironment variable, and Bash tool commands can read$CLAUDE_EFFORT. Useful when an automation script needs to branch on effort. -
claude --helplists--remote-control--remote-controlnow appears in--helpalongside--remote-control-session-name-prefix.
Improvements
-
Focus mode behavior
Focus mode behavior has been improved.
-
Memory: warm-spare workers released under pressure
Background warm-spare workers are now released when the process is under memory pressure, reducing memory usage in long-running sessions.
Bug fixes
Auth & sessions
- Parallel sessions all dead-ending at 401 after a refresh-token race wiped shared credentials — fixed.
- Remote Control stop/interrupt from claude.ai not fully canceling the CLI session the way local Esc does, leaving queued messages stalled after interrupting a stuck tool or prompt — fixed.
Permissions & file access
Edit/Writeallow rules scoped to a drive root (C:\) or POSIX/matching incorrectly and always prompting — fixed.- Read/Write/Edit denied on mapped network drives passed via
--add-dir/ SDKadditionalDirectories— fixed.
MCP & proxies
HTTP(S)_PROXY/NO_PROXY/ mTLS not respected across the full MCP OAuth flow — discovery, dynamic client registration, token exchange, and token refresh — fixed.
Effort & skills
/effortin one session unexpectedly changing the effort level of other concurrent sessions, plus a related issue where an IDE effort change could be silently dropped — fixed.- Subagents not discovering project, user, or plugin skills via the Skill tool — fixed.
Stability
- Unhandled rejection (
ECOMPROMISED) when a history or session-log file lock is compromised by clock skew or slow disk — fixed. - Pressing Esc during conversation compaction showing a spurious “Error compacting conversation” notification — fixed.
IDE
- [VSCode]
claudeCode.claudeProcessWrapperfailing with “Unsupported platform” when the extension build doesn’t bundle a Claude binary — fixed.
Notes
worktree.baseRefdefault reverts tofresh— the localHEADbase introduced in 2.1.128 is now opt-in. If you relied on unpushed commits being carried into new worktrees, setworktree.baseRef: "head"explicitly.- MCP OAuth honors proxy and mTLS settings — TLS proxies (Zscaler, Netskope, etc.) and corporate mTLS configurations are now respected through the entire MCP OAuth flow. No env var change needed.
/effortis now session-scoped —/effortonly affects the session that ran it. Setups that vary effort per session work as intended again.- Subagent skill discovery restored — if subagents had stopped finding project or plugin skills via the Skill tool, this release fixes it.
$CLAUDE_EFFORT— hooks and Bash commands can read the active effort level. Useful for automation scripts that branch on high/medium/low.- Sandbox binary paths — on Linux/WSL, point
sandbox.bwrapPathandsandbox.socatPathat custom locations ifbwraporsocataren’t on the auto-discovery path.