Claude Code v2.1.314 — 作業ディレクトリ外への書き込みを止める設定が追加
Claude Code v2.1.314は、Write・Edit・NotebookEditが作業ディレクトリ外へ書くのを全モードで止める設定を追加し、VS Codeとデスクトップアプリにもidle compactionを広げました。
このリリースで何ができるようになるか
Claude Code v2.1.314で動きが変わる中心は、書き込み範囲の制限、idle compactionの対象拡大、Claude apps gatewayの振り分けの3点です。changelogは約120項目あり、大半は修正です。
v2.1.314で影響が大きい3つの変更
作業ディレクトリ外への書き込みを全モードで拒否
permissions.blockWritesOutsideWorkingDirectoriesが加わりました。Write、Edit、NotebookEditが対象です。idle compactionがVS Codeとデスクトップアプリにも
200K超のトークンを抱えたまま放置した会話が要約されます。
gatewayの上流をIdPグループで振り分け
groupsに挙げたグループの開発者だけが、その上流へ送られます。
あなたの開発フローはどう変わるか
使い方によって、効き方が大きく分かれます。
| 使い方 | 影響 | 何が変わるか |
|---|---|---|
bypassPermissions やauto modeでファイル編集を任せる | 影響明確な恩恵あり | 何が変わるか新しい設定で、書き込み先を作業ディレクトリに閉じ込められる |
| VS Codeやデスクトップアプリで長い会話を放置する | 影響条件次第 | 何が変わるか一定時間後に要約され、次のメッセージは要約から始まる |
| Bedrock・Vertex・Foundry・ゲートウェイ経由 | 影響条件次第 | 何が変わるか1時間のプロンプトキャッシュを使っていれば、idle compactionの対象になる |
| 組織でClaude apps gatewayを運用する | 影響条件次第 | 何が変わるか上流ごとにIdPグループで送り先を絞れる |
claude -p をCIや自動化に使う | 影響条件次第 | 何が変わるか起動失敗が終了コード0の無出力ではなく、エラー表示と終了コード1になる |
| 手元のターミナルでの通常利用 | 影響小さな改善が中心 | 何が変わるか設定変更は要らない |
書き込みを作業ディレクトリに閉じ込める
対象はファイルツールのWrite、Edit、NotebookEditの3つで、permissions.blockWritesOutsideWorkingDirectories を true にすると作業ディレクトリの外のパスを拒否します。権限モードに関係なく効きます。
設定リファレンスには、読み取り側の兄弟キー permissions.blockReadsOutsideWorkingDirectories の節があります。そこでは bypassPermissions を含む全モードで拒否すること、--add-dir や /add-dir、ユーザー設定・管理設定の additionalDirectories で足したディレクトリが作業ディレクトリに数えられることが説明されています。書き込み側の節は、このリリースの時点で設定リファレンスに載っていません。false の扱いや、リポジトリ側の設定がどう扱われるかは、読み取り側と同じと決めつけずに確かめてください。
書き方は、兄弟キーと同じ permissions オブジェクトの下に置く形になります。
{
"permissions": {
"blockWritesOutsideWorkingDirectories": true
}
}読み取り側の挙動はblockReadsOutsideWorkingDirectoriesの記事にまとめています。
idle compactionがVS Codeとデスクトップアプリへ
要約の対象は、200K超のトークンを抱えたまま放置された会話です。プロンプトキャッシュが切れていれば、次のメッセージでその要約が使われます。この仕組みが、VS Codeとデスクトップアプリ(Claude Desktop)のCodeタブにも入りました。
設定リファレンスの idleCompaction の節には、VS Code用の通知文として Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json が載っています。止めたいときは、セッションが動いているマシンの ~/.claude/settings.json に "idleCompaction": false を書きます。しきい値は CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS で変えられ、100000 より小さい値は 100000 に引き上げられます。設定の選び方はidle compactionを止める・しきい値を変える手順にあります。
対象もさらに2つ広がりました。
- テレメトリを切っているサブスクライバーでも動く
- Bedrock、Vertex、Foundry、LLMゲートウェイでは、1時間のプロンプトキャッシュが有効になったあとに動く
設定リファレンスは、idle compactionの条件に1時間のプロンプトキャッシュTTLと自動圧縮の有効化を挙げています。仕組みの出発点はv2.1.299のリリースノートです。
Claude apps gatewayの上流をグループで振り分ける
groups は、Claude apps gatewayの上流に付けられる省略可能なリストで、IdPグループを挙げます。リストに挙げたグループの開発者だけがその上流へ送られ、フェイルオーバーで別の上流へ回るときも同じです。
用途は、部門ごとに送り先のクラウドを分ける構成です。たとえばBedrockの上流には開発部門だけを回し、別の上流には全員を回す、といった分け方になります。ゲートウェイの設定リファレンスの oidc 表には groups_claim と allowed_groups があり、グループ情報はid_tokenのクレームから読まれます。上流側の groups もそのグループ情報を前提にする機能と読めますが、リファレンスの上流の節には、このリリースの時点でまだ groups の行がありません。
Bedrock上流には、もう1つ guardrail_trace が加わりました。リクエストでどのAmazon Bedrockガードレールのフィルターが働いたかをログに残し、一致した本文は残しません。ガードレールそのものの設定はassume_roleとguardrailの設定記事にあります。
前後のバージョンとの位置関係
| バージョン | 中心になった変更 | 変更の方向 |
|---|---|---|
| v2.1.311 | 中心になった変更ultrathinkがxhighで動き、200K超でも圧縮して続行 | 変更の方向長い作業を途切れさせない |
| v2.1.312 | 中心になった変更巨大なCLAUDE.mdの保護、hooksの同時実行上限 | 変更の方向暴走しやすい入力に上限を付ける |
| v2.1.314 | 中心になった変更書き込み先の制限、idle compactionの対象拡大、gatewayのグループ振り分け | 変更の方向権限の外枠と、管理者向けの振り分け |
直前のv2.1.312はこちらの記事、v2.1.311はこちらの記事で扱っています。
主な変更点
新機能と変更
permissions.blockWritesOutsideWorkingDirectoriesを追加(前節)- Claude apps gatewayの上流に
groupsを追加(前節) - Bedrock上流に
guardrail_traceを追加(前節) - idle compactionをVS CodeとデスクトップアプリのCodeタブに追加。テレメトリを切っているサブスクライバー、Bedrock・Vertex・Foundry・ゲートウェイにも拡大
- ファイルツールが、組織のサーバー管理設定のローカルコピーを編集する前に確認を求める。ユーザー自身の設定ファイルと同じ扱い
/ultrareviewが、gitを実行する前にワークスペースの信頼を確認する。claude ultrareviewと同じ順序- Bashツールのシェルが、継承した
whichのエイリアスや関数を消す。エクスポートされたwhichとunsetenvの関数もコマンドへ渡さない - hookの
if条件Monitor(tail *)が、BashのBash(tail *)と同じようにMonitorツールのシェルコマンドに一致する FORCE_HYPERLINK=false(no、offも)が、ハイパーリンクをオンではなくオフにする- macOSで、Claudeが走らせるコマンドの大半で
git grepがCロケールを使う。UTF-8でないファイルでmacOSの正規表現ライブラリがメモリを漏らす報告への対策 /permissionsの確認タブの名前がRecently blockedになった。読み切れない呼び出しの承認は拒否される- 自動モードがブロックした呼び出しのメッセージが、コマンド名を示す。Claudeが再試行でき、自動モードが再度確認すること、
/permissionsで見直せることも伝える - 許可プロンプトの長い理由が占める行が減る
- 要求がフラグされたとき、
ANTHROPIC_DEFAULT_OPUS_MODEL、availableModels、deniedModelsが古いOpusだけ、またはモデルなしを残す場合に、拒否で終わらず別のモデルで再試行する - Coworkのクラウドセッションの自動モードで、フックによるMCPツール呼び出しの許可は「回答なし」として数える。分類器か許可プロンプトが決める
認証・接続まわりの修正
- 組織の管理者がモデルのeffortに上限を付けた場合、「Invalid effort level」で毎ターン失敗していた。effortを下げて再試行し、どのレベルを使うかを伝える
claude -pが起動失敗で終了コード0、無出力になっていた。エラーを表示して終了コード1になる- Bedrockで画像が多いセッションと
/compactが「400 Input is too long.」で失敗していた。古い画像を取り除いて圧縮する - Microsoft Foundryでリソースに既定のSonnet、Opus、Haikuのデプロイがないと失敗していた。同じファミリーの古いモデルへ戻る
- ゲートウェイがtool searchの
tool_referenceブロックを受け付けない場合、拒否が繰り返されていた。tool searchなしで1回再送し、セッションがそれを覚える - ゲートウェイやクラウドプロバイダーがbetaヘッダーを名前で拒否すると失敗していた。そのヘッダーなしで再送する
claude-opus-4.8のようにドットで書いたモデルIDが古いモデルとして扱われ、コンテキストウィンドウや出力上限が誤っていた問題を修正- システムの証明書ストアに、前身と相互署名された更新済みルート証明書があると、
UNABLE_TO_GET_ISSUER_CERTでTLS接続が失敗していた - サインインなしでも使えるMCPサーバーが、保存済みのサインインが効かなくなったあと「needs authentication」と出ていた。サインインなしで使う
claude mcp logoutが、サインインを消せていないのに成功と報告していた(SSH越しでmacOSのキーチェーンがロック中の場合など)- 複数のセッションが同じAnthropicプロファイルのログインを共有し、資格情報のロックが埋まっているとき、サインインの更新が余計に走っていた
claude ultrareviewとclaude remote-controlがCIジョブで信頼の質問をしていた。CIが設定されていれば、信頼されていないフォルダーをすぐ拒否する- 管理設定の管理者によるTLSの信頼設定が、Claude Desktopのセッションで適用されていなかった
--plugin-dirや--plugin-urlの自分のプラグインが壊れていると、管理プラグイン設定のあるマシンでモデルの切り替えが拒否されていた- Bedrock・Vertexのモデルアップグレードの案内が、管理設定でモデルを固定していても起動のたびに戻ってきていた
- リモート管理設定だけに
forceRemoteSettingsRefreshを置くと、保存済みコピーの期限切れ後に効かなくなり、サーバーに届かないとポリシーなしで起動できた - 「Continue automatically at usage limit」が、タスクが待機の合間に自分で再開する場合(/goalのチェックイン、バックグラウンド・スケジュールタスク)に、確認なしで3回を超えて続行していた
- PreCompactフックの出力が非常に大きいと圧縮が失敗または繰り返されていた。各フックの出力は10,000文字で切る
- Claude apps gatewayのVertex上流が、Googleのトークンエンドポイントが接続を受け付けたまま応答しないと数分間止まる問題を修正
自動モード・サンドボックス・フックの修正
- 自動モードの安全チェックが判定を返さなかったとき、呼び出しをブロック扱いにして
/permissionsに並べていた問題 claude -p --resumeや--continueで入ったworktreeに、サンドボックス保護が適用されていなかった- Monitorツールが起動するシェルコマンドで、Bashに一致するフックが動いていなかった。フックはブロックや確認はできるが、承認や書き換えはできない
--setting-sourcesで除外した設定ファイルが、自動モードのルールや保存済みの許可同意の一部を供給し続けていた- 自動モード、denyルール、PreToolUseフックにブロックされた(または実行されなかった)シェルとMCPの呼び出しが、折りたたんだツールグループの中で実行されたように見えていた
sandbox.excludedCommandsの説明が「列挙したコマンドは常にサンドボックスの外で動く」となっていた。呼び出し内のすべてのコマンドがエントリに一致する必要がある、という説明になった- バックグラウンドの差分更新がリポジトリのindexロックを一瞬取り、同時に走ったgitコマンドが「Unable to create '.git/index.lock': File exists」で失敗することがあった
端末の操作性・セッション管理の修正
- 解析できなかったツール呼び出しをあきらめた後に、壊れた最後の返信とリトライのプロンプトが会話に残る問題を修正
- マークダウンの表が、ストリーミング中の入力途中の行でグリッド表示と縦並びを行き来する問題と、長い表が生のパイプ文字に戻る問題が直りました
/resumeの選択画面で、スラッシュコマンドだけを実行したセッションのタイトルにCLAUDE.mdやCLAUDE.local.mdの本文が出る問題を修正- サブエージェントのトランスクリプトを開いたまま
/btwを使うと、メインの会話から答えてしまう問題を修正 - SSHでLinuxマシンへ画像を貼っても無反応だった件は、ファイルをコピーしてそのパスを貼るよう案内が出るようになりました
- vimモードの
dw、dW、yw、yWは行末を越えて続かなくなり、wとWは空行で止まります - vimモードの
pは、文字選択の上でヤンクしたテキストが行全体かどうかを見るようになりました。awとiwが行末の改行を取る問題も修正 - エージェントパネルで、別のエージェントが開始・終了したタイミングにxとEnterが違うエージェントに作用することがある問題を修正
- Claudeの質問ダイアログに貼り付けたテキストやドラッグしたファイルが、「Other」行にフォーカスがなくても失われなくなりました
- プロンプトのフッターで行を選択している間に貼ったテキストも、失われなくなりました
- ↓キーが、?ヘルプメニュー、コマンド一覧、貼り付けヒントで隠れたフッター項目を選ぶ問題を修正
/btwのようなコマンドのパネルでEscを押しても、開いているサブエージェントは中断されなくなりました- フルスクリーンのウェルカムヘッダーが、別のモデルで動くサブエージェントやチームメイトの表示中にセッションのモデルを出す問題を修正
- 巻き戻しメニューで「Restore conversation」を選んだあと、スクロール位置によってはフルスクリーンのトランスクリプトが途中で止まる問題が直りました
- 削除したセッションが、ほぼ空のエントリとして再開リストに戻ることがまれにある問題を修正
/renameで付けた名前は、許可やプランの確認中も消えなくなりました- 最初のプロンプトが失敗した(使用上限など)あとに会話が続いても、セッションが無題のままになる問題を修正
- バックグラウンドセッションとクラウドセッションで、Ultracodeを切ったのに次の起動でオンに戻る問題を修正
- スキルやプロンプト型コマンド(
/security-reviewなど)で始まるセッションに、そのコマンドからタイトルが付く ~/.claude/skills/.trashと~/.claude/plugins/.trashが際限なく増えていた。cleanupPeriodDaysに関係なく、約1024エントリを保つ。スキルのファイル監視が、削除済みスキルを毎回確認していた問題も直った- Bashの編集差分が、gitの改行変換下にあるCRLFファイルを再保存または1行編集すると、ファイル全体を変更として列挙していた
- 長いヘッドレス・SDKターンで多数のサブエージェントを動かすとき、親セッションがターン終了までサブエージェントのツール結果を抱え込まない
- プロンプト履歴でCtrl+Rが、折りたたまれた
[Pasted text]の中身にも一致する --resumeが壊れたトランスクリプトで速くなり、/contextがMCPツール1万個以上のセッションで速くなる
VS Code・クラウドセッション・Remote Control・Claude Tag
- VS Code: MCPサーバーの「Clear authentication」が保存済みサインインを消せていないのに成功と出る問題、キュー済みメッセージのフック実行中にスピナーとStopボタンが出ない問題、セッショングループの変更が保存できなくても無通知だった問題、プランプレビューのタブでCmd+F / Ctrl+Fが検索を開かない問題を修正
- VS Code: ロシア語、ギリシャ語、ヘブライ語などの非ラテン配列で音声入力のショートカット(Ctrl+D)が動かない問題、拡張が開いた時点でチャットがないと、見逃された1回限りの保存済みスケジュールタスクが確認なしで削除される問題も修正
- VS Code:
CLAUDE_CODE_DISABLE_CFC_PROMPTが、拡張がセッションのメッセージへClaude in Chromeの指示を足すことも止めるようになった。ブラウザツールは使える - クラウドセッション: スケジュールタスクのページに、完了済みの単発タスクだけが隠れているときの「Include completed」ボタンが加わった。Anthropicのクラウドで動く実行が、claude.aiアカウントで有効なプラグインを読み込む
- クラウドセッション: Webアプリ、デスクトップ、モバイルから始めたセッションは、セットアップスクリプトがエラー終了しても開始する
- クラウドセッション: 最近使ったセルフホスト環境が新規セッションカードに出ない問題、別worktreeからpushしたコミットへブランチを動かしたあと、毎ターン未コミットの変更を報告する問題、管理設定のセルフホスト環境ダイアログが短いウィンドウで見えなくなる問題を修正
- クラウドセッション: 実行中のセッションがモードの切り替えを拒否しても、権限モードの選択がAutoのままになっていた問題を修正。GitHub Enterpriseの接続テストが、クラウドセッションと同じ接続方法も試し、2つ目が失敗すると警告する
- Remote Control: 権限モードのボタンが入力するまで誤ったモードを示していた問題、8秒を超えるモデル切り替えが「still pending」エラーになる問題を修正。
remote-controlセッションの起動が、セッションサービスの一時的な遅れで失敗していた問題は、ワーカー登録を待ち時間を延ばしながら再試行して解消した - Claude Tag: 管理設定のBundlesとChannelsタブに、Slackを接続したEnterprise組織向けにClaude Tag APIドキュメントへの閉じられるリンクが加わった
- Claude Tag:
@Claude !restart、Slackの確認DMの重複、セルフホストランナー待ちの進捗表示、Slack Connectチャンネルでの応答、管理設定の再試行、リポジトリ操作メニューの重複に関する不具合を修正 - セルフホストランナー: アイドルセッションの一時停止要求が応答前に切れると、別のランナーへ移っていた。ブランチがgitリモートにない場合のエラーも、未pushの場合を含めて直し方を示す
書き込み制限は、読み取り制限と何が揃うのか
このリリースで目を引くのは、新しいキー1つで「読み取りも書き込みも作業ディレクトリに閉じる」設定が揃った点です。以前は読み取り側の blockReadsOutsideWorkingDirectories だけがありました。
揃ったとはいえ、範囲はファイルツールに限られます。changelogが対象に挙げるのはWrite、Edit、NotebookEditの3つで、Bashのリダイレクトや tee による書き込みがこのキーで止まるかは書かれていません。読み取り側の説明でも、シェルコマンドは同じ形では拒否しないと明記されています。書き込み側も同じ構造と考えるのが自然ですが、扱いは設定リファレンスに節が加わるまで確定しません。
使い分けは次の通りです。
- 作業ディレクトリの外へファイルツールで書かせたくない: 新しいキーを入れる
- シェル経由の書き込みも抑えたい: サンドボックスと許可ルールで別に手当てする
- 例外的に外へ書かせたい: 読み取り側では
/add-dirで足したディレクトリが作業ディレクトリに数えられる。書き込み側も同じかは設定リファレンスで確かめる
自動モードや bypassPermissions で長く走らせるチームほど、全モードで効くという性質が意味を持ちます。承認プロンプトに頼れない運用で、書き込み先の外枠を決められるからです。
まとめ
確かめる価値が高いのは、自動モードやバイパスモードでエージェントを長時間走らせているチームです。新しいキーで、ファイルツールの書き込み先に外枠を付けられます。VS Codeやデスクトップアプリで長い会話を放置する人は、idle compactionで要約に切り替わることがあります。気になるなら idleCompaction で止められます。
ゲートウェイを運用する管理者は、groups による振り分けで部門別の送り先を作れます。それ以外の利用では、設定を変えずに更新しても、挙動はほぼ変わりません。
関連ガイド
このバージョン単体の位置づけや前後の版とのつながりは、Claude Codeの全体像でまとめて確認できます。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。