一覧へ戻る v2.1.129

バックナンバー · BACK ISSUE

v2.1.129

破壊的変更
1 破壊的変更 3 新機能 5 改善 18 修正 · 27 件の変更

--plugin-url、パッケージマネージャの自動更新、いくつかの設定トグルを追加し、最近の既定(ゲートウェイのモデル検出、履歴検索の範囲)を一部元に戻し、プラグインマニフェストのトップレベル themes/monitors を非推奨にします。

破壊的変更 Breaking 1
  • プラグインマニフェスト: themesmonitors"experimental": { ... } 配下で宣言するようになりました。トップレベルの宣言も引き続き動作しますが、claude plugin validate が警告します。

    plugins

    詳しく
    プラグインマニフェスト(プラグインの定義ファイル)で、themesmonitors の宣言場所が "experimental": { ... } 配下へ移されました。従来どおりトップレベルに書いても引き続き動作はしますが、claude plugin validate を実行すると警告が出るようになります。これらの項目を使うプラグインの作者は、警告を避けるためマニフェストの宣言を "experimental" の中へ移す対応をしておくと安心です。
新機能 Feature 3
  • 現在のセッション向けに、URL からプラグインの .zip アーカイブを取得する --plugin-url <url> フラグを追加しました。

    pluginscli

    詳しく
    URL を指定してプラグイン(機能拡張)の .zip アーカイブを直接取得できる --plugin-url <url> フラグが追加されました。これまではプラグインを使うには事前にローカルへ用意したり登録したりする必要がありましたが、今後は起動時にこのフラグを渡すだけで取得できます。取得したプラグインは現在のセッション限りで有効なので、恒久的にインストールせず一時的に試したい人に便利です。
  • 自動検出が見逃すターミナル(例: Emacs の eat)で同期出力を強制的に有効化する CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 環境変数を追加しました。

    uiconfig

    詳しく
    画面のちらつきを防ぐ同期出力(synchronized output、描画をまとめて反映する仕組み)を強制的に有効化する CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 環境変数が追加されました。これまでは対応ターミナルを自動検出していましたが、Emacs の eat のように検出から漏れるターミナルでは同期出力が効きませんでした。そうしたターミナルを使っていて表示が乱れる人は、この環境変数を設定することで改善が期待できます。
  • CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を追加: Homebrew や WinGet のインストールで設定すると、Claude Code がアップグレードコマンドをバックグラウンドで実行し、再起動を促します。

    updaterconfig

    詳しく
    パッケージマネージャ経由のインストールで自動更新を有効にする CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE 環境変数が追加されました。Homebrew(macOS 等)や WinGet(Windows)でインストールした環境でこれを設定すると、Claude Code がアップグレードコマンドをバックグラウンドで実行し、完了後に再起動を促してくれます。これらのパッケージマネージャで導入していて、手動でのアップグレード操作を省きたい人に役立ちます。
改善 Improvement 5
  • /model ピッカー向けのゲートウェイ /v1/models 検出が、CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 によるオプトインになりました(2.1.126〜2.1.128 では自動でした)。

    modelsconfig

    詳しく
    /model のモデル選択画面でゲートウェイの /v1/models を呼び出して利用可能モデルを自動取得する機能が、既定オフ(オプトイン)に変更されました。2.1.126〜2.1.128 では自動で行われていましたが、今後は CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 を設定したときだけ有効になります。ゲートウェイ経由でモデル一覧を自動表示させたい人は、この環境変数を明示的に設定する必要があります。
  • Ctrl+R の履歴ピッカーが、2.1.124 以前の挙動と同じく既定で全プロジェクトの全プロンプトを検索するようになりました。Ctrl+S で現在のプロジェクトやセッションに絞り込めます。

    ui

    詳しく
    Ctrl+R で開く過去プロンプトの検索が、既定で全プロジェクトの全プロンプトを横断する挙動に戻りました。2.1.124 以降は検索範囲が狭まっていましたが、それ以前と同じ全件検索が既定になります。現在のプロジェクトやセッションに絞り込みたい場合は、検索中に Ctrl+S を押せば範囲を切り替えられます。
  • サードパーティのデプロイ(Bedrock・Vertex・Foundry・ANTHROPIC_BASE_URL ゲートウェイ)では、ファーストパーティの Anthropic 機能を指すスピナーのヒントが表示されなくなりました。

    enterpriseui

    詳しく
    Amazon Bedrock・Google Vertex・Foundry・ANTHROPIC_BASE_URL ゲートウェイといったサードパーティ経由でモデルを使う構成で、処理中スピナーに表示されるヒントが調整されました。これまでは Anthropic 公式(ファーストパーティ)の機能を案内するヒントが出ることがありましたが、これらの環境では表示されなくなります。サードパーティ経由でしか使えない機能を案内されて戸惑う、という状況が避けられます。
  • OTel メトリクス claude_code.pull_request.count が、シェルコマンドだけでなく MCP ツール経由で作成された PR/MR も数えるようになりました。

    telemetrygithub

    詳しく
    作成したプルリクエスト数を計測する OpenTelemetry(OTel、計測データの収集規格)メトリクス claude_code.pull_request.count の集計対象が広がりました。これまではシェルコマンド経由で作った PR/MR だけを数えていましたが、今後は MCP ツール経由で作成したものも数えます。テレメトリで PR 作成数を追っているチームで、計測漏れが解消され実態に近い数字になります。
  • ポリシー拒否のエラーメッセージに API リクエスト ID が含まれるようになり、サポートでのデバッグが容易になりました。

    api

    詳しく
    ポリシー(利用方針)による拒否が発生したときのエラーメッセージに、API リクエスト ID が含まれるようになりました。これまでは ID が表示されず、サポートへ問い合わせても該当のリクエストを特定しづらい状態でした。今後はこの ID を伝えることで原因調査がスムーズになり、サポートとのやり取りが楽になります。
修正 Fix 18
  • skillOverrides 設定が機能するようになりました: off はモデルと / から非表示、user-invocable-only はモデルからのみ非表示、name-only は説明を折りたたみます。

    skillsconfig

    詳しく
    スキル(再利用可能な手順セット)ごとの見せ方を制御する skillOverrides 設定が、実際に機能するようになりました。off はモデルからもスラッシュコマンド / の一覧からも非表示にし、user-invocable-only はモデルからのみ隠してユーザーは手動呼び出し可能にし、name-only は説明文を折りたたんで名前だけ見せます。特定のスキルをモデルに自動利用させたくない、あるいは説明を簡潔にしたい人が細かく制御できます。
  • 認識できない 400 ステータスコードの API エラーが、根本のエラーメッセージではなく生の JSON を表示する問題を修正。

    api

    詳しく
    認識できない 400 系ステータスコードの API エラーが、生の JSON のまま表示されてしまう不具合を修正しました。これまでは何が問題だったか分かりにくい JSON が出ていましたが、今後は根本のエラーメッセージが表示されます。エラーの原因を読み取りやすくなり、トラブル時の対処がしやすくなります。
  • 会話の後、/clear がターミナルタブのタイトルをリセットしない問題を修正。

    ui

    詳しく
    会話の後に /clear を実行しても、ターミナルのタブタイトルがリセットされない不具合を修正しました。これまでは会話に合わせて設定されたタブ名がそのまま残っていました。今後は /clear でタブタイトルも元に戻るため、複数タブを使っていて古い会話名が残ると紛らわしい人に役立ちます。
  • 権限などのダイアログがアクティブな間、/rename によるセッションタイトルのチップが消える問題を修正。

    ui

    詳しく
    /rename で付けたセッションタイトルの表示(チップ)が、権限確認などのダイアログが開いている間に消えてしまう不具合を修正しました。これまではダイアログ表示中にタイトルが見えなくなっていました。今後はダイアログ中でもタイトルが表示され続けるので、今どのセッションを操作しているか分かりやすくなります。
  • サブエージェントの実行中にプロンプト下のエージェントパネルが隠れる問題(2.1.122 のリグレッション)を修正。

    agentsui

    詳しく
    サブエージェント(並行して動く補助エージェント)の実行中に、プロンプト下部のエージェントパネルが隠れてしまう不具合を修正しました。これは 2.1.122 で混入したリグレッション(以前は正常だった動作が壊れた退行)です。今後は実行中もパネルが表示され続け、サブエージェントの稼働状況を確認しやすくなります。
  • 外部エディタへの受け渡し(Ctrl+G)が、プロンプト上の会話履歴を空白にする問題を修正。

    ui

    詳しく
    Ctrl+G で入力を外部エディタに渡す操作のあと、プロンプトより上の会話履歴が空白になってしまう不具合を修正しました。これまでは外部エディタへの受け渡し後に過去のやり取りが見えなくなることがありました。今後は履歴が保持されるため、外部エディタで長文を編集する人が安心して使えます。
  • /context が描画した ASCII の可視化グリッドを会話にダンプし、呼び出しごとに約 1.6k トークンを浪費する問題を修正。

    contextui

    詳しく
    /context がコンテキスト使用状況を示す ASCII の図(可視化グリッド)を会話の中にそのまま出力し、呼び出すたびに約 1.6k トークンを無駄に消費していた不具合を修正しました。これまでは表示用の図が会話履歴に取り込まれていました。今後はこの浪費がなくなるため、/context を頻繁に使う人のトークン消費が抑えられます。
  • /agents の Library 一覧の矢印キーナビゲーションを修正: リストがビューポートを超えても、ハイライト中のエージェントが見える状態を保つようになりました。

    agentsui

    詳しく
    /agents の Library(エージェント一覧)で矢印キーを使ったときのスクロール挙動を修正しました。これまでは一覧が画面に収まりきらないと、選択中(ハイライト)のエージェントが見えなくなることがありました。今後はリストが長くても選択中の項目が常に表示範囲に入るため、多数のエージェントから選ぶときに迷いにくくなります。
  • /branch の成功メッセージに、/resume 用の新しいブランチのセッション ID が含まれない問題を修正。

    agents

    詳しく
    /branch で会話を分岐したときの成功メッセージに、新しいブランチのセッション ID が含まれていなかった不具合を修正しました。これまでは後で /resume で再開しようとしても、どの ID を使えばよいか分かりませんでした。今後はメッセージに ID が表示されるため、分岐した会話を後から再開しやすくなります。
  • キーキャップ/ZWJ/肌の色の絵文字を含む太字の見出しが、フルスクリーンモードで末尾の文字を失う問題を修正。

    ui

    詳しく
    キーキャップ・ZWJ(複数の絵文字をつなぐ結合子)・肌の色つきといった複雑な絵文字を含む太字の見出しが、フルスクリーンモードで末尾の文字を欠落させてしまう不具合を修正しました。これまではこうした絵文字を含む見出しが正しく表示されないことがありました。今後は末尾まで正しく表示されるため、絵文字を使う人の表示崩れが解消されます。
  • 保存された OAuth 認証情報に user:inference スコープが欠けているエンタープライズ/チームのユーザーで、サーバー管理の設定ポリシーが適用されない問題を修正。

    enterpriseauth

    詳しく
    サーバー側で管理する設定ポリシーが、一部のエンタープライズ/チームのユーザーで適用されない不具合を修正しました。原因は、保存済みの OAuth 認証情報に user:inference スコープ(権限範囲)が欠けているケースで、こうしたユーザーには管理ポリシーが反映されていませんでした。今後は正しく適用されるため、組織が定めた設定を全員に確実に効かせたい管理者に重要です。
  • スリープからの復帰後、実行中の全セッションをログアウトさせかねない OAuth 更新の競合を修正。

    auth

    詳しく
    スリープからの復帰直後に OAuth トークンの更新処理が競合(レースコンディション、同時実行で起きる衝突)し、実行中の全セッションが一斉にログアウトしてしまうことがある不具合を修正しました。これまではノート PC を閉じて開いた後などに突然サインアウトされる恐れがありました。今後はこの競合が起きないため、複数セッションを開いたまま作業を中断・再開する人が安心して使えます。
  • 1 時間のプロンプトキャッシュ TTL が無言で 5 分に格下げされる問題を修正。

    apiperformance

    詳しく
    プロンプトキャッシュ(プロンプトを一時保存して再利用しコストや時間を抑える仕組み)の有効期限(TTL)が、本来 1 時間のところを無言で 5 分に短縮されてしまう不具合を修正しました。これまではせっかく長めに設定したキャッシュが早く失効していました。今後は意図どおり 1 時間保持されるため、長時間の作業でキャッシュ効果を活かしたい人のコスト・速度面が改善します。
  • /clear やコンパクト化の後に /effort/model を変更すると、キャッシュミスの警告が誤って表示される問題を修正。

    uicontext

    詳しく
    /clear やコンパクト化(会話履歴の要約による圧縮)の後に /effort/model を変更すると、キャッシュミスの警告が誤って表示される不具合を修正しました。これまでは実際には問題がない場面でも警告が出て紛らわしい状態でした。今後は不要な警告が出なくなるため、設定をこまめに切り替える人が惑わされずに済みます。
  • Bash(mkdir *)Bash(touch *) などの許可ルールが、プロジェクト内のパスで尊重されない問題を修正。

    permissionsbash

    詳しく
    Bash(mkdir *)Bash(touch *) のようなコマンド許可ルールが、プロジェクト内のパスに対して正しく適用されない不具合を修正しました。これまではこれらを許可していても、毎回確認を求められることがありました。今後はルールが尊重されるため、ディレクトリ作成やファイル作成を許可済みにしている人の余計な確認プロンプトが減ります。
  • *:// のスキームワイルドカードを持つ deniedMcpServers パターンが、大文字小文字混在のホスト名にマッチしない問題を修正。

    mcppermissions

    詳しく
    MCP サーバーをブロックする設定 deniedMcpServers で、*:// のようにスキーム部分をワイルドカード指定したパターンが、大文字小文字の混在したホスト名にマッチしない不具合を修正しました。これまでは表記の違いで意図したブロックがすり抜けることがありました。今後は大文字小文字を問わず一致するため、特定の MCP サーバーへの接続を確実に拒否したい管理者に重要です。
  • 音声モード中、無害な WebSocket の警告が --debug でエラーとして記録される問題を修正。

    voice

    詳しく
    音声モードの利用中に、害のない WebSocket の警告が --debug 実行時にエラーとしてログ出力されてしまう不具合を修正しました。これまでは問題がないのにエラー扱いされ、ログを見たときに不安を招いていました。今後は適切に扱われるため、デバッグログを確認しながら音声モードを使う人が誤解しにくくなります。
  • [VSCode] /clear が会話コンテキストと表示中のトランスクリプトをクリアしない問題を修正。

    idecontext

    詳しく
    VSCode 上で /clear を実行しても、会話のコンテキストと画面に表示中のトランスクリプト(やり取りの記録)がクリアされない不具合を修正しました。これまでは新しく始めたつもりでも前の会話が残ったままでした。今後は両方が正しくクリアされるため、VSCode 拡張を使っていて会話をリセットしたい人がきちんとまっさらな状態から始められます。
原文 Markdown を表示
## 2.1.129

- Added `--plugin-url <url>` flag to fetch a plugin `.zip` archive from a URL for the current session
- Added `CLAUDE_CODE_FORCE_SYNC_OUTPUT=1` env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs `eat`)
- Added `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restart
- Plugin manifests: `themes` and `monitors` should now be declared under `"experimental": { ... }`. Top-level declarations still work but `claude plugin validate` will warn
- Gateway `/v1/models` discovery for the `/model` picker is now opt-in via `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` (was automatic in 2.1.126–2.1.128)
- Ctrl+R history picker now defaults to searching all prompts across all projects, matching pre-2.1.124 behavior. Press Ctrl+S to narrow to the current project or session
- Third-party deployments (Bedrock, Vertex, Foundry, or `ANTHROPIC_BASE_URL` gateway) no longer see spinner tips pointing at first-party Anthropic surfaces
- `skillOverrides` setting now works: `off` hides from model and `/`, `user-invocable-only` hides from model only, `name-only` collapses description
- The `claude_code.pull_request.count` OTel metric now counts PRs/MRs created via MCP tools, not just shell commands
- Policy refusal error messages now include the API Request ID for easier support debugging
- Fixed API errors with unrecognized 400 status codes showing raw JSON instead of the underlying error message
- Fixed `/clear` not resetting the terminal tab title after a conversation
- Fixed session title chip from `/rename` disappearing while a permission or other dialog is active
- Fixed agent panel below the prompt being hidden when subagents are running (regression in 2.1.122)
- Fixed external-editor handoff (Ctrl+G) blanking the conversation history above the prompt
- Fixed `/context` dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call
- Fixed `/agents` Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport
- Fixed `/branch` success message not including the new branch's session id for `/resume`
- Fixed bold headers with keycap/ZWJ/skin-tone emoji losing trailing characters in fullscreen mode
- Fixed server-managed settings policy not applying for enterprise/team users whose stored OAuth credentials lacked the `user:inference` scope
- Fixed OAuth refresh race after wake-from-sleep that could log out all running sessions
- Fixed 1-hour prompt cache TTL being silently downgraded to 5 minutes
- Fixed cache-miss warning appearing spuriously after `/clear` or compaction when changing `/effort` or `/model`
- Fixed `Bash(mkdir *)`, `Bash(touch *)` and similar allow rules not being honored for in-project paths
- Fixed `deniedMcpServers` patterns with a `*://` scheme wildcard not matching mixed-case hostnames
- Fixed harmless WebSocket warning being logged as an error in `--debug` during voice mode
- [VSCode] Fixed `/clear` not clearing the conversation context and displayed transcript