Claude Media
Claude Code v2.1.288 — レビュー件数の指定とMCPの再認証に対応

Claude Code v2.1.288 — レビュー件数の指定とMCPの再認証に対応

Claude Code v2.1.288は、/code-reviewの--max-findings、MCPの追加OAuthスコープ要求への再認証、resume周りの不具合修正が中心です。

このリリースで何ができるようになるか

Claude Code v2.1.288は、日々の操作に効く追加が数点あり、それ以上に--resume・MCP・権限判定まわりの修正が多いリリースです。読者の作業に直接関わるのは次の3点です。

  • /code-reviewの指摘件数を指定できる: --max-findings <n>|allで、通常の上限より多く、または少なく報告させられます
  • Ctrl+Cで消したプロンプトを戻せる: 空のプロンプトで↑を押すと、貼り付けたテキストや画像を含む下書きが復活します
  • MCPサーバーが追加のOAuthスコープを求めたとき、再認証の案内が出る: ツール呼び出しの途中で権限不足になっても、そのまま認証をやり直せます

修正項目が大半を占めます。--resumeで会話の一部が欠ける不具合が4件まとまって直り、危険なrmが許可プロンプトなしで通る経路も塞がれました。一つ前のv2.1.287で入ったClaude Modsに関する修正も含まれます。

あなたの開発フローはどう変わるか

レビューの指摘件数を自分で決める

/code-reviewは通常、報告する件数に上限があります。v2.1.288では--max-findingsで上限を置き換えられます。効果が大きいのは、大きな差分で指摘が打ち切られていると感じるときです。

/code-review high --max-findings all
/code-review high --max-findings 5
/code-review high --max-findings default

指定値は次のレビューにも引き継がれます。戻すにはdefaultを明示します。前回の指定を次のレビューに引き継ぐ仕組みは、/code-reviewのeffort指定と同じです。

Ctrl+Cで消した下書きを↑で戻す

長い下書きを書いたあとにCtrl+Cを押すと、入力欄が空になります。v2.1.288では、空のプロンプトで↑を押すと、その下書きが戻ります。貼り付けたテキストと画像も復元の対象です。

Escを2回押す操作も下書きを履歴に残し、↑で呼び戻せます。Ctrl+Cで消した場合にも、同じ呼び戻しが使えるようになりました。

OAuthが要るMCPサーバーは途中で再認証できる

MCPサーバーがツール呼び出しの途中で「もっと広いスコープが必要」と返すと、再認証を促すプロンプトが出るようになりました。従来は、権限不足のまま失敗したあとに自分で認証をやり直す必要がありました。

URLを開かせるMCPのプロンプトにも変更があります。サーバーが完了を検知できない場合、ブラウザでの作業が終わって「I'm done, continue」を選ぶまで、ツール呼び出しが先へ進みません。ブラウザで認証を終える前に処理が続行する、という事態を避けるための変更です。

エージェントビューで名前検索する

claude agentsのエージェントビューでは、Ctrl+Fでセッション名を検索できます。Alt+↑/↓はグループ見出しの間を移動します。既定の割り当てでは前後のグループ移動はCtrl+Up / Ctrl+DownとMeta+Up / Meta+Downで、Alt+↑/↓はMeta側にあたります(macOSではOption)。n:フィルターの挙動も変わり、Enterで先頭行ではなく、名前が最もよく一致するセッションが開きます。

検索・名前変更・グループ移動はkeybindings.jsonで割り当てを変えられます。

{
  "bindings": [
    {
      "context": "Agents",
      "bindings": {
        "ctrl+f": "agents:find",
        "ctrl+r": "agents:rename"
      }
    }
  ]
}

上の例は公式の既定割り当てと同じ内容です。キーを変えるときは右辺のアクション名はそのままに、左辺を書き換えます。複数キーの連続入力はkeybindingsのchordで組めます。

構造化出力を拒むゲートウェイ越しの利用

構造化出力(structured outputs)を拒否するゲートウェイやAmazon BedrockのMantleエンドポイント経由では、セッションタイトル・メモリ呼び出し・プロンプトフックが失敗していました。この不具合が直り、環境変数CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1で構造化出力の送信そのものを止められます。この変数が止めるのは構造化出力用のoutput_config.formatと、対になるanthropic-betaの値だけで、他のプレリリース機能は有効のままです。

主な変更点

追加

項目内容
/code-review --max-findings内容<n>・all・defaultを指定。前回値はdefaultまで引き継ぎ
プロンプト復元内容Ctrl+Cで消した下書きを空のプロンプトで↑を押して復元
MCPの再認証内容ツール呼び出し中に追加OAuthスコープを求められたとき案内を表示
エージェントビュー内容Ctrl+Fで検索、Alt+↑/↓でグループ移動。rename含め再割り当て可
スクリーンリーダー内容プランを承認したとき(Shift+Tabでの承認を含む)、新しい権限モードを読み上げ
クラウドセッション内容GitHub CLIが無いイメージ向けに組み込みのgh apiを追加
mods内容$.ui.selection()で全画面モードの選択テキストを取得
環境変数内容CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS

変更

  • バックグラウンドコマンドの時間制限は、-p・Agent SDK・CI・クラウドといった無人のセッションだけに適用されます。ターミナル・デスクトップアプリ・VS Codeの対話セッションは無制限です
  • claude project purgeはclaude purgeに変わりました。旧名も動き、通知が出ます
  • 自動圧縮が始まるウィンドウを設定する/autocompactは、設定値がモデルごとに保存されます(設定方法は自動圧縮ウィンドウの記事を参照)。モデルを切り替えても、それぞれの設定が保たれます
  • クライアント側のauto modeの分類器は、ANTHROPIC_DEFAULT_SONNET_MODELがClaude Sonnet 5.5またはOpus 5.5を指していても無視し、Claude Sonnet 5を使います

修正の分類

領域主な修正
resume主な修正圧縮で復元した直後のファイル・コンテキストの脱落、最後の応答の未保存、読み込み中の書き換えによる切れた履歴、2.1.286以前の会話の思考の脱落
権限とセキュリティ主な修正bash -c内の危険なrm、BASHPID代入、フックの照合失敗時の素通りを遮断
auto mode主な修正非Bashツールの拒否にBash権限ルールを案内する不具合、BedrockとMantleでのローカル分類器への切替
MCP主な修正結果が16MB超または解析不能なとき、ツール呼び出しが2回走る不具合
プラグイン主な修正LSPの${user_config.*}未展開、--plugin-dirでの「Configure options」欠落、git 2.39未満でのgit-subdirインストール失敗
長時間セッション主な修正応答の途中のAPIタイムアウトでターンが失敗する不具合、直前の返信のトークン使用量が0と報告されると自動圧縮されず「Prompt is too long」になる不具合
ログイン主な修正資格情報を保存できないのに「Login successful」と表示される不具合、--bareでの/loginが保存済みログインを置き換えることがある不具合
無人実行・更新主な修正headlessのSIGTERM無視、claude plugin installのSSH鍵なし失敗、npm自動アップデーターの成功誤報

権限とセキュリティの修正は何を塞いだか

件数としては地味ですが、運用への影響が大きいのはこの領域です。

  • bash -cやsh -cのスクリプトの中にある/やホームディレクトリへのrmが、bypassPermissionsモードやシェルのallowルールの下で、プロンプトなしに実行されていました。今回これが止まります
  • PreToolUseとPermissionRequestのフックは、マッチングに失敗した場合やツール入力をJSONにできない場合に、スキップされていました。今回は呼び出しがブロックされます
  • シェルが算術として評価するBASHPIDへの代入は、黙って許可されず、確認を求められます
  • サンドボックスのヒアドキュメントは、本文がプレーンテキストと単純な$VARだけなら、auto-allowの下でも毎回の承認を求められません

bypassPermissionsを使うチームは、bash -c経由の削除がどう扱われるかを見直す価値があります。なお、この検査はCLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1で止められます。ただしこの変数はClaude Codeを起動する環境で設定する必要があり、settingsのenvブロックに書いても無視されます。

--resumeで文脈が欠ける不具合は4件とも症状が同じ

v2.1.288の修正リストで最も数が多い同系統は、--resumeと圧縮(compaction)の組み合わせです。

  1. 圧縮が直前に復元したファイルなどのコンテキストが、--resumeで落ちる
  2. 再開したセッションが、ターンの最後の応答を保存しないことがある。次の--resumeで、プロンプトが未回答に見える
  3. 同じセッションがファイルを書き換えている最中に読み込むと、途中で切れた履歴を読む
  4. 2.1.286以前に始めた会話を再開すると、モデルの過去の思考が落ちる

原因は圧縮・保存・読み込み・旧形式と別々ですが、症状は「再開したら文脈が欠けている」という同じ形です。再開と複製の違いはresumeとforkの違いに整理してあります。2.1.286以前の会話を持ち越しているなら、再開後の1ターン目から思考が戻る点が目に見える変化です。

同じ長時間セッションでも、再開とは別の経路の修正が2件あります。直前の返信のトークン使用量が0と報告されると、自動圧縮が走らず「Prompt is too long」で失敗していました。応答の途中でAPIがタイムアウトしたときは、非対話セッションとサブエージェントが途中までの応答から続行し、思考だけで終わった応答は再試行されます。

CLAUDE.mdとルールの読み込みはWrite・Editでも起きる

パス指定の.claude/rulesとネストしたCLAUDE.mdは、これまでRead(ファイルの読み取り)のときにしか読み込まれませんでした。v2.1.288では、Write・Editでその範囲内のファイルを作成・変更したときにも読み込まれます。

効くのは、ディレクトリごとにルールを分けている構成です。「src/api/配下を書くときはこの規約」と書いたルールが、新規ファイルを作る操作では効いていなかった、という穴が埋まります。InstructionsLoadedフックにも変更があり、サブエージェントのファイルアクセスで読み込まれたルールではagent_idとagent_typeが欠けなくなりました。ファイルアクセスで読み込まれたルールとネストしたCLAUDE.mdは、effortも報告します。

無人実行とログインまわりで変わること

-pやAgent SDKで回している環境には、運用に響く修正が複数あります。

  • headless(-p/SDK)のセッションが、timeoutやsystemdなどの監視側がSIGTERMと一緒にSIGCONTを送ると、SIGTERMを無視することがありました。この不具合が直っています
  • CLAUDE_CODE_RETRY_WATCHDOGを使う無人セッションは、長い応答のストリームが失敗したあと何時間も再試行することがありました。今回からストリーミングをやり直し、3回タイムアウトすると諦めます
  • LSPツールの呼び出しが、言語サーバーが動的な機能登録を使う場合や応答しなくなった場合に無期限に止まっていました。今は60秒でタイムアウトし、サーバーごとのrequestTimeoutで調整できます
  • 新しい環境での最初のリクエストやモデル切替後の最初のリクエストが、サーバー側ではなく組み込みの出力上限と自動圧縮ウィンドウを使っていました。直した結果、そのリクエストは最大1.5秒待つことがあります

ログインでは、保存先の資格情報ストアに書き込めなかったのに/loginが「Login successful」と表示する不具合が直りました。失敗が表示され、ログインが反映されなかったときは再試行が案内されます。--bareのセッションで/loginを実行すると、セッションが読まないサインインを走らせ、保存済みのログインを置き換えるおそれがある問題もありました。今は、どの資格情報が使えるかを案内します。

プラグインとインストールでは、SSHキーを持たないmacOS・Linuxで、GitHubのプラグインに対するclaude plugin installがHTTPSにフォールバックし、通知を出すようになりました。npmの自動アップデーターは、ネイティブバイナリのダウンロードに失敗してclaudeのスタブだけが入った状態でも成功と報告していました。この誤報も直っています。

通知フックでは、idle_promptがバックグラウンドエージェントの実行中にも発火していました。完了通知をidle_promptで受けている構成では、エージェントが動いている間の誤通知が止まります。auto modeでは、会話が長くなりクライアント側の安全分類器が全体を確認しきれないとき、毎回の確認や失敗ではなく圧縮して処理するようになりました。

使い方別の影響早見表

同じバージョンでも、効き方は使い方で大きく分かれます。

使い方明確な恩恵あり条件次第ほぼ影響なし
対話ターミナル・デスクトップ・VS Code明確な恩恵ありプロンプト復元、エージェントビューの検索、バックグラウンドコマンドの時間制限の解除条件次第--max-findings(/code-reviewを使う場合)ほぼ影響なし組み込みのgh api(クラウド向け)
-p・Agent SDK・CI明確な恩恵ありSIGTERM、再試行の修正条件次第環境変数CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTSほぼ影響なしバックグラウンドコマンドの時間制限(解除の対象外)、プロンプト復元
クラウドセッション明確な恩恵あり組み込みのgh api(GitHub CLIが無いイメージ)条件次第エージェントビューのキー操作ほぼ影響なしバックグラウンドコマンドの時間制限(解除の対象外)
Bedrock・Mantle・ゲートウェイ経由明確な恩恵あり構造化出力の失敗、auto modeの分類器切替の修正条件次第環境変数CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTSほぼ影響なしプロンプト復元
OAuthのMCPを使う環境明確な恩恵あり追加スコープ時の再認証条件次第URLプロンプトの待機(完了を検知できないサーバーのみ)ほぼ影響なし他の項目

この版から、ターミナル・デスクトップ・VS Codeの対話セッションにはバックグラウンドコマンドの時間制限がかからなくなりました。制限が適用されるのは、無人実行の-p・Agent SDK・CI・クラウドだけです。長く走らせる開発サーバーなどを対話側で使う人には、関係の深い変更です。

まとめ

/code-reviewを日常的に使う人は--max-findings、MCPのOAuthサーバーを使う人は再認証の案内、複数セッションを回す人はCtrl+Fが効きます。フックや許可ルールで危険な操作を止めているチームは、権限まわりの修正が実行時の判定を変えるため、更新後に既存の自動化を一度通して挙動を確かめる流れが堅実です。

関連ガイド

このバージョン単体の位置づけや前後の版とのつながりは、Claude Code完全ガイドでまとめて確認できます。

この記事を共有:XはてブLinkedIn