本文へスキップ
Claude Media
Claude Code v2.1.133 — ワークツリーのベース選択機能と、Hooks/Bashでのeffort連携

Claude Code v2.1.133 — ワークツリーのベース選択機能と、Hooks/Bashでのeffort連携

Claude Code v2.1.133はワークツリー作成のベース選択設定、HooksとBashツールでのeffortレベル取得、並列セッションの認証競合修正、Linux/WSLでのカスタムbubblewrap/socatパス指定を含む運用改善リリースです。

読了目安 約8

このリリースで何ができるようになるか

Claude Code v2.1.133は、ワークツリー管理の柔軟性とフック連携を強化した運用改善リリースです。直前のv2.1.132がターミナル統合の安定化に寄っていたのに対し、本版は自動化と並列運用の地ならしに重心が移っています。

  • ワークツリーを作るときのベースブランチを設定で選べるようになった: worktree.baseReffresh(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.128EnterWorktreeがlocal HEAD起点に変更されていましたが、本版でこの挙動が設定で制御可能になり、デフォルトはorigin/<default>に戻りました。v2.1.128から運用していたチームは挙動変化に注意が必要です。

あなたの開発フローはどう変わるか

ワークツリーを多用するチーム

worktree.baseRef設定でワークツリー作成時のベースを選択できるようになりました。--worktreeEnterWorktree、agent-isolation worktreesのすべてに適用されます。

{
  "worktree.baseRef": "head"
}
設定値branch元向いているケース
fresh(default)origin/<default>最新mainlineからクリーンなfeature branchを作る
headlocal 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.bwrapPathsandbox.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 / SDK additionalDirectories経由)で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.127origin/<default>クリーンなbranchから派生
v2.1.128〜v2.1.132local 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 + 独自sandboxsandbox.bwrapPath / sandbox.socatPathでパス指定可能
企業管理者parentSettingsBehaviorでSDK managedSettingsのpolicy mergeを制御
Remote Control利用claude.ai経由のstop/interruptが完全cancelに

直前版はv2.1.132、その前はv2.1.131です。更新はclaude updateで取得できます。

この記事を共有:XLinkedIn