Claude Code v2.1.133 — ワークツリーのベース選択機能と、Hooks/Bashでのeffort連携
Claude Code v2.1.133はワークツリー作成のベース選択設定、HooksとBashツールでのeffortレベル取得、並列セッションの認証競合修正、Linux/WSLでのカスタムbubblewrap/socatパス指定を含む運用改善リリースです。
このリリースで何ができるようになるか
Claude Code v2.1.133は、ワークツリー管理の柔軟性とフック連携を強化した運用改善リリースです。直前のv2.1.132がターミナル統合の安定化に寄っていたのに対し、本版は自動化と並列運用の地ならしに重心が移っています。
- ワークツリーを作るときのベースブランチを設定で選べるようになった:
worktree.baseRefにfresh(origin/<default>起点)かhead(local HEAD起点)を指定でき、チームのbranching戦略に合わせて切り替え可能 - HooksとBashツールが現在のeffortレベルを参照できるようになった:
$CLAUDE_EFFORT環境変数とJSONフィールドeffort.levelが追加され、外部スクリプトをeffort-awareに分岐できる - 並列セッションが
refresh-token raceで全部401エラーに落ちる不具合が修正された: 同一アカウントで複数のClaude Codeセッションを並行運用するとき、token refreshの競合で共有credentialsが上書きされ全停止する問題が解消
v2.1.128でEnterWorktreeがlocal HEAD起点に変更されていましたが、本版でこの挙動が設定で制御可能になり、デフォルトはorigin/<default>に戻りました。v2.1.128から運用していたチームは挙動変化に注意が必要です。
あなたの開発フローはどう変わるか
ワークツリーを多用するチーム
worktree.baseRef設定でワークツリー作成時のベースを選択できるようになりました。--worktree、EnterWorktree、agent-isolation worktreesのすべてに適用されます。
{
"worktree.baseRef": "head"
}| 設定値 | branch元 | 向いているケース |
|---|---|---|
fresh(default) | origin/<default> | 最新mainlineからクリーンなfeature branchを作る |
head | local HEAD | 未pushのcommitを継続して使いたい |
v2.1.128から本版直前まではEnterWorktreeが暗黙的にlocal HEADベースだったため、unpushed commitsが自動で引き継がれる挙動でした。本版でデフォルトがorigin/<default>に戻ったため、v2.1.128以降の挙動を維持したいチームはworktree.baseRef: "head"を明示設定する必要があります。
Hooks / Bashでeffort-awareな処理を組みたいチーム
HooksとBashツールが現在のeffortレベルを取得できるようになりました。Hookにはeffort.levelフィールドがJSON入力で渡され、Bashコマンドからは環境変数$CLAUDE_EFFORTで参照できます。
#!/bin/bash
# Hook例: effortに応じて検証の重さを切り替える
case "$CLAUDE_EFFORT" in
high) npm run test:full ;;
medium) npm run test:unit ;;
*) npm run lint ;;
esacこれまではすべてのHookが同一の処理を走らせるしかなく、軽い思考モードでも重い検証が動くケースがありました。effortに応じて外部処理を変えられることで、/effortの選択がそのまま自動化のコスト調整につながる構造に変わります。
並列セッションを運用しているチーム
同一アカウントで複数のClaude Codeセッションを起動するとき、refresh-token raceで共有credentialsが破壊されて全セッションが401でdead-endに落ちる構造的問題が修正されました。
- 同じorganization accountを共有する開発チーム
- 1人で複数projectを並行開発するケース
- CI/CDと手作業のClaude Codeを同時運用するケース
これらのケースで「全セッション道連れ停止」が回避されるため、並列運用が現実的な選択肢になります。
Linux/WSLでカスタムsandboxバイナリを使うチーム
sandbox.bwrapPathとsandbox.socatPathの管理設定が追加され、bubblewrapとsocatの実行パスを明示できるようになりました。
{
"sandbox.bwrapPath": "/usr/local/bin/bwrap",
"sandbox.socatPath": "/opt/tools/socat"
}独自ビルドのsandboxツールを使う環境や、複数バージョンのbubblewrapを切り替えたい環境で、パス解決の摩擦が消えます。
管理者でmanagedSettingsをpolicy mergeしたい組織
新しいadmin-tier向けキーparentSettingsBehavior('first-wins' | 'merge')が追加され、SDKのmanagedSettings(parent tier)をpolicy mergeフローに含めるかどうかを管理者が選べるようになりました。SDK経由で配布した既定値を組織ポリシーとmergeしたい場合は'merge'を選択する形になります。
主な変更点
新規追加
worktree.baseRef設定 —fresh/headからワークツリーのbranch元を選択。デフォルトはfreshで、EnterWorktreeのbase起点がorigin/<default>に戻るsandbox.bwrapPath/sandbox.socatPath管理設定(Linux/WSL) — bubblewrapとsocatのカスタムバイナリパス指定parentSettingsBehavior管理キー —'first-wins'(default)または'merge'でSDKのmanagedSettingsをpolicy mergeにopt-in- Hooks / Bashツールが
effort.level(JSON)と$CLAUDE_EFFORT(env)から現在のeffortレベルを参照可能に claude --helpに--remote-controlが--remote-control-session-name-prefixと並んで表示されるように
改善
- focus modeの動作改善
- メモリ圧迫時にwarm-spareのbackground workersを解放してメモリ使用量を抑制
修正(セッション / 認証)
- 並列セッションが
refresh-token raceで共有credentialsを破壊して全部401に落ちる問題を修正 Edit/Writeのallow rulesがドライブroot(C:\)やPOSIX/を持つときに誤マッチして毎回確認プロンプトが出る問題を修正- 履歴やsession-logファイルのlockがclock skewやslow diskで破損したときの
unhandled rejection(ECOMPROMISED)を修正 - 会話compaction中にEscを押すと出る誤った"Error compacting conversation"通知を修正
/effortが他の並行セッションのeffortレベルを意図せず変更する問題、IDEからのeffort変更が無音でdropされる関連問題を修正
修正(MCP / プロキシ)
HTTP(S)_PROXY/NO_PROXY/ mTLSがMCP OAuthフロー全体(discovery、dynamic client registration、token exchange、token refresh)で尊重されない問題を修正- mapped network drives(
--add-dir/ SDKadditionalDirectories経由)でRead/Write/Editが拒否される問題を修正
修正(リモート / IDE / その他)
- claude.aiからのRemote Control stop/interruptがlocal Escと同等に完全cancelしない問題を修正(これまでは中途半端な停止でqueued messagesが進まなくなっていた)
- subagentsが
Skillツール経由でproject / user / plugin skillsを発見できない問題を修正 - [VS Code]Claude binaryをバンドルしていない拡張buildで
claudeCode.claudeProcessWrapperが"Unsupported platform"で失敗する問題を修正
v2.1.128以降のワークツリー挙動の振り戻しをどう捉えるか
本版のworktree.baseRefは、v2.1.128で行われたEnterWorktreeの挙動変更に対する設定による調整レイヤーとして位置づけられます。
時系列で並べると次の通りです。
| バージョン | EnterWorktreeのデフォルトbase | 変更の意図 |
|---|---|---|
| 〜v2.1.127 | origin/<default> | クリーンなbranchから派生 |
| v2.1.128〜v2.1.132 | local HEAD(暗黙) | unpushed commitsの継続作業を優先 |
| v2.1.133〜 | origin/<default>(再びdefault) + worktree.baseRefで選択可 | 両方の運用を設定で吸収 |
v2.1.128の変更は「作業中のbranchから派生したい」声に応えたものですが、unpushed commitsが暗黙に引き継がれる構造は、クリーンなfeature branchを作りたいチームにとっては予期せぬ挙動でした。本版はdefaultをv2.1.127以前の挙動に戻しつつ、明示設定で新しい挙動も選べるという二段構えに整理されています。
v2.1.128以降にワークツリー機能を採用したチームでは、本版に上げるとEnterWorktreeの挙動が変わるため、worktree.baseRef: "head"の明示設定を入れるか、origin/<default>起点の運用に切り替えるかの判断が必要になります。
並列セッションのrefresh-token race修正が意味すること
並列セッション401問題の修正は、Claude Codeをチームのインフラとして使うケースに直接効きます。
これまでは、同じアカウントで複数のClaude Codeプロセスが動いている状態でtoken refreshが同時に走ると、後勝ちで共有credentialsが上書きされ、refresh前のtokenを持っていた他セッションが全部401でdead-endに落ちる構造でした。これが顕在化していたのは次のようなケースです。
- 開発チームが共有のorganization accountでClaude Codeを使う
- 個人開発者が複数のprojectで同時にセッションを保持する
- CI/CDのClaude Codeとローカルの手作業セッションが並走する
本版の修正により、こうした並列運用のフロアが下がったと言えそうです。これまで「並列セッションは1つに絞る」「token切れまで他を起動しない」といった暗黙の運用ルールで回避していたチームは、本版以降は気にせず並行できる構造になります。
まとめ
本版は新機能と修正の両方が揃った実用更新です。利用形態別に更新を判断する目安をまとめます。
| 利用形態 | 本版で得られるもの |
|---|---|
| ワークツリー多用 | worktree.baseRefでの挙動制御。v2.1.128以降利用者は挙動変化に対応必要 |
| Hooks / Bash自動化 | $CLAUDE_EFFORTでeffort-awareなスクリプト分岐が可能に |
| 並列セッション運用 | refresh-token race修正で全停止リスクが解消 |
| Linux/WSL + 独自sandbox | sandbox.bwrapPath / sandbox.socatPathでパス指定可能 |
| 企業管理者 | parentSettingsBehaviorでSDK managedSettingsのpolicy mergeを制御 |
| Remote Control利用 | claude.ai経由のstop/interruptが完全cancelに |
関連する記事
Claude Code をもっと見る →Claude Code v2.1.132 — ターミナル全画面表示を切り替え可能に、IDE停止時の安全な終了処理
Claude Code v2.1.83 — managed-settings.d/ 対応と、組織ポリシー配布の柔軟化
Claude Code v2.1.76 — MCPの対話型確認と新フック、作業ツリーのスパース化
Claude Code v2.1.139 — 複数セッションを束ねるエージェント一覧と、目標達成まで走り続ける /goalコマンドの追加
Claude Code v2.1.98 — Vertex AIセットアップウィザードとLinuxサンドボックス強化
Claude Code v2.1.9 — Hookが追加文脈を返せるようになり、長時間セッションのAPIエラーも解消
Claude Code v2.1.85 — フックの条件分岐とAskUserQuestion連携、MCP OAuthがRFC9728準拠に
Claude Code v2.1.84 — PowerShellツールのプレビュー公開と40項目の地固め