
Claude Code v2.1.223 の主要アップデート - 権限バイパスの修正と /review の /code-review 統合
クラウド事業統括本部の石川です。Claude Code の v2.1.223(2026-08-06 公開)がリリースされました。先日に引き続き、スラッシュコマンドの統合や廃止など、破壊的変更・振る舞いの変更が生じるアップデートです。
前回のアップデート記事はこちらです。
アップデートサマリー
v2.1.223 では 19 件の変更が入りました。内訳は、権限チェックとサンドボックスに関するセキュリティ修正が 4 件、コンテキストウィンドウの扱いとスラッシュコマンドの振る舞いの変更が 3 件、残りは managed settings・ゲートウェイのモデル検出・セッション再開まわりの修正と、警告表示の追加です。新機能の追加は少なく、既存の挙動を正す変更が中心のリリースとなっています。
注目のアップデート
権限チェックをすり抜ける 4 件の修正
細工されたコマンドが自身の一部を権限チェックから隠せてしまう Bash の権限バイパスが修正されました。あわせて、タブや不可視の Unicode 文字でパディングされたコマンドが承認ダイアログからコマンドの一部を隠せてしまう問題、ワークフロースクリプトが動的 import() でサンドボックス外のコードを実行できてしまう問題、エージェント定義の bypassPermissions モードが組織の bypass-permissions 無効化ポリシーを無視してしまう問題も、それぞれ修正されています。
承認ダイアログの表示を前提に Bash の実行可否を判断している運用ほど影響が大きい修正だと感じます。permissions の allowlist を整備しているチームは、優先的に上げておきたいバージョンではないでしょうか。
/review が /code-review のエイリアスに
/review が /code-review のエイリアスになりました。/code-review はv2.1.147で /simplify から改名したのが記憶に新しいコマンドでもあります。/code-review は現在の差分または PR をレビューし、/code-review <level> <pr#> の形式でレベルと対象を指定できます。/code-review ultra を指定すると、クラウド上での詳細なレビューが実行されます。さらに、レベルを指定せずに /code-review を実行すると、最後に入力したレベルが再利用されるようになりました。
コードレビューをスラッシュコマンドで回している方は、レベル指定の書き方を一度確認しておくとよいと感じます。
コンテキストウィンドウ制御の変更
CLAUDE_CODE_DISABLE_1M_CONTEXT の対象が固定リストから、ネイティブに 1M コンテキストウィンドウを持つすべての Claude モデルに広がりました。自動コンパクションがセッションを 200K に抑えられていない場合には、起動時に警告が表示されます。あわせて自動コンパクションは、認識できないモデル ID のセッションについても想定コンテキストウィンドウ内に収めるようになりました。
環境変数でコンテキスト長を抑えている環境では、更新後に想定どおり 200K に収まっているかを確認しておきたいところだと感じます。
マーケットプレイス設定の owner ワイルドカード
managed settings の strictKnownMarketplaces と blockedMarketplaces で、"owner/*" というオーナー単位のワイルドカード指定に対応しました。GitHub organization 配下のマーケットプレイスリポジトリをまとめて許可・ブロックできます。
組織でプラグインマーケットプレイスを管理している方には、リポジトリを 1 件ずつ列挙する運用から解放される変更だと感じます。
アップデート内容
セキュリティ
- 細工されたコマンドが自身の一部を権限チェックから隠せてしまう Bash の権限バイパスを修正
- タブや不可視の Unicode 文字でパディングされたコマンドが、承認ダイアログからコマンドの一部を隠せてしまう問題を修正
- ワークフロースクリプトが動的
import()を使ってワークフローのサンドボックス外でコードを実行できてしまう問題を修正 - エージェント定義の
bypassPermissionsモードが、組織の bypass-permissions 無効化ポリシーを無視してしまう権限の抜け穴を修正
新機能
- managed settings の
strictKnownMarketplacesとblockedMarketplacesで、"owner/*"形式のオーナー単位のワイルドカード指定に対応しました。GitHub organization 配下のマーケットプレイスリポジトリをまとめて許可・ブロックできます
改善・開発者体験
- ワークフローエージェント・フォークしたスキル・スラッシュコマンド・再開したバックグラウンドエージェントが要求したサブエージェントモデルが制限されていて、親モデルで実行される場合に警告が表示されるようになりました
- クラウドセッションで、
claude --teleport <session id>によりローカルで作業を継続する方法を示す/teleportのヒントが表示されるようになりました /code-reviewをレベル(effort level)の指定なしで実行すると、最後に入力したレベルが再利用されるようになりました。変更するには/code-review highのようにレベルを指定します
修正
- ゲートウェイのモデル検出漏れを修正:
vertex_ai/claude-*やbedrock/anthropic.claude-*のようなプロバイダー接頭辞付き ID で登録された Claude モデルが表示されない問題を修正しました modelOverridesの未知キーの扱いを修正: Anthropic のモデル ID ではないキーがセッションの正規モデル ID として扱われてしまう問題を修正し、未知のキーはドキュメントどおり無視されるようになりました- managed settings の env 上書きを修正: サーバー配信の設定が、マシンローカルの
managed-settings.jsonや MDM プロファイルの env ブロックを無効化しなくなりました。管理者の env はキー単位でマージされます - Linux でのサンドボックス起動失敗を修正:
sandbox.filesystem.denyWriteが作業ディレクトリを含む場合に、サンドボックス化されたコマンドが起動に失敗する問題を修正しました - バックグラウンドエージェントの「already resuming」を修正: 再開時にフォーク元の親プロンプトの再構築に失敗すると、フォークしたバックグラウンドエージェントがセッション中ずっとその状態で固まる問題を修正しました
- セッション再開時の連続失敗を修正: 履歴に不正な形式の診断アタッチメントが含まれていると、再開したセッションが毎ターン失敗する、または対話アプリが応答しないエラー画面のままになる問題を修正しました
- 地味に嬉しい修正: セッション中に
/cdを実行した後、そのセッションを再開すると内容が空になる問題が修正されました。作業ディレクトリを切り替えながら長いセッションを続ける使い方をしている方には、重宝する修正だと感じます - このほか、
git pushの出力解析でまれに発生していたハングなど、細かな不具合も修正されています
破壊的変更・振る舞いの変更
いずれも既存の設定・コマンドの挙動が変わる変更です。
/review が /code-review のエイリアスに
/review というコマンド名自体は引き続き使えます。変わるのは、実行される内容が /code-review のものになる点です。
/review:/code-reviewのエイリアス。現在の差分をレビュー/code-review high 123: レベルを指定して PR #123 をレビュー/code-review ultra: クラウド上での詳細なレビュー
CLAUDE_CODE_DISABLE_1M_CONTEXT の対象拡大
変更前(〜v2.1.222):
# 200K に抑えられる対象は固定リストのモデルのみ
export CLAUDE_CODE_DISABLE_1M_CONTEXT=1
変更後(v2.1.223〜):
# ネイティブに 1M ウィンドウを持つすべての Claude モデルが
# 自動コンパクションで 200K に抑えられる
export CLAUDE_CODE_DISABLE_1M_CONTEXT=1
自動コンパクションがセッションを 200K に抑えられていない場合は、起動時に警告が表示されます。
認識できないモデル ID での自動コンパクション
- 変更前(〜v2.1.222): 認識できないモデル ID のセッションは想定ウィンドウを超えて伸びていた
- 変更後(v2.1.223〜): 既定では想定コンテキストウィンドウ内に収まる
# 従来の挙動に戻す場合:
export CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1
補足: /review の /code-review 統合
ややこしい/review と /code-review
紆余曲折な /review と /code-review を時系列で解説します。 /code-review は v2.1.147で /simplify から改名されたコマンドです。 /review <pr> はv2.1.186で /code-review medium と同じレビューエンジンを使うよう変更されました。この時点で一度、内部実装が統一されています。ところがv2.1.202で /review <pr> は高速なシングルパスレビューに戻され、「多エージェントレビューはエフォートレベルを指定して /code-review <level> <pr#> を使うように」と案内されました。統合→分離→再統合と揺れています。
そして現在、v2.1.223(8/6)で /review は /code-review のエイリアスとなり、/code-review がカレントdiffとPRの両方をレビューする形に一本化されました。同時に、エフォートレベル未指定時は前回入力したレベルを再利用する挙動が追加されています。
/review は /code-review として扱われる
検証用に小さな Git リポジトリを用意し、意図的に問題のある差分をレビューさせました。差分の内容は、パラメータ化されていた SQL クエリを文字列連結に書き換え、在庫数のチェックを削除し、更新処理の例外を握りつぶす、というものです。スラッシュコマンドは対話セッション向けの機能ですが、claude -p からも実行できたため、その結果を掲載します。
claude -p "/review" --max-turns 1
--max-turns 1 はターン数を 1 に制限する指定で、レビューは途中で打ち切られます。ここではエイリアスとして動くかどうかの確認が目的なので、この形で実行しています。レビューは実際に走り、仕込んだ問題が検出されました。冒頭は All findings verified empirically. Here are the results. で、以下はその結果のうち 1 件目です。
[
{
"file": "inventory.py",
"line": 35,
"summary": "The insufficient-stock guard was deleted, so take_stock now drives inventory negative instead of raising ValueError.",
"failure_scenario": "Item 'A1' has quantity=5. take_stock(conn, 'A1', 100) previously raised ValueError('insufficient stock: 5 < 100'). Verified against a real sqlite3 DB: it now returns -95 and commits quantity=-95 to the items table."
},
エイリアスとして扱われていることは、セッションの記録からも確認できます。セッションは ~/.claude/projects/ 配下に JSON Lines 形式で保存されます。
入力キューには /review が入っている一方、プロンプトとして記録されているのは /code-review であることも確認できました。
{"type":"queue-operation","operation":"enqueue","timestamp":"2026-08-06T04:15:53.291Z","sessionId":"184cdec5-5ed7-4bb9-8af7-44f1061e5e97","content":"/review"}
:
:
{"type":"last-prompt","lastPrompt":"/code-review","leafUuid":"2b5f19cd-d340-4c66-94d8-599a4f38680c","sessionId":"184cdec5-5ed7-4bb9-8af7-44f1061e5e97"}
:
これまで /review と /code-review のどちらを使うか迷う場面がありましたが、どちらを打っても同じレビューが走るようになり、普段は軽く、要所では ultra とレベルを使い分ける運用に集中できるようになったと感じます。
最後に
セキュリティ修正 4 件に加えて、コンテキストウィンドウの扱いと /review のエイリアス化という振る舞いの変更が同時に入っています。特に環境変数でコンテキストを制御している場合は、更新後に想定どおり動いているかを一度確認しておくと安心だと感じます。
権限設定やコンテキスト長を運用で作り込んでいる方は、アップデートして試してみてはいかがでしょうか。
参考文献








