Claude Code Changelog

v2.1.98

2026年4月9日 GitHub で見る

📝 概要

Google Vertex AI対応、セキュリティ強化、多数のバグ修正を含む大型アップデート

🔄 主な変更点

新機能:

  • Google Vertex AIの対話型セットアップウィザード追加(GCP認証、プロジェクト・リージョン設定を案内)
  • CLAUDE_CODE_PERFORCE_MODE環境変数:読み取り専用ファイル編集時にp4 editヒントを表示
  • Monitor tool:バックグラウンドスクリプトのイベントストリーミング機能
  • Linuxでのサブプロセスサンドボックス化(PID名前空間分離)とCLAUDE_CODE_SCRIPT_CAPSによるスクリプト実行制限
  • /agentsコマンドのタブレイアウト改善(実行中/ライブラリ表示)

セキュリティ修正:

  • Bashツールの権限バイパス脆弱性修正(バックスラッシュエスケープされたフラグの自動許可によるコード実行)
  • 複合Bashコマンドが強制権限プロンプトをバイパスする問題を修正
  • /dev/tcp/.../dev/udp/...へのリダイレクトが自動許可される問題を修正
  • 権限ルールの継承、適用タイミングに関する複数の修正

バグ修正:

  • ストリーミングレスポンスのタイムアウト処理改善
  • 429エラー時のリトライロジック修正(Retry-Afterが小さい値の場合の指数バックオフ適用)
  • macOSテキスト置換、xterm/VSCode統合ターミナルでの大文字入力の問題修正
  • /resumeコマンドの複数の問題修正(絶対パス対応、検索状態保持など)
  • メモリリーク修正(Remote Control権限ハンドラ、サブエージェント関連)

💡 解説・活用案

今回のアップデートでは、Google Cloud環境でのClaude Code利用が大幅に簡素化されました。特にVertex AIユーザーは、ログイン画面から対話形式で設定を完了できるようになり、導入障壁が大幅に下がっています。また、Perforceワークフロー対応やサブプロセスサンドボックス化により、エンタープライズ環境での利用がより安全かつ実用的になりました。セキュリティ面では権限バイパスの脆弱性が複数修正されているため、早急なアップデートを推奨します。

🌐 日本語訳

変更内容

  • ログイン画面で「3rd-party platform」を選択した際にアクセス可能な、対話型Google Vertex AIセットアップウィザードを追加。GCP認証、プロジェクトおよびリージョンの設定、認証情報の検証、モデルのピン留めをガイドします
  • CLAUDE_CODE_PERFORCE_MODE環境変数を追加:設定時、Edit/Write/NotebookEditが読み取り専用ファイルに対して、黙って上書きせずp4 editのヒントと共に失敗します
  • バックグラウンドスクリプトからのイベントをストリーミングするMonitorツールを追加
  • CLAUDE_CODE_SUBPROCESS_ENV_SCRUB設定時、LinuxでPID名前空間分離によるサブプロセスサンドボックス化を追加。また、セッションごとのスクリプト呼び出しを制限するCLAUDE_CODE_SCRIPT_CAPS環境変数を追加
  • printモードにクロスユーザープロンプトキャッシュを改善する--exclude-dynamic-system-prompt-sectionsフラグを追加
  • ステータスラインJSONインプットにworkspace.git_worktreeを追加。カレントディレクトリがリンクされたgit worktree内にある場合に設定されます
  • OTELトレーシングが有効な場合、BashツールのサブプロセスにW3C TRACEPARENT環境変数を追加し、子プロセススパンがClaude Codeのトレースツリーに正しく親付けされるようにしました
  • LSP: Claude Codeが初期化リクエストでclientInfoを介して言語サーバーに自身を識別するようになりました
  • Bashツールの権限バイパス脆弱性を修正:バックスラッシュエスケープされたフラグが読み取り専用として自動許可され、任意のコード実行につながる可能性がありました
  • autoモードおよびbypass-permissionsモードで、複合Bashコマンドが安全性チェックと明示的なaskルールの強制権限プロンプトをバイパスする問題を修正
  • 環境変数プレフィックス付きの読み取り専用コマンドが、変数が既知の安全なもの(LANGTZNO_COLORなど)でない限りプロンプトを表示しない問題を修正
  • /dev/tcp/...または/dev/udp/...へのリダイレクトが自動許可される代わりにプロンプトを表示しない問題を修正
  • ストリーミングレスポンスが停止した場合、タイムアウトする代わりに非ストリーミングモードにフォールバックするよう修正
  • サーバーが小さいRetry-Afterを返す場合、429リトライが約13秒ですべての試行を消費する問題を修正。指数バックオフが最小値として適用されるようになりました
  • 再起動後のトークン更新時にMCP OAuthのoauth.authServerMetadataUrl設定オーバーライドが適用されない問題を修正。ADFSおよび類似のIdPに影響していました
  • kitty keyboard protocolがアクティブな場合、xtermおよびVS Code統合ターミナルで大文字が小文字に変換される問題を修正
  • macOSのテキスト置換が置換文字列を挿入する代わりにトリガーワードを削除する問題を修正
  • Bash経由で保護されたパスへの書き込みを承認した後、--dangerously-skip-permissionsがaccept-editsモードに黙ってダウングレードされる問題を修正
  • 管理者が削除した後も、管理設定の許可ルールがプロセス再起動まで有効のままになる問題を修正
  • permissions.additionalDirectoriesの変更がセッション中に適用されない問題を修正。削除されたディレクトリはすぐにアクセスを失い、追加されたディレクトリは再起動なしで機能するようになりました
  • additionalDirectoriesからディレクトリを削除すると、--add-dir経由で渡された同じディレクトリへのアクセスが取り消される問題を修正
  • Bash(cmd:*)およびBash(git commit *)ワイルドカード権限ルールが、余分なスペースやタブを含むコマンドにマッチしない問題を修正
  • Bash(...)拒否ルールが、cdと他のセグメントを混在させたパイプコマンドに対してプロンプトにダウングレードされる問題を修正
  • cut -d /paste -d /column -s /awk '{print $1}' file、および%を含むファイル名に対する誤ったBash権限プロンプトを修正
  • JavaScriptのprototypeプロパティ(例:toString)に一致する名前の権限ルールがsettings.jsonを黙って無視させる問題を修正
  • --dangerously-skip-permissions使用時、エージェントチームメンバーがリーダーの権限モードを継承しない問題を修正
  • フルスクリーンモードでMCPツール結果にホバーした際のクラッシュを修正
  • フルスクリーンモードで折り返されたURLをコピーする際、改行位置にスペースが挿入される問題を修正
  • --resume時、編集されたファイルが10KBより大きい場合にファイル編集差分がUIから消える問題を修正
  • /resumeピッカーの複数の問題を修正:--resume <name>が編集不可で開く、フィルタリロードが検索状態を消去、空のリストが矢印キーを飲み込む、プロジェクト間の陳腐化、一時的なタスクステータステキストが会話サマリーを置き換える問題
  • /exportが絶対パスと~を尊重せず、ユーザー提供の拡張子を黙って.txtに書き換える問題を修正
  • 未知または将来のモデルIDに対して/effort maxが拒否される問題を修正
  • プラグインのfrontmatter nameがYAMLブールキーワードの場合、スラッシュコマンドピッカーが壊れる問題を修正
  • メッセージ再マウント後にレート制限アップセルテキストが非表示になる問題を修正
  • _meta["anthropic/maxResultSizeChars"]を持つMCPツールがトークンベースの永続化層をバイパスしない問題を修正
  • 音声モードで、前のトランスクリプトがまだ処理中の状態でプッシュツートークキーを再度押したときに、数十個のスペース文字が入力に漏れる問題を修正
  • DISABLE_AUTOUPDATERがnpmベースのインストールでnpmレジストリバージョンチェックとシンボリックリンク変更を完全に抑制しない問題を修正
  • Remote Control権限ハンドラエントリがセッションの存続期間中保持されるメモリリークを修正
  • エラーで失敗したバックグラウンドサブエージェントが親エージェントに部分的な進捗を報告しない問題を修正
  • 長いセッションでprompt-type Stop/SubagentStopフックが失敗する問題と、フック評価API エラーが実際のメッセージの代わりに「JSON validation failed」と表示される問題を修正
  • 却下時のフィードバック調査のレンダリングを修正
  • Bash grep -f FILE / rg -f FILEが作業ディレクトリ外のパターンファイルを読み取る際にプロンプトを表示しない問題を修正
  • 陳腐化したサブエージェントworktreeのクリーンアップが、追跡されていないファイルを含むworktreeを削除する問題を修正
  • macOSでsandbox.network.allowMachLookupが有効にならない問題を修正
  • /resumeフィルタヒントラベルを改善し、フィルタインジケータにプロジェクト/worktree/ブランチ名を追加
  • フッターインジケータ(Focus、通知)を、狭いターミナル幅で折り返す代わりにモードインジケータ行に留まるよう改善
  • /agentsをタブレイアウトで改善:Runningタブはライブサブエージェントを表示し、Libraryタブにはエージェントの実行と実行中インスタンスの表示アクションを追加
  • /reload-pluginsを改善し、再起動なしでプラグイン提供のスキルを取得できるようにしました
  • Accept Editsモードを改善し、安全な環境変数またはプロセスラッパーがプレフィックスされたファイルシステムコマンドを自動承認するようにしました
  • Vimモードを改善:NORMALモードのj/kが履歴をナビゲートし、入力境界でフッターピルを選択するようになりました
  • トランスクリプトのフックエラーを改善し、--debugなしで自己診断できるようstderrの最初の行を含めるようにしました
  • OTELトレーシングを改善:同時SDK呼び出し下でインタラクションスパンが完全なターンを正しくラップし、ヘッドレスターンがターンごとにスパンを終了するようになりました
  • トランスクリプトエントリがストリーミングプレースホルダーの代わりに最終トークン使用量を保持するよう改善
  • /claude-apiスキルをClaude APIと共にManaged Agentsをカバーするよう更新
  • [VSCode] CLAUDE_CODE_GIT_BASH_PATHが設定されているか、Gitがデフォルトの場所にインストールされている場合、Windows上で誤った「requires git-bash」エラーが表示される問題を修正
  • DISABLE_COMPACTが設定されている場合、CLAUDE_CODE_MAX_CONTEXT_TOKENSがそれを尊重するよう修正
  • DISABLE_COMPACTが設定されている場合、/compactヒントを削除
原文(英語)を表示

What's changed

  • Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting "3rd-party platform", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning
  • Added CLAUDE_CODE_PERFORCE_MODE env var: when set, Edit/Write/NotebookEdit fail on read-only files with a p4 edit hint instead of silently overwriting them
  • Added Monitor tool for streaming events from background scripts
  • Added subprocess sandboxing with PID namespace isolation on Linux when CLAUDE_CODE_SUBPROCESS_ENV_SCRUB is set, and CLAUDE_CODE_SCRIPT_CAPS env var to limit per-session script invocations
  • Added --exclude-dynamic-system-prompt-sections flag to print mode for improved cross-user prompt caching
  • Added workspace.git_worktree to the status line JSON input, set whenever the current directory is inside a linked git worktree
  • Added W3C TRACEPARENT env var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree
  • LSP: Claude Code now identifies itself to language servers via clientInfo in the initialize request
  • Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution
  • Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes
  • Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (LANG, TZ, NO_COLOR, etc.)
  • Fixed redirects to /dev/tcp/... or /dev/udp/... not prompting instead of auto-allowing
  • Fixed stalled streaming responses timing out instead of falling back to non-streaming mode
  • Fixed 429 retries burning all attempts in ~13s when the server returns a small Retry-After — exponential backoff now applies as a minimum
  • Fixed MCP OAuth oauth.authServerMetadataUrl config override not being honored on token refresh after restart, affecting ADFS and similar IdPs
  • Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active
  • Fixed macOS text replacements deleting the trigger word instead of inserting the substitution
  • Fixed --dangerously-skip-permissions being silently downgraded to accept-edits mode after approving a write to a protected path via Bash
  • Fixed managed-settings allow rules remaining active after an admin removed them, until process restart
  • Fixed permissions.additionalDirectories changes not applying mid-session — removed directories lose access immediately and added ones work without restart
  • Fixed removing a directory from additionalDirectories revoking access to the same directory passed via --add-dir
  • Fixed Bash(cmd:*) and Bash(git commit *) wildcard permission rules failing to match commands with extra spaces or tabs
  • Fixed Bash(...) deny rules being downgraded to a prompt for piped commands that mix cd with other segments
  • Fixed false Bash permission prompts for cut -d /, paste -d /, column -s /, awk '{print $1}' file, and filenames containing %
  • Fixed permission rules with names matching JavaScript prototype properties (e.g. toString) causing settings.json to be silently ignored
  • Fixed agent team members not inheriting the leader's permission mode when using --dangerously-skip-permissions
  • Fixed a crash in fullscreen mode when hovering over MCP tool results
  • Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks
  • Fixed file-edit diffs disappearing from the UI on --resume when the edited file was larger than 10KB
  • Fixed several /resume picker issues: --resume <name> opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries
  • Fixed /export not honoring absolute paths and ~, and silently rewriting user-supplied extensions to .txt
  • Fixed /effort max being denied for unknown or future model IDs
  • Fixed slash command picker breaking when a plugin's frontmatter name is a YAML boolean keyword
  • Fixed rate-limit upsell text being hidden after message remounts
  • Fixed MCP tools with _meta["anthropic/maxResultSizeChars"] not bypassing the token-based persist layer
  • Fixed voice mode leaking dozens of space characters into the input when re-holding the push-to-talk key while the previous transcript is still processing
  • Fixed DISABLE_AUTOUPDATER not fully suppressing the npm registry version check and symlink modification on npm-based installs
  • Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session
  • Fixed background subagents that fail with an error not reporting partial progress to the parent agent
  • Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message
  • Fixed feedback survey rendering when dismissed
  • Fixed Bash grep -f FILE / rg -f FILE not prompting when reading a pattern file outside the working directory
  • Fixed stale subagent worktree cleanup removing worktrees that contain untracked files
  • Fixed sandbox.network.allowMachLookup not taking effect on macOS
  • Improved /resume filter hint labels and added project/worktree/branch names in the filter indicator
  • Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths
  • Improved /agents with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions
  • Improved /reload-plugins to pick up plugin-provided skills without requiring a restart
  • Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers
  • Improved Vim mode: j/k in NORMAL mode now navigate history and select the footer pill at the input boundary
  • Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without --debug
  • Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn
  • Improved transcript entries to carry final token usage instead of streaming placeholders
  • Updated the /claude-api skill to cover Managed Agents alongside Claude API
  • [VSCode] Fixed false-positive "requires git-bash" error on Windows when CLAUDE_CODE_GIT_BASH_PATH is set or Git is installed at a default location
  • Fixed CLAUDE_CODE_MAX_CONTEXT_TOKENS to honor DISABLE_COMPACT when it is set.
  • Dropped /compact hints when DISABLE_COMPACT is set.