0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.314の変更点まとめ:書き込み制限設定・idle compaction・挙動変更への対応

0
Posted at

はじめに

Claude Code v2.1.314 がリリースされました。今回は新機能に加えて、既存の設定の結果が変わりうる挙動変更とセキュリティ関連の修正が含まれています。

主なポイントは次の3つです。

  • permissions.blockWritesOutsideWorkingDirectories の追加(作業ディレクトリ外への書き込みを全権限モードで禁止)
  • forceRemoteSettingsRefresh・サンドボックス・--setting-sources まわりのセキュリティ修正
  • FORCE_HYPERLINK=false の意味の反転、Bash の which の扱いなどの挙動変更

📌 影響を受ける人

  • auto mode や CI で Claude Code を動かしている人
  • 組織の管理設定(managed settings)で Claude Code を配布している管理者
  • フックの if 条件、FORCE_HYPERLINK、sandbox.excludedCommands を使っている人
  • Bedrock / Vertex / Foundry / LLM gateway 経由で利用している人

変更の全体像

変更内容

1. 作業ディレクトリ外への書き込みを禁止する設定(high)

新設定 permissions.blockWritesOutsideWorkingDirectories を有効にすると、Write・Edit・NotebookEdit は作業ディレクトリ外を指すパスへの書き込みを拒否します。auto mode を含むすべての権限モードで適用されるため、書き込み範囲を明確に区切るガードレールとして使えます。

項目 内容
設定キー permissions.blockWritesOutsideWorkingDirectories
対象ツール Write / Edit / NotebookEdit
適用範囲 すべての権限モード(auto mode 含む)

2. セキュリティ関連の修正(high)

⚠️ 注意
管理設定を使っている組織では、以下の修正内容を確認してください。

# 修正内容 影響
1 forceRemoteSettingsRefresh をリモート管理設定だけで指定していると、保存済みコピーの期限切れ後に効かなくなっていた サーバーに接続できない場合、ポリシーなしでセッションが始まる可能性があった
2 claude -p --resume / --continue で入った worktree にサンドボックスが効かなかった 保護なしで動作していた
3 --setting-sources で除外した設定ファイルが、auto mode のルールや保存済み権限同意を提供し続けていた 意図しない設定が適用されていた
4 Monitor ツールが起動したシェルコマンドで、Bash にマッチするフックが動かなかった ブロックや確認はできるが、承認や書き換えはできない
5 CI(端末あり)で claude ultrareview / claude remote-control が信頼確認を尋ねていた CI 設定時、信頼されていないフォルダは即拒否に
6 管理者の TLS 信頼設定が Claude Desktop セッションに適用されていなかった 修正済み
7 管理プラグイン設定下で、自分の --plugin-dir / --plugin-url プラグインが壊れているとモデル切り替えが拒否されていた 修正済み
8 sandbox.excludedCommands の説明が誤っていた 後述

⚠️ sandbox.excludedCommands の正しい挙動
説明文は「列挙したコマンドは常にサンドボックス外で動く」となっていましたが誤りでした。1回の呼び出しに含まれるすべてのコマンドがエントリに一致したときだけ効きます。

3. 挙動変更(要確認)

⚠️ Breaking Change
既存の設定の結果が変わりうる変更です。

対象 変更内容
FORCE_HYPERLINK=false(no・off も同様) ハイパーリンクをオフにする(従来はオンになっていた)
Bash ツールの which 継承した which のエイリアス・関数を消し、export された which / unsetenv 関数も渡さない。which は常にシステムコマンドか zsh ビルトイン
フック if 条件 Monitor(tail *) と書くと Monitor ツールのシェルコマンドに一致する(Bash(tail *) と同様)
ファイルツール 組織のサーバー管理設定のローカルコピーを編集する前に確認を求める
/ultrareview git 実行前にワークスペースの信頼を確認する
/permissions の Recently blocked 全文を読めない呼び出し(端末の高さ不足を含む)の承認を拒否する
Cowork クラウドの auto mode フックが MCP ツール呼び出しを allow しても「回答なし」とみなし、分類器か権限プロンプトが判断する

4. idle compaction(medium)

VS Code と Claude Desktop の Code タブに追加されました。20万トークン以上の会話がアイドル状態になると要約を作成し、次のメッセージ送信時にプロンプトキャッシュが期限切れなら、その要約を使います。

  • テレメトリをオフにしているサブスクライバーでも動作する
  • Bedrock・Vertex・Foundry・LLM gateway では、1時間のプロンプトキャッシュが有効なら動作する
  • PreCompact フックの出力が非常に大きいとコンパクションが失敗・反復する問題を修正。各フックの出力は 10,000 文字で切り詰められる

5. Claude apps gateway(medium)

  • アップストリームに groups リストを指定可能に。リストにある IdP グループの開発者だけがそのアップストリームに送られる(フェイルオーバー時も同条件)
  • Bedrock アップストリームに guardrail_trace を追加。発動したガードレールフィルタをログに残す(一致したテキストは記録しない)
  • Google のトークンエンドポイントが応答しないとき Vertex アップストリームが数分ハングする問題を修正
  • 廃止予定の Claude Desktop キーについて、終了日後の起動時警告が「stops being accepted」と誤表示していた問題を修正

6. プロバイダー・gateway・モデル判定の互換性修正(medium)

事象 修正
管理者の effort 上限で「Invalid effort level」が毎ターン発生 effort を下げて再試行し、使ったレベルを表示
claude -p が起動失敗しても終了コード 0 エラー表示して終了コード 1
画像の多い Bedrock セッションで「400 Input is too long.」 古い画像を削除してコンパクション
Foundry で既定の Sonnet/Opus/Haiku デプロイがないと失敗 同ファミリーの古いモデルにフォールバック
gateway が tool_reference を拒否 tool search なしで一度だけ再送し、セッション中は記憶
gateway がベータヘッダーを名指しで拒否 そのヘッダーを外して再送
claude-opus-4.8 のようなドット区切りモデルIDが古いモデル扱い 修正(コンテキスト長・出力上限・effort・thinking・コストが正しくなる)
システム証明書ストアのクロス署名ルートで UNABLE_TO_GET_ISSUER_CERT 修正

そのほか、--resume や拒否後のモデル切り替えで未知のモデル名のセッションが別モデルに移される問題、ANTHROPIC_DEFAULT_OPUS_MODEL・availableModels・deniedModels の指定で古い Opus しか残らない場合の再試行挙動、管理設定でモデル固定時の Bedrock/Vertex アップグレード案内の毎回表示も修正・変更されています。

7. その他の改善・修正

  • MCP: 保存済みサインインが無効になった(サインイン不要の)MCP サーバーを、サインアウト状態で使えるように。claude mcp logout が失敗しても成功表示していた問題を修正
  • auto mode / 権限: ブロックメッセージに対象コマンド名と再チェックの旨、/permissions への案内を表示。レビュータブは「Recently blocked」に改名。安全チェックが判定を返さなかった呼び出しをブロック扱いにしていた問題を修正
  • セッション: 「Continue automatically at usage limit」が3回を超えて自動継続する問題、オフにした Ultracode が再びオンに戻る問題などを修正
  • パフォーマンス: 多数のサブエージェントを使うヘッドレス/SDK ターンのメモリ削減、--resume・/context の高速化、.trash の肥大化(約1024件で上限)と git の index.lock 競合を修正。macOS では git grep を C ロケールで実行
  • クラウドセッション: 予約タスクが claude.ai アカウントで有効なプラグインを読み込む。セットアップスクリプトがエラー終了してもセッションが起動する
  • Remote Control / Cowork: ワーカー登録の再試行、Cowork の WebFetch が PDF の 100,000 文字超を黙って捨てていた問題の修正など
  • VS Code: CLAUDE_CODE_DISABLE_CFC_PROMPT が Claude in Chrome の指示追加も止めるように(ブラウザツール自体は使える)
  • 同梱スキル・TUI・Claude Tag(Slack): 軽微な修正と改善が多数

影響と対応

💡 Tips
書き込み範囲を厳密に制限したい場合は、permissions.blockWritesOutsideWorkingDirectories を有効にしたうえで、サンドボックスと組み合わせるのが安全です。

取るべきアクション

  1. 管理者: forceRemoteSettingsRefresh の運用、--setting-sources の挙動、TLS 設定がこの修正で想定どおりになるか確認する
  2. FORCE_HYPERLINK を設定している人: false の意味が反転したため、値を見直す
  3. which のエイリアス・関数を使っている人: Bash ツール内では常にシステム版になる点を踏まえて確認する
  4. フックの if を書いている人: Monitor(...) 形式でシェルコマンドに一致するようになったため、意図しない一致がないか確認する
  5. sandbox.excludedCommands を使っている人: 1回の呼び出し内の全コマンドが一致する必要があることを前提にルールを見直す
  6. CLAUDE.md を管理している人: 次の項目の追記を検討する(後述)
  7. Bedrock / Vertex / Foundry / gateway 利用者: 更新後、既知のエラーが解消されているか確認する

コード例

作業ディレクトリ外への書き込みを禁止する

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

FORCE_HYPERLINK の挙動変更

# Before: ハイパーリンクがオンになっていた
# After : ハイパーリンクがオフになる(no / off も同様)
export FORCE_HYPERLINK=false

フックの if 条件で Monitor ツールに一致させる

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|Monitor",
        "hooks": [
          {
            "type": "command",
            "if": "Monitor(tail *)",
            "command": "./check-tail.sh"
          }
        ]
      }
    ]
  }
}

フックの構成は一例です。実際の設定は自身の環境に合わせて調整してください。Monitor ツール起動のシェルコマンドでは、ブロックや確認はできますが、承認や書き換えはできません。

CLAUDE.md への追記例

## 権限・セキュリティ設定
- permissions.blockWritesOutsideWorkingDirectories で作業ディレクトリ外への書き込みを防ぐ(全権限モードで有効)
- sandbox.excludedCommands は、1回の呼び出しに含まれる全コマンドがエントリに一致したときだけ効く

## 環境変数 / フック設定
- FORCE_HYPERLINK=false はハイパーリンクを無効にする
- フックの if 条件 Monitor(...) は Monitor ツールのシェルコマンドに一致する
- Bash ツールでは which は常にシステム版になる

## コンテキスト管理 / フック
- idle compaction: 20万トークン以上の会話をアイドル中に要約する
- PreCompact フックの出力は 10,000 文字で切り詰められる

まとめ

  • 新機能: permissions.blockWritesOutsideWorkingDirectories で、全権限モードにおいて作業ディレクトリ外への書き込みを防げる
  • セキュリティ修正: forceRemoteSettingsRefresh、worktree のサンドボックス、--setting-sources の除外漏れなどが修正された。管理設定を使う組織は特に確認したい
  • 挙動変更: FORCE_HYPERLINK=false の反転、which の固定、フックの Monitor(...) 一致など、既存設定の結果が変わりうる
  • ドキュメントの誤り: sandbox.excludedCommands は「全コマンドが一致」したときだけ効く
  • 互換性: Bedrock・Vertex・Foundry・LLM gateway まわりで、effort 上限、画像過多、ドット区切りモデルIDなど多数の問題が修正された
  • idle compaction: 長い会話の再開時にキャッシュ切れのコストを抑えられる

アップデート後は、まず上記の挙動変更に該当する設定がないかを確認することをおすすめします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?