Claude Code v2.1.290〜v2.1.291 の主要アップデート - Bash 権限チェックの強化と WebSearch 枠の補充方式への変更

Claude Code v2.1.290〜v2.1.291 の主要アップデート - Bash 権限チェックの強化と WebSearch 枠の補充方式への変更

Claude Code の v2.1.290 〜 v2.1.291 のアップデート内容を、注目の機能改善とセキュリティ修正を中心にご紹介します。WebSearch の利用枠が時間で補充される方式に変わり、Bash の権限チェックをインタラクティブと非インタラクティブモードで試してみました。
2026.10.06

クラウド事業統括本部の石川です。Claude Code の v2.1.290 〜 v2.1.291(2026-10-05 〜 2026-10-06)のアップデートをまとめてご紹介します。本記事では注目のアップデートを紹介し、Bash の権限チェックをインタラクティブと非インタラクティブモードで試してみました。

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

https://dev.classmethod.jp/articles/20261005-cc-updates-v2-1-289/

アップデートサマリー

対象は 2 バージョン(v2.1.290 〜 v2.1.291、2026-10-05 〜 2026-10-06)で、変更は計 192 件です。内訳は v2.1.290 が 190 件、v2.1.291 が 2 件(いずれもリグレッションの修正)で、筆者の分類では修正 109 件、改善 37 件、セキュリティ 27 件、新機能 12 件、破壊的変更 7 件です。Bash の権限チェックや設定ファイルの扱いに関する変更と、agents view・バックグラウンドセッションに関する修正が多く含まれています。

注目のアップデート

WebSearch の利用枠が時間で補充される方式に変わりました(v2.1.290)

インタラクティブセッションの WebSearch の利用枠が、200 回で終了する方式から、時間とともに補充される方式(1 時間あたり 100 回)に変わりました。補充レートは環境変数 CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR で設定でき、0 にするとオフになります(原文: "0 turns it off")。何がオフになるのか(補充か、利用枠そのものか)は、CHANGELOG の記述からは特定できません。

なお、v2.1.212 では WebSearch の呼び出しにセッション単位の上限(既定 200 回、CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION で調整可能)が追加されていました。v2.1.290 の CHANGELOG には、CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION の扱いについての記載はありません。

長時間のインタラクティブセッションで調査を続ける方にとっては、200 回に達した時点で WebSearch が使えなくなるのではなく、時間の経過で再び使えるようになる点が効いてくると感じます。

/claude-api managed-agents-onboard が追加されました(v2.1.290)

/claude-api managed-agents-onboard が追加されました。URL を渡すと、そのページに記載された Managed Agents のパターンを ant apply 用のファイルとしてセットアップします。deep-researcher などの Console クイックスタートテンプレートの名前を渡すと、そのテンプレートを ant CLI で構築します。

Managed Agents をこれから試す方は、ページの URL やクイックスタート名を渡すところから ant CLI 用の構成作りを始められるため、最初のセットアップの手間が減ると感じます。

Claude Tag(Slack)で fast モードを切り替えられるようになりました(v2.1.290)

Slack で !fast を付けて Claude をメンションすると、スレッドが fast モードに切り替わります(必要に応じて Opus に移行)。!fast off で元に戻り、有効な間は返信に (fast) と表示されます。

Slack で Claude Tag を使っているチームは、スレッドごとに fast モードを切り替えられるので、急ぎの相談だけ切り替える使い方ができると感じます。

WebFetch が 100,000 文字を超えるページを黙って切り捨てる問題が修正されました(v2.1.290)

WebFetch が 100,000 文字を超えるページのテキストを黙って切り捨てていた問題が修正されました。未読の量を伝え、続きを読むための offset を受け付けるようになりました。

長い API リファレンスや仕様書を WebFetch で読ませている方は、未読の量が示されることで欠落に気づきやすくなり、offset で続きを読むことで取りこぼしを減らせると見ています。

再開したサブエージェントの thinking とプロンプトキャッシュが失われる問題が修正されました(v2.1.290)

実行途中でメッセージを受け取ったサブエージェントやチームメイトを再開すると、それまでの thinking とプロンプトキャッシュが失われる問題が修正されました。

実行中のサブエージェントやチームメイトに途中でメッセージを送る使い方をしている方は、再開時に以前の thinking とプロンプトキャッシュが失われる問題を気にせずに済むと感じます。

終了時にセッションの最後のメッセージが失われる問題が修正されました(v2.1.291)

v2.1.288 で発生した、終了時にセッションの最後のメッセージが失われることがあるリグレッションが修正されました。

セッションの最後のやり取りまで記録として残しておきたい方には、関係のある修正だと感じます。

Bash の権限チェックが一部のコマンドを自動承認していた問題が修正されました(v2.1.290)

シェルがワイルドカードとして展開する引数を持つ一部の読み取り専用コマンド(rg や git grep など)と、zsh と bash で変数名の解釈が異なる特定のコマンドを、Bash の権限チェックが自動承認していた問題が修正されました。これらは承認を求めるようになります。あわせて、pyright と一部の ps コマンドも実行前に承認を求めるように変更されています(後述の「破壊的変更」を参照)。

rg や git grep の自動承認に頼っていた方は、シェルが展開し得るワイルドカードを引数に含む場合に承認の確認が増えると見ています。

PreToolUse フックが入力を書き換えた後の権限ルールの適用漏れが修正されました(v2.1.290)

PreToolUse フックがツール呼び出しの入力を書き換えた後、一部の権限ルールと安全チェックがそのツール呼び出しに適用されない問題が修正されました。

PreToolUse フックでツールの入力を書き換えている組織は、関連する権限ルールや安全チェックが書き換え後の入力にも適用される前提で運用を組み立てやすくなったと感じます。

対象バージョンと期間

バージョン 公開日 変更件数
v2.1.290 2026-10-05 190 件
v2.1.291 2026-10-06 2 件

アップデート内容

新機能

  • /claude-api managed-agents-onboard <url> と /claude-api managed-agents-onboard <quickstart-name> が追加されました(注目のアップデートを参照)(v2.1.290)。
  • claude attach <name> と claude logs <name> で、セッション ID の代わりにセッション名の一部を指定できるようになりました(v2.1.290)。
  • Claude apps gateway のサインイン承認ページに Deny ボタンが追加されました。押すと保留中のサインインが終了し、待機中のターミナルは数秒以内に停止します(v2.1.290)。
  • mod・プラグインフック向けに、次の追加がありました(v2.1.290)。
    • プラグインフックの tool.check イベントに agentId が追加され、サブエージェントの権限チェックとメインセッションの権限チェックを区別できるようになりました。
    • mod の tool.check フックが読む question と verdict に ceiling が追加されました。組織がそのツールに要求する承認を示します。
    • mod の turn.step フックの結果に serverToolUses が追加されました。API 側で実行されたツール呼び出し(advisor)を、id・name・input・開始時刻・終了時刻つきで受け取れます。
    • プラグインフックの型定義に ThemeKey 型と Color 型が追加されました。
    • claude plugin validate が、mod がゲーティング箇所に登録した各フックを .catch の有無つきで一覧表示するようになりました(--json では gatingHooks)。

改善・変更

  • インタラクティブセッションの WebSearch の利用枠が、時間とともに補充される方式に変わりました(注目のアップデートを参照)(v2.1.290)。
  • medium effort の /code-review が、レビュー設定が調整されていないモデル(Opus 5.5・Sonnet 5.5 を含む)でも、クリーンアップと CLAUDE.md の規約に関する指摘を報告するようになりました(v2.1.290)。
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC が起動時の接続ウォームアップもスキップするようになりました(v2.1.290)。
  • ネットワークプロキシ配下での MCP の起動が改善されました。プロキシがブロックする(HTTP 403)サーバーを 3 回リトライしなくなりました(v2.1.290)。
  • バイナリファイルに対する Read ツールのメッセージが改善され、その形式を読めるスキルやシェルコマンドを Claude に案内するようになりました(v2.1.290)。
  • 大きなセッションの再開中の応答性が改善されました。トランスクリプトの読み込み中もタイマー・入力・描画が動作します(v2.1.290)。
  • Claude in Chrome の browser_batch 呼び出しがタイムアウト扱いになるまでの時間が 60 秒から 90 秒に延長されました(v2.1.290)。
  • claude agents からビジー状態のバックグラウンドセッションに送った /model・/effort・/rename が、ターン終了時ではなく確認なしで即座に適用されるようになりました(v2.1.290)。
  • スケジュールされたウェイクアップ(/loop)を待っているバックグラウンドセッションは、アップデート時やメモリ不足時にも実行したまま残されるようになりました(v2.1.290)。
  • このほか、Claude apps gateway のログ・サインインページ・証明書の期限警告、/ultrareview のエラーメッセージ、バックグラウンドデーモンのログ形式(複数行のメッセージを JSON でクォートした 1 行で出力)、プラグインフックの長いテキストの扱いなどが改善・変更されています(v2.1.290)。

修正(主要なもの)

  • 終了時にセッションの最後のメッセージが失われる問題を修正: v2.1.288 で発生したリグレッションです。注目のアップデートを参照してください(v2.1.291)。
  • クラウドセッションで権限プロンプトへの回答が失われる問題を修正: v2.1.290 で発生したリグレッションです(v2.1.291)。
  • プロキシ・ゲートウェイ経由でリクエストが失敗する問題を修正: Claude Code の beta ヘッダーの 1 つを 400 以外のステータスで拒否する、または別の beta ヘッダーとの組み合わせで拒否するプロキシ・ゲートウェイが対象です(v2.1.290)。
  • WebFetch の 100,000 文字超のテキストの切り捨てを修正: 注目のアップデートを参照してください(v2.1.290)。
  • 再開したサブエージェントの thinking とプロンプトキャッシュの喪失を修正: 注目のアップデートを参照してください(v2.1.290)。
  • 画像の多い長いセッションのエラーを修正: 数百枚の画像を含む長いセッションが "Request rejected as unprocessable by the model" エラーから抜け出せなくなっていました(v2.1.290)。
  • 出力コンテンツフィルターでターンが即座に終わる問題を修正: Claude の思考中に API の出力コンテンツフィルターが応答を止めた場合、エラー表示の前に 1 回リトライされるようになりました(v2.1.290)。
  • スケジュールタスクが復帰しない・余分に実行される問題を修正: compaction 後の再開時に間隔指定の /loop やリマインダーが黙って復帰しない問題(v2.1.290 以降の compaction が対象)、← や /background での引き渡し後に発火しない問題、繰り返しタスクが resume・respawn・fork のたびに 1 回余分に実行される問題が修正されました(v2.1.290)。
  • --json-schema 実行の終了ステータスの誤りを修正: ヘッドレス実行で構造化出力の配信後に接続が切れると、success の結果なのに is_error: true で非ゼロ終了していました(v2.1.290)。
  • compaction の失敗を修正: 会話の compaction が "null is not an object" エラーで失敗することがありました(v2.1.290)。
  • /teleport の stash でファイルが削除される問題を修正: claude --teleport と /teleport で stash を選ぶと、同名の追跡ファイルを置き換えたフォルダ内のファイルが削除されていました。現在は stash が拒否され、理由が表示されます(v2.1.290)。
  • SDK ホストでの起動の遅延・失敗を修正: 2.1.285 以降、managed settings が低速なファイルシステム(特に WSL 下の Windows ドライブ)上の多数のパスの読み取りを拒否していると、VS Code 拡張などの SDK ホストで起動が遅い・失敗することがありました(v2.1.290)。
  • 再開時に plan モードが復元されない問題を修正: ターミナルで --continue や --resume <session-id> で再開したときの問題です(v2.1.290)。
  • サブディレクトリの AGENTS.md が添付されない問題を修正: サブディレクトリ配下のファイルを @ メンションしたときの問題です(v2.1.290)。
  • バックグラウンドのサブエージェントが worktree へのアクセスを失う問題を修正: メインセッションが別の worktree に入る・出ると、サブエージェントが自身の worktree で書き込みと Bash のアクセスを失っていました(v2.1.290)。
  • 地味に嬉しい修正: スキルのフォルダ名が SKILL.md 内の名前と異なる場合(英語以外の名前など)に、SKILL.md の名前で指定してもスキルが見つからない問題が修正されました。スキル一覧には両方の名前が表示されます(v2.1.290)。スキルのフォルダに日本語名を付けている方には効く修正だと感じます。
  • このほか、agents view・claude agents、mod・プラグインフック、/ultrareview、Claude apps gateway、Mac のスリープ復帰時の動作など、多数の細かな不具合が修正されています(v2.1.290)。

セキュリティ

  • plan モードで auto モードの分類器がコネクタツールを承認できる問題を修正: サーバーから ask ポリシーが付与された、読み取り専用でないコネクタツールが対象です(v2.1.290)。
  • MCP の URL ルールが一部のエントリに適用されない問題を修正: .mcp.json・プラグイン・エージェントで宣言された一部の MCP エントリに、disableClaudeAiConnectors と allowedMcpServers の URL ルールが適用されていませんでした(v2.1.290)。
  • --channels の権限リレーで別のプロンプトが承認される問題を修正: セッション内で重複した返信 ID が別のプロンプトを承認していました。重複した ID は無視されるようになりました(v2.1.290)。
  • Bash の権限チェックの自動承認の誤りを修正: 注目のアップデートを参照してください(v2.1.290)。
  • sandbox 内の Monitor ツールが権限プロンプトをスキップする問題を修正: sandbox の自動許可の下でも、Monitor ツールのコマンドが権限ルールに従うようになりました(v2.1.290)。
  • Claude apps gateway 配下で Anthropic にリクエストが送られる問題を修正: マシン上の managed settings がゲートウェイログインを強制していない場合に、バックグラウンドコマンド・agents view・デーモンワーカーがテレメトリとフィーチャーフラグのリクエストを Anthropic に送っていました(v2.1.290)。
  • バックグラウンドワーカーが bypass-permissions に従う問題を修正: bypass-permissions の免責事項が承認されていないのに、respawn 時に --allow-dangerously-skip-permissions に従っていました(v2.1.290)。
  • PreToolUse フックの書き換え後に権限ルールが適用されない問題を修正: 注目のアップデートを参照してください(v2.1.290)。
  • シンボリックリンクの設定ファイルが確認なしで編集される問題を修正: リンク先ファイルへの編集が、設定ファイル用の権限確認なしに実行されていました(v2.1.290)。
  • managed settings に関する警告を追加: managed settings ファイルが managed settings フォルダ外のファイルへのリンクになっている場合と、managed settings によってユーザーが設定した sandbox の allowRead パスや許可ドメインが無視される場合(/status と doctor)に警告が表示されます(v2.1.290)。
  • シンボリックリンク経由で CLAUDE.md などが読み込まれる問題を修正: 作業ディレクトリ外へのシンボリックリンクになっているプロジェクトの CLAUDE.md・ルール・AGENTS.md が、permissions.blockReadsOutsideWorkingDirectories や Read の deny ルールの下でも読み込まれていました(v2.1.290)。
  • 読み取り中のリンクの差し替えで範囲外のファイルを読める問題を修正: macOS・Windows の画像の読み取りと、読み取りブロックや --restricted の下での @ メンションが対象です(v2.1.290)。
  • 貼り付けた画像のパスに Read の deny ルールが適用されない問題を修正: @ メンションしたフォルダに列挙されるファイル名も対象です(v2.1.290)。
  • このほか、mod と組織のプラグイン・ガードの関係、declare などのプレフィックスで設定した変数を使うコマンド、git clone の短い形式のオプション、/ultrareview の filter driver、--restricted セッションのソケットなど、セキュリティに関する修正が多数入っています(v2.1.290)。

破壊的変更

破壊的変更は 7 件で、いずれも v2.1.290 の変更です。以下の before/after のうち、pyright の変更後の挙動は本記事の検証(v2.1.291)で確認したものです。それ以外は CHANGELOG の記述をもとにした例です。

プロジェクトの設定ファイルで Claude in Chrome を有効にできなくなりました(v2.1.290)

プロジェクトの設定ファイルから Claude in Chrome を有効にできなくなりました。有効にするには --chrome、/chrome、またはユーザー設定を使います。以下は有効化方法の例です。

変更前(〜v2.1.289):

# プロジェクトの設定ファイルで Claude in Chrome を有効化する
# → v2.1.289 までは有効になる

変更後(v2.1.290〜):

# プロジェクトの設定ファイルでは有効にならないため、次のいずれかで有効化する
claude --chrome   # 起動時のフラグ
/chrome           # セッション内のコマンド
# またはユーザー設定で有効化する

リポジトリの設定ファイルで CLAUDE_CODE_DISABLE_ATTACHMENTS を設定できなくなりました(v2.1.290)

リポジトリの .claude/settings.json や .claude/settings.local.json から CLAUDE_CODE_DISABLE_ATTACHMENTS を設定できなくなりました。シェル・ユーザー設定・managed settings からは引き続き設定できます。以下は設定例です(値の 1 は公式ドキュメントの環境変数一覧の記載によります)。

変更前(〜v2.1.289):

# リポジトリの .claude/settings.json / .claude/settings.local.json で
# CLAUDE_CODE_DISABLE_ATTACHMENTS を設定する → v2.1.289 までは有効

変更後(v2.1.290〜):

# シェルで設定する(ユーザー設定・managed settings でも可)
export CLAUDE_CODE_DISABLE_ATTACHMENTS=1
claude

Bash ツールが pyright と一部の ps の実行前に権限を求めるようになりました(v2.1.290)

Bash ツールが pyright の実行前に権限を求めるようになりました。pyright は読み取り専用コマンドとして扱われなくなります。また、ps コマンドのより多くの形式が、確認なしで実行されず承認を求めるようになりました(対象となる形式は CHANGELOG に記載がありません)。

変更前(〜v2.1.289):

pyright             → 読み取り専用コマンドとして確認なしで実行
ps(一部の形式)      → 確認なしで実行

変更後(v2.1.290〜):

pyright             → 実行前に権限の確認が入る
ps(より多くの形式)  → 実行前に権限の確認が入る

スキルとカスタムコマンドの ! シェルコマンドが制御文字を含むと拒否されるようになりました(v2.1.290)

スキルとカスタムコマンドで、タブと改行以外の生の制御文字を含む ! シェルコマンドを拒否し、その位置を示すメッセージを表示するようになりました。以下は挙動の対比です。

変更前(〜v2.1.289):

スキル・カスタムコマンドの ! シェルコマンド(タブ・改行以外の生の制御文字を含む)
→ 拒否されない

変更後(v2.1.290〜):

同じコマンド
→ 拒否され、制御文字の位置を示すメッセージが表示される

Agent の結果の agent_id と TeammateIdle フックの発火範囲が変わりました(v2.1.290)

Agent の結果で、インプロセスのチームメイトの agent_id がそのエージェントの ID になりました。name@team のアドレスは teammate_id に残ります。TeammateIdle フックは、そのチームメイトのサブエージェントやフォークからは発火しなくなりました。以下は挙動の対比です。

変更前(〜v2.1.289):

TeammateIdle フック : チームメイトのサブエージェントやフォークからも発火する

変更後(v2.1.290〜):

agent_id            : インプロセスのチームメイトのエージェント ID
teammate_id         : name@team のアドレス(引き続きここに入る)
TeammateIdle フック : チームメイトのサブエージェントやフォークからは発火しない

クラウドセッションの gh api が github.com 以外のホスト指定を拒否するようになりました(v2.1.290)

クラウドセッションの組み込み gh api で、GH_HOST や GH_REPO に github.com 以外のホストを設定すると拒否されるようになりました。--hostname か完全な URL を使います。他のホストへのリクエストは stderr に注記されます。以下はコマンドの例です(ホスト名と API のパスはプレースホルダーです)。

変更前(〜v2.1.289):

# GH_HOST で github.com 以外のホストを指定する
GH_HOST=ghe.example.com gh api repos/OWNER/REPO

変更後(v2.1.290〜):

# 上記は拒否される。--hostname でホストを指定する
gh api --hostname ghe.example.com repos/OWNER/REPO

VS Code 拡張・Claude Tag・クラウドセッションなど

  • [VS Code] Manage plugins ダイアログから、プラグインマーケットプレイスのインストール・更新コマンドを確認して実行できるようになりました(v2.1.290)。
  • [VS Code] 開いているダイアログの背後に届いた権限プロンプトがキーボードフォーカスを奪い、ダイアログで押したキーがプロンプトへの回答になり得た問題が修正されました(v2.1.290)。
  • [VS Code] メッセージのタイムスタンプがデフォルトで表示されるようになりました(Claude Code: Show Message Timestamps 設定でオフにできます)(v2.1.290)。
  • [Claude Tag] Slack で !fast による fast モードの切り替えが追加されました(注目のアップデートを参照)(v2.1.290)。
  • [Claude Tag] アクセスバンドルでカスタム接続を作成するときの任意項目 Path prefixes が追加され、allow ルールの対象をホスト全体ではなく指定したパスに限定できるようになりました(v2.1.290)。
  • [Claude Tag] チャンネル指示の上限がバイト数ではなく 8,192 文字になり、英語以外のテキストでも同じ分量を書けるようになりました。Configure ページの Save の横に文字数が表示されます(v2.1.290)。
  • このほか、VS Code 拡張のダイアログ・エージェントマップ・スクリーンリーダー対応、クラウドセッションの作業中インジケーターやルーティン、Remote Control のメニュー表示、Claude Tag のメンバー権限やルーティン、Code Review のコメントに関する修正・改善が入っています(v2.1.290)。

Bash の権限チェックを試してみた

インタラクティブモードによる確認する

日常的によく使うインタラクティブモードで、どのような承認を求めるかを確認します。

--permission-mode default で、claudeを起動します。

claude --permission-mode default 

以降、インタラクティブモードで、プロンプトを入力して動作を確認します。

Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: pyright --version

Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: rg TODO *.txt

Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: rg TODO notes.txt

非インタラクティブモードで動作の詳細を確認する

シェルが展開するワイルドカードを含む rg と pyright が、v2.1.290 で承認を求めるようになったかを claude -p で詳しく確認しました。

検証用の空ディレクトリに TODO: sample line の 1 行だけを書いた notes.txt を置き、次の 3 つのコマンドの実行を claude -p に依頼しました。権限モード default での挙動を見るため --permission-mode default を指定し、--max-turns 1 で 1 ターンに制限しています。3 つ目は比較用で、ワイルドカードを含まない rg です。

claude -p --max-turns 1 --permission-mode default --output-format json "Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: pyright --version" > raw1.json
claude -p --max-turns 1 --permission-mode default --output-format json "Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: rg TODO *.txt" > raw2.json
claude -p --max-turns 1 --permission-mode default --output-format json "Bash ツールで次のコマンドを 1 回だけ実行してください。他のツールは使わないでください: rg TODO notes.txt" > raw3.json

結果の JSON から subtype・is_error・permission_denials を取り出した出力です。

$ jq '{subtype, is_error, permission_denials}' raw1.json
{
  "subtype": "error_max_turns",
  "is_error": true,
  "permission_denials": [
    {
      "tool_name": "Bash",
      "tool_use_id": "toolu_01GHEhbzuF2tngM5wxixgvxY",
      "tool_input": {
        "command": "pyright --version",
        "description": "Show pyright version"
      }
    }
  ]
}
$ jq '{subtype, is_error, permission_denials}' raw2.json
{
  "subtype": "error_max_turns",
  "is_error": true,
  "permission_denials": [
    {
      "tool_name": "Bash",
      "tool_use_id": "toolu_011Rk4jcDWJDxcs1bEsNqwYD",
      "tool_input": {
        "command": "rg TODO *.txt",
        "description": "Search for TODO in txt files"
      }
    }
  ]
}
$ jq '{subtype, is_error, permission_denials}' raw3.json
{
  "subtype": "error_max_turns",
  "is_error": true,
  "permission_denials": []
}

--max-turns 1 で 1 ターンに制限しているため、3 回とも subtype は error_max_turns、終了コードは 1 です。is_error が true になっているのもターン数の上限で終了したためで、権限の拒否とは関係ありません(確認なしで実行された 3 つ目も true です)。あわせて、セッションのトランスクリプトに記録された、Claude に返されたツール結果も確認しました。

依頼したコマンド permission_denials Claude に返されたツール結果
pyright --version 記録あり This command requires approval
rg TODO *.txt 記録あり This command requires approval
rg TODO notes.txt なし TODO: sample line

検証環境には pyright をインストールしていませんが、ツール結果は承認が必要という内容で、コマンドは実行されていません。ワイルドカードを含まない rg は確認なしで実行され、notes.txt の内容が返っています。

検証用のディレクトリには notes.txt しかないため、2 つの rg が実際に読むファイルは同じです。*.txt を実在するファイル名に置き換えるのはコマンドを実行するシェルで、権限チェックはその前にコマンドの文字列に対して行われるため、rg TODO *.txt は読まれるファイルが決まらないまま判定され、承認を求める扱いになったと推測します。CHANGELOG に承認を求めるようにした理由は書かれていませんが、ワイルドカードが Read の deny ルールの対象や作業ディレクトリ外のファイルに展開される場合を、展開前の文字列では判定できないためだと考えています。

読み取り専用に見えるコマンドでも、引数がシェルでどう展開されるかまで見て扱いを変えている点に、権限チェックが細かくなっていることを感じます。承認の確認は多少増えますが、自動承認される範囲が狭まった分、auto に任せるときの見通しは立てやすくなったと見ています。

最後に

v2.1.290 は 190 件と変更が多く、翌日の v2.1.291 では 2 件のリグレッションが修正されました。v2.1.288 で入ったリグレッションにより、終了時にセッションの最後のメッセージが失われることがあったため、これから v2.1.290 の変更を取り込む方は、v2.1.291 までまとめてアップデートしておくのがよいと感じます。

プロジェクトの設定ファイルで Claude in Chrome を有効にできなくなったのは納得です。claude -p を自動化に組み込んでいる方や、WebSearch・WebFetch で長い調査をしている方は、試してみてはいかがでしょうか。

参考文献

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

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

https://code.claude.com/docs/en/env-vars

https://dev.classmethod.jp/articles/20261005-cc-updates-v2-1-289/


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

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

サービス詳細を見る

この記事をシェアする

AI白書

関連記事