Claude Code v2.1.314 の主要アップデート - 作業ディレクトリ外の書き込み拒否とサンドボックス・フックの適用漏れ修正

Claude Code v2.1.314 の主要アップデート - 作業ディレクトリ外の書き込み拒否とサンドボックス・フックの適用漏れ修正

Claude Code v2.1.314がリリースされました。今回は119件の変更が入り、特に権限とサンドボックスまわりの改善が目立ちます。作業ディレクトリ外への書き込み拒否設定の追加やセキュリティ関連の修正など、注目のアップデートを紹介します。
2026.10.30

クラウド事業統括本部の石川です。Claude Code の v2.1.314(2026-10-30 公開)がリリースされました。npm には 2.1.313 が公開されておらず、v2.1.312 の次のバージョンです。今回は変更が多いため、権限とサンドボックスまわりを中心に紹介します。

前回のアップデート記事はこちらです。

https://dev.classmethod.jp/articles/20261028-cc-updates-v2-1-312/

アップデートサマリー

v2.1.314 では 119 件の変更が入りました。CHANGELOG の記載では、修正(Fixed)が 81 件、改善(Improved)が 16 件、変更(Changed)が 13 件、追加(Added)が 6 件、更新(Updated)が 3 件です。本記事では、このうち権限・サンドボックス・設定の適用に関わる 10 件をセキュリティとしてまとめ、挙動が変わる 4 件を破壊的変更として扱います。VS Code 拡張(7 件)、クラウドセッション(9 件)、Slack 向けの Claude Tag(7 件)を対象とした変更も含まれます。

注目のアップデート

作業ディレクトリ外への書き込みを拒否する設定の追加

permissions.blockWritesOutsideWorkingDirectories 設定が追加されました。有効にすると、すべての権限モードで Write・Edit・NotebookEdit が作業ディレクトリ外のパスへの書き込みを拒否します。

以下は設定例です。後述の「試してみた」では、同じ形式の JSON を --settings に渡しています。

{
  "permissions": {
    "blockWritesOutsideWorkingDirectories": true
  }
}

CI やヘッドレス実行で bypassPermissions を使う場合でも、Claude のファイル編集ツールによる書き込み先を作業ディレクトリに限定したい方に向いた設定だと感じます。

--setting-sources で除外した設定が一部効いていた問題の修正

--setting-sources で除外した設定ファイルが、auto mode のルールや保存済みの権限の同意など、一部の設定を引き続き供給していた問題が修正されました。

--setting-sources で読み込む設定を絞って実行環境を固定している方は、アップデート後に意図した設定だけが効いているかを確認しておく価値があると感じます。

サンドボックスとフックの適用漏れの修正

次の 2 件が修正されました。

  • claude -p --resume または --continue で入ったワークツリーに、サンドボックスの保護が適用されない問題
  • Bash に一致するフックが、Monitor ツールが起動したシェルコマンドに対して実行されない問題(修正後、これらのフックはそのコマンドをブロック・確認(ask)できますが、承認や書き換えはできません)

サンドボックスまたはフックを安全のための制限として使っている方にとっては、これまで制限が適用されていなかった経路でも適用されるようになる修正であり、早めのアップデートが望ましいと感じます。

VS Code と Claude Desktop にアイドル時のコンパクションを追加

VS Code と Claude Desktop の Code タブにアイドル時のコンパクション(idle compaction)が追加されました。200K トークン以上の会話が放置されると要約され、プロンプトキャッシュが失効している場合は次のメッセージでその要約が使われます。テレメトリーをオフにしているサブスクライバーでも実行され、1 時間のプロンプトキャッシュが有効なら Bedrock・Vertex・Foundry・LLM ゲートウェイでも実行されます。

VS Code や Desktop で 200K トークンを超える会話を開いたまま離れ、プロンプトキャッシュが失効した場合は、次のメッセージで要約が使われる点を把握しておくと良いと感じます。

claude -p が起動失敗時に終了コード 1 を返すよう修正

起動に失敗した claude -p が、何も出力せず終了コード 0 で終了する問題が修正されました。修正後はエラーを表示して終了コード 1 で終了します。

CI で claude -p の終了コードを見てジョブの成否を判定している場合、これまで起動失敗が成功扱いになっていた可能性があり、恩恵が大きい修正だと感じます。

アップデート内容

新機能

  • Claude apps gateway のアップストリームに groups を追加: 任意の groups リストを指定でき、リストにある IdP グループの開発者だけがそのアップストリームに送られます。フェイルオーバー時も同様です。
  • Claude apps gateway の Bedrock アップストリームに guardrail_trace を追加: どの Amazon Bedrock ガードレールのフィルターがリクエストで発動したかを、一致したテキストを含めずにログに記録します。
  • VS Code と Claude Desktop の Code タブにアイドル時のコンパクションを追加: 200K トークン以上の会話が放置されると要約され、プロンプトキャッシュが失効している場合は次のメッセージでその要約が使われます。
  • [Cloud sessions] Scheduled tasks ページに Include completed ボタンを追加: 非表示になっているのが完了済みの単発タスクだけの場合に表示され、Sort メニューを開かずに表示できます。
  • [Claude Tag] 管理設定に Claude Tag API ドキュメントへのリンクを追加: Slack を接続している Enterprise 組織向けに、Bundles・Channels タブへ閉じられるリンクが追加されました。

セキュリティ

  • permissions.blockWritesOutsideWorkingDirectories 設定を追加: すべての権限モードで Write・Edit・NotebookEdit が作業ディレクトリ外のパスへの書き込みを拒否します。
  • --setting-sources で除外した設定ファイルが一部の設定を供給していた問題を修正: auto mode のルールや保存済みの権限の同意などが対象です。
  • claude -p --resume / --continue で入ったワークツリーにサンドボックスの保護が適用されない問題を修正
  • Monitor ツールが起動したシェルコマンドに Bash 向けのフックが実行されない問題を修正: これらのフックはブロック・確認(ask)はできますが、承認や書き換えはできません。
  • forceRemoteSettingsRefresh が適用されなくなる問題を修正: リモートのマネージド設定にだけ設定している場合に、保存済みのコピーが期限切れになると適用されなくなり、サーバーに到達できないときにポリシーなしでセッションが開始できていました。
  • CI ジョブでワークスペースの信頼確認を尋ねる問題を修正: ターミナルのある CI ジョブで claude ultrareview と claude remote-control が信頼確認を尋ねていました。CI が設定されている場合、信頼されていないフォルダーをすぐに拒否します。
  • マネージド設定の TLS 信頼設定が Claude Desktop のセッションに適用されない問題を修正
  • サーバー管理設定のローカルコピーの編集前に確認を求めるよう変更: 設定ファイルと同様に、Claude のファイルツールが組織のサーバー管理設定のローカルコピーを編集する前に確認を求めます。
  • /ultrareview が git の実行前にワークスペースの信頼を確認するよう変更: claude ultrareview と同じ動作です。
  • /permissions の Recently blocked で全体を読めない呼び出しの承認を拒否するよう変更: 端末の高さが足りず表示しきれない呼び出しも対象です。

改善

  • 多数のサブエージェントを実行するヘッドレス・SDK のターンでメモリ使用量を改善: 親セッションが各サブエージェントのツール結果をターンの終了まで保持しなくなりました。
  • auto mode でブロックされた呼び出しのメッセージを改善: コマンド名を示し、Claude が再試行すると auto mode が再びチェックすることを伝え、確認先として /permissions を案内します。
  • フックの if 条件が Monitor ツールのシェルコマンドに一致するよう変更: Monitor(tail *) のような指定が、Bash(tail *) が Bash に一致するのと同様に一致します。
  • 古い Opus モデルしか残らない場合に別のモデルで再試行するよう変更: ANTHROPIC_DEFAULT_OPUS_MODEL・availableModels・deniedModels によって古い Opus モデルしか残らない、または 1 つも残らない場合に、フラグが立ったリクエストが拒否で終わらず別のモデルで再試行されます。
  • アイドル時のコンパクションの対象を拡大: テレメトリーをオフにしているサブスクライバーでも実行され、1 時間のプロンプトキャッシュが有効なら Bedrock・Vertex・Foundry・LLM ゲートウェイでも実行されます。
  • [Cloud sessions] スケジュールタスクがアカウントのプラグインを読み込むよう改善: Anthropic のクラウドで実行するスケジュールタスクが、claude.ai アカウントで有効にしたプラグインを読み込みます。
  • このほか、Ctrl+R でのプロンプト履歴検索、/permissions の Recently blocked タブ、セッションの自動タイトル、--resume と /context の速度、同梱スキル(/claude-api・dataviz)の更新など、細かな改善が入っています。

修正

  • claude -p が起動失敗時に終了コード 0 で終了する問題を修正: エラーを表示して終了コード 1 で終了します。
  • effort の上限設定下で "Invalid effort level" が続く問題を修正: 組織の管理者がモデルの effort に上限を設けている場合に、セッションが毎ターン失敗していました。effort を下げて再試行し、使用するレベルを表示します。
  • 画像の多い Bedrock セッションで "400 Input is too long." になる問題を修正: 毎ターンと /compact が失敗していました。古い画像を除去してコンパクションします。
  • Microsoft Foundry で既定モデルのデプロイメントが無い場合の失敗を修正: 既定の Sonnet・Opus・Haiku モデルのデプロイメントが無い場合に、同じファミリーの古いモデルにフォールバックします。
  • LLM ゲートウェイ配下でドットを含むモデル ID を古いモデルとして扱う問題を修正: claude-opus-4.8 のような ID で、コンテキストウィンドウ・出力上限・effort・thinking モード・コストが誤っていました。
  • PreCompact フックの大きな出力でコンパクションが失敗する問題を修正: 失敗や繰り返しが起きていました。各フックの出力は 10,000 文字で切り詰められます。
  • バックグラウンドの差分更新による .git/index.lock の競合を修正: 同時に実行した git コマンドが "Unable to create '.git/index.lock': File exists" で失敗することがありました。
  • "Continue automatically at usage limit" が 3 回を超えて続行する問題を修正: 待機の合間にタスクが自ら再開した場合(/goal のチェックイン、バックグラウンドタスク、スケジュールされたタスク)に、ユーザーのプロンプトなしで続行していました。
  • 地味に嬉しい修正: ~/.claude/skills/.trash と ~/.claude/plugins/.trash が際限なく大きくなる問題が修正され、cleanupPeriodDays の値にかかわらず、それぞれ約 1024 エントリまで保持するようになりました。スキルやプラグインを頻繁に入れ替える方には、.trash のエントリが際限なく溜まらなくなるのは地味に嬉しい修正だと感じます。
  • このほか、ゲートウェイやクラウドプロバイダー経由のリクエスト(ベータヘッダー・ツール検索)、TLS 証明書、MCP のサインイン、vim モード、VS Code 拡張、クラウドセッション、Claude Tag など、多数の細かな不具合が修正されています。

破壊的変更・非推奨

本記事では、挙動が変わる次の 4 件を破壊的変更として扱います。このバージョンで新たに非推奨となった項目はありません。

FORCE_HYPERLINK=false でハイパーリンクがオフになる

FORCE_HYPERLINK=false(no・off も同様)で、ハイパーリンクがオンではなくオフになるよう変更されました。以下は指定例です。

変更前(〜v2.1.312):

# ハイパーリンクはオンになる
FORCE_HYPERLINK=false claude

変更後(v2.1.314〜):

# ハイパーリンクはオフになる(no・off も同様)
FORCE_HYPERLINK=false claude

Cowork のクラウドセッションでフックの allow が「回答なし」扱いになる

Cowork のクラウドセッションの auto mode で、MCP ツール呼び出しに対するフックの allow を「回答なし」として扱い、classifier または権限確認のプロンプトが判断するよう変更されました。以下は挙動の例です。変更前の挙動は、CHANGELOG の「now counts as no answer」という記述からの推測です。

変更前(〜v2.1.312、推測):

Cowork のクラウドセッション(auto mode)
MCP ツール呼び出し → フックが allow → allow が判断として扱われる

変更後(v2.1.314〜):

Cowork のクラウドセッション(auto mode)
MCP ツール呼び出し → フックが allow → 回答なしとして扱われる
→ classifier または権限確認のプロンプトが判断

Bash ツールのシェルで継承した which をクリアする

Bash ツールのシェルで、継承した which のエイリアスや関数をクリアし、エクスポートされた which/unsetenv 関数をコマンドに渡さないよう変更されました。which はシステムのコマンドまたは zsh の組み込みコマンドになります。以下は例です。変更前の挙動は、CHANGELOG の「clear any inherited which alias or function」という記述からの推測です。

変更前(〜v2.1.312、推測):

# 継承した which のエイリアスや関数が Bash ツールのシェルに残る
which <コマンド名>

変更後(v2.1.314〜):

# 継承した which のエイリアス・関数はクリアされ、
# システムの which コマンドまたは zsh の組み込みコマンドが使われる
which <コマンド名>

セットアップスクリプトが失敗してもクラウドセッションが開始する

Web・デスクトップ・モバイルアプリから開始するクラウドセッションが、セットアップスクリプトがエラーで終了しても開始に失敗せず開始するよう変更されました。以下は挙動の例です。

変更前(〜v2.1.312):

クラウドセッションの開始(Web・デスクトップ・モバイルアプリ)
セットアップスクリプトがエラーで終了 → セッションの開始に失敗

変更後(v2.1.314〜):

クラウドセッションの開始(Web・デスクトップ・モバイルアプリ)
セットアップスクリプトがエラーで終了 → セッションは開始する

作業ディレクトリ外の書き込み拒否を試してみた

作業ディレクトリとは

作業ディレクトリ(working directories)は、Claude Code がファイルを扱ってよい範囲として扱うディレクトリです。公式ドキュメントでは、Claude Code を起動したディレクトリに、追加したディレクトリを加えたものとして説明されています。

種類 指定方法
主な作業ディレクトリ Claude Code を起動したディレクトリ。セッション中に /cd <path> で移せる
追加ディレクトリ(起動時) --add-dir <path>
追加ディレクトリ(セッション中) /add-dir コマンド
追加ディレクトリ(設定ファイル) permissions.additionalDirectories

permissions.blockWritesOutsideWorkingDirectories を有効にすると、これらのいずれにも含まれないパスへの Write・Edit・NotebookEdit の書き込みが拒否されます。

なお、読み取り側の permissions.blockReadsOutsideWorkingDirectories については、リポジトリの設定(.claude/settings.json など)だけで追加したディレクトリは作業ディレクトリに数えません。

検証の方法

permissions.blockWritesOutsideWorkingDirectories を有効にしたときに、bypassPermissions モードでも作業ディレクトリ外への Write が拒否されるかを、設定の有無で比較しました。

以降のコマンドでは、検証用ディレクトリの絶対パスをシェル変数 V に入れて使います。今回の検証では、Claude Code のセッション用の一時ディレクトリの下に作ったディレクトリを使いました。試す場合は、次の例のように空のディレクトリを作り、そのパスを V に入れてから実行してください。V が空のままだと、$V/work は /work として扱われます。

# 例: 検証用の空ディレクトリを作成し、そのパスを V に入れる
% V="$(mktemp -d)"

検証の条件は次のとおりです。

  • $V/work を作業ディレクトリとして claude -p を実行し、隣の $V/outside にファイルを作成するよう指示する(ディレクトリは追加していないため、作業ディレクトリは $V/work だけ)
  • --tools Write で使えるツールを Write だけにし、--strict-mcp-config で MCP サーバーを読み込まない
  • --permission-mode bypassPermissions で権限確認を省略するモードにする

設定あり

% mkdir -p $V/work $V/outside
% cd $V/work

% claude -p --max-turns 1 --tools Write --strict-mcp-config \
  --permission-mode bypassPermissions \
  --settings '{"permissions":{"blockWritesOutsideWorkingDirectories":true}}' \
  --output-format stream-json --verbose \
  "Write ツールで $V/outside/on.txt を作成し、内容を hello にしてください" | jq -r 'select(.type == "system" and .subtype == "permission_denied") | {type, subtype, tool_name, tool_use_id, decision_reason_type, decision_reason}'
{
  "type": "system",
  "subtype": "permission_denied",
  "tool_name": "Write",
  "tool_use_id": "toolu_01UM1dXiXLpiotsBuC75vewv",
  "decision_reason_type": "other",
  "decision_reason": "Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories). Add the directory with /add-dir, or remove that setting."
}

stream-json の出力のうち、権限の拒否を示す行の先頭部分です。Write は実行されないことが確認できました。

設定なし

% claude -p --max-turns 1 --tools Write --strict-mcp-config \
  --permission-mode bypassPermissions \
  --output-format stream-json --verbose \
  "Write ツールで $V/outside/off.txt を作成し、内容を hello にしてください"

こちらは Write が成功し、ツール結果は File created successfully at: で始まる内容でした。2 回の実行後に $V/outside の中身を確認しました。

% ls -1 $V/outside
off.txt

設定ありの on.txt は作成されず、設定なしの off.txt だけが作成されました。どちらも終了コードは 1 でしたが、これは --max-turns 1 の上限に達したためです(結果の terminal_reason が max_turns)。Edit・NotebookEdit とシェルコマンド経由の書き込みは今回確認していません。

bypassPermissions で動かす場合でも、作業ディレクトリ外をファイル編集ツールで書き換えさせないことを確認しています。これはかなり心強いです。

最後に

作業ディレクトリ外への書き込みを拒否する設定の追加と、サンドボックス・フック・設定ソース除外の不整合の修正が入り、Claude Code に任せる範囲を意図どおりに制御しやすくなったバージョンだと感じます。

権限の制限を設定で管理している方や、CI・自動化で Claude Code を動かしている方は、アップデートして試してみてはいかがでしょうか。

参考文献

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://code.claude.com/docs/en/permissions

https://code.claude.com/docs/en/settings-reference

https://dev.classmethod.jp/articles/20261028-cc-updates-v2-1-312/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AI白書

関連記事