Claude Code v2.1.50 — 作業ツリー分離の宣言化と、長時間セッションのメモリリーク修正
Claude Code v2.1.50はagent側でisolation: worktreeを宣言できるようになり、WorktreeCreate / WorktreeRemovehookを追加。長時間セッションのメモリリーク修正を多数含む版です。
このリリースで何ができるようになるか
Claude Code v2.1.50は、agent worktree分離を宣言的に書ける形に整え、長時間セッションのメモリリークを束で潰した版です。
- agent定義側で
isolation: worktreeを宣言可能に(分離実行がYAMLに落とし込め、呼び出し側の設定漏れで本流ブランチを汚すリスクが下がる) WorktreeCreate/WorktreeRemovehookを追加(worktree生成 / 破棄に合わせたVCSセットアップ・後処理を書ける)- 長時間セッションのメモリリークを複数経路で修正(TaskOutput残留、CircularBuffer未解放、shell実行のChildProcess、LSP diagnostic、Agent Teamsのteammate状態、ファイル履歴の無制限蓄積など)
直前のv2.1.49で--worktreeフラグとサブエージェントのisolationが入った流れの続編にあたる版です。49でworktree統合の入り口が開き、50でその運用面(宣言、hook、リーク修正)が一気に整います。
あなたの開発フローはどう変わるか
worktree分離をYAMLに寄せたいケース
agent定義のYAMLに直接isolation: worktreeを書けるようになりました。
name: reviewer
isolation: worktree
# ...特定のagentは必ずworktree分離で走る、という契約が定義ファイル側に寄せられます。コードレビュー系や破壊的な一括リファクタ系のagentに相性が良く、呼び出し側でフラグを忘れて本流ブランチを汚すリスクが下がります。
worktreeに合わせて環境セットアップが必要なケース
agent worktreeが作成・破棄される瞬間にフックを差し込めるようになりました。想定用途は以下のようなものです。
WorktreeCreateで.envを新worktreeへコピー、npm ciで依存をインストールWorktreeRemoveで一時ブランチをpushしてからクリーンアップ- 社内独自VCSポリシー(git-secrets再適用、hookのインストール)をworktree単位で再敷設
isolation: worktreeと組み合わせると、「agent実行を本流から完全に切り離し、終わったら何事もなかったように戻す」運用が呼び出し側の規律に頼らずに書けます。
日をまたぐ長時間セッション・IDE常駐運用
長時間セッションでメモリが少しずつ膨らんでいく問題が、本版で複数経路潰されます。具体的には、TaskOutputの残留行、CircularBufferの未解放スロット、shell実行のChildProcess / AbortController参照、LSP diagnosticの配信後未解放、ファイル履歴snapshotの無制限蓄積、Agent Teamsのteammateタスク完了後の状態残留が片付きます。再現も報告もしにくい類の不具合のため、デイリー運用ほど体感差が出やすいリリースです。
CLAUDE_CODE_SIMPLEで問題切り分けをしたいケース
Simple modeの「読み込みを省略する範囲」が大幅に拡張されました。
| 読み込み対象 | 本版以前 | 本版 |
|---|---|---|
| Skills / session memory / custom agents / CLAUDE.mdのtokenカウント | 一部残っていた | 完全にstrip |
| MCP tools / attachments / hooks / CLAUDE.md読み込み | 有効 | すべて無効 |
Skillsの読み込み暴発、MCP serverの応答待ち、hookの副作用といったトラブル時に、CLAUDE_CODE_SIMPLE=1を立てれば素の状態に一気に戻せます。
Opus 4.6 fast modeで長文を扱うケース
Opus 4.6(fast mode)が1Mコンテキストウィンドウに正式対応しました。同時にCLAUDE_CODE_DISABLE_1M_CONTEXT環境変数で1Mコンテキストを強制無効化する抜け穴も用意されています。コスト上限をチームで厳しく管理する場合や、プロンプトキャッシュの振る舞いを安定させたい場合に使えます。
重いLSPサーバを使うモノレポ
LSPサーバのstartupTimeout設定が追加されました。Rust analyzer、gopls、TypeScript Language Serverといった重い言語サーバが冷えた状態から起動する初回でLSP did not respond in timeにハマっていたモノレポでは、この1項目で安定度が大きく変わります。
ヘッドレス(-p)でのCI実行
ヘッドレス起動の起動時間が、Yoga WASMとUIコンポーネントのimportを遅延させることで改善されました。CIや自動化パイプラインで大量にワンショット呼び出しをする場合に効きます。
RHEL 8等の古めのLinux環境
Linux glibc 2.30未満(RHEL 8等)でネイティブモジュールが読み込めなかった問題が解消されました。古めのエンタープライズLinuxで詰まっていた環境はこの版で起動可能になります。
主な変更点
新機能・追加
- agent定義に
isolation: worktree: YAMLでworktree分離を宣言(本流ブランチを守る) WorktreeCreate/WorktreeRemovehook event: worktree生成 / 破棄でカスタムVCSセットアップ・後処理を実行可能CLAUDE_CODE_SIMPLEのフルミニマル化: skill / memory / agents / CLAUDE.md / MCP / attachments / hooksをすべて無効化(問題切り分けに有効)claude agentsCLIコマンド: 設定済みagentを一覧表示- LSPサーバ
startupTimeout設定: 重い言語サーバの初回起動向け - Opus 4.6(fast mode)が1Mコンテキスト対応
CLAUDE_CODE_DISABLE_1M_CONTEXT環境変数: 1Mコンテキストの強制無効化- VS Code:
/extra-usageコマンド対応(エディタ内で利用状況確認)
メモリ・パフォーマンス改善
- 長時間セッションでinternal cacheがコンテキスト圧縮後に残る問題を修正(複数経路)
- ヘッドレスモード(
-p)起動でYoga WASMとUIコンポーネントのimportを遅延 - 大きいツール結果を処理後に解放
- compaction後の内部キャッシュクリア
- TaskOutputの残留行解放(メモリリーク修正)
- CircularBufferの未解放スロット解放(メモリリーク修正)
- shell実行のChildProcess / AbortController参照解放(メモリリーク修正)
- LSP diagnosticデータが配信後に解放されない問題を修正
- ファイル履歴snapshotの無制限蓄積を上限化
- 完了タスクのoutput未解放を修正
Agent Teams関連
- teammateタスク完了後にセッション状態から回収されない問題を修正
- 完了タスク状態オブジェクトがAppStateに残留する問題を修正
resume / 切断まわり
- symlinkを含む作業ディレクトリでresumeしたセッションが不可視になる問題を修正(セッションストレージパス解決の整合)
- SSH切断時のセッションデータ消失をgraceful shutdown順序の是正で修正(セッションデータをhook / analytics前にflush)
その他のバグ修正
- Linux glibc 2.30未満(RHEL 8等)でネイティブモジュールが読み込まれない問題を修正
CLAUDE_CODE_SIMPLEがskill / session memory / custom agent / CLAUDE.mdのtoken計算を完全にstripするように/mcp reconnectに存在しないserver名を渡したCLIフリーズを修正- tool search有効 + launch引数にpromptを渡した際にMCPツールが発見されない問題を修正
- プロンプトサジェストキャッシュのヒット率退行を修正
worktree宣言化とhookは何を可能にするか
agentのisolation: worktreeとworktree系2 hook eventを組み合わせると、agent実行を本流から完全に切り離して終わったら何事もなかったように戻す運用が、呼び出し側の規律に頼らずに書けるようになります。これまで必要だった「agent起動スクリプトでworktreeを切る → 実行 → 終わったら戻す」の定型シェルを、以下の構造に置き換えられます。
- agent定義:
isolation: worktree宣言 WorktreeCreatehook: 依存関係インストール、秘密情報の転写- agent本体: 通常通り実行
WorktreeRemovehook: ブランチpush or破棄、最終ログ回収
Agent Teamsや大量のSub-agentを同時並行で走らせるケースで特に意味を持ち、複数のagentが同じ作業ディレクトリを奪い合わない設計を宣言的に書けることは、multi-agent運用の負荷を下げる方向の改善と読めます。直前のv2.1.49で--worktreeフラグとisolationを入れたところに、本版でhookと宣言化、リーク修正が乗った構図です。
まとめ
- 長時間セッション運用に効く: メモリリーク修正が複数経路で効く
- Agent Teams / Sub-agent多用に効く:
isolation: worktreeとhookで運用が宣言化 - RHEL 8等の古めLinuxは更新の優先度が高い: 起動不可が解消
- Opus 4.6 fast modeで長文を扱う場合に有効: 1M対応 + 抜け穴環境変数
直前のv2.1.49と本版を合わせて取り込むと、worktree隔離を業務ワークフローに組み込みやすくなります。直後のv2.1.51ではclaude remote-controlサブコマンドや管理設定の拡張が入り、より広い運用領域へ機能が伸びていきます。更新はclaude updateで取得できます。
関連する記事
Claude Code をもっと見る →Claude Code v2.1.49 — エージェントの作業ツリー分離と、バックグラウンド制御の強化
Claude Code v2.1.47 — Windows・メモリ周り68項目を整える整備版
Claude Code v2.1.139 — 複数セッションを束ねるエージェント一覧と、目標達成まで走り続ける /goalコマンドの追加
Claude Code v2.1.133 — ワークツリーのベース選択機能と、Hooks/Bashでのeffort連携
Claude Code v2.1.132 — ターミナル全画面表示を切り替え可能に、IDE停止時の安全な終了処理
Claude Code v2.1.121 — MCPの常時ロードとプラグインprune、メモリリーク3件修正
Claude Code v2.1.119 — /config設定の永続化と、--from-prのGitLab/Bitbucket対応
Claude Code v2.1.118 — Vim Visualモードと、MCP OAuth経路の不具合をまとめて修正