期間: 2026-09-21 〜 2026-09-27 · PR 8 件(新機能 2 / 変更・修正 5 / その他 1)

新機能

telemetry: 行にエンジンのバージョン・ベースバージョン・ビルド時刻を記録(#96487)

何ができるようになったか

これまで mod はエンジンが自身のバージョンを公開する前に環境情報を集めていたため、外部ビルドから送られる行にはバージョンが入っていなかった。2.1.281 以降のすべてのビルドで $.session.version() が { version, base?, builtAt? } を返すようになったので、mod はそれを他の環境プローブと一緒に 1 回読み、行の version・version_base・build_time 列を埋めるようになった。

  • 非対応のエンジン: この読み取りに答えないエンジンでは 3 列は空のままで、デバッグログに 1 回だけその旨を出す(行自体は送信される)
  • 型定義: mods/types/claude-code.d.ts に session.version の型を追加

📦 v2.1.283 に収録 · トピック: テレメトリ

telemetry: log / mark をフックとして実装し、$.telemetry を持つエンジンでも動くように(#96917)

何ができるようになったか

$.telemetry.log と $.telemetry.mark の処理は、engine.create で mod が追加する noun のメソッドだったが、noun のイベント telemetry.log / telemetry.mark に対する 2 つのフックに移った。これにより、$.telemetry を自前で提供するエンジンでも同じ mod が動く(既に telemetry があれば engine.create はそのまま渡し、無い場合だけ従来どおり noun を追加する)。

  • 宛先の指定: ログのエントリに to で宛先を指定できる。anthropic(既定)はこの mod が扱い、collector 宛てのエントリは下へ渡される。to は行には含まれない
  • 型定義: types/index.d.ts に TelemetryDestination と省略可能な to を追加
  • 変わらない点: 行の内容・バッチ送信・ゲート・送信内容は変更なし。ルールに反するエントリは理由付きで { deny } され、呼び出し側の promise は従来どおり $.telemetry.log: <reason> で終わるメッセージで reject される

📦 v2.1.283 に収録 · トピック: テレメトリ

変更・修正

diff: command.run フックのコマンド名をリテラルで書き、起動直後のコマンドが待たされないように(#96570)

Before

mod の command.run フックは定数({ command: Names.COMMAND_NAME })でコマンドを指定していた。エンジンのフックモジュールの走査はリテラルのコマンド名しか読めないため「どのコマンドもフックしうる」と扱われ、diff mod の読み込み中は起動直後に入力された /help・/exit などが待たされていた。

After

マッチャーを { command: 'diff' } とリテラルで書くようにした(挙動は同じ)。claude plugin validate mods/diff は command.run{command=diff} と報告する。PR の検証では、起動に 3 秒かかる mod の読み込み中に打った /help が 8.2 秒から 4.5〜4.9 秒で開くようになった。

📦 v2.1.283 · トピック: Diff パネル

diff: 読み取り専用のシェルコマンドの後は diff を再取得しないように(#95423)

Before

パネルを開いている間、diff mod は Bash / PowerShell ツールの呼び出しのたびに diff を再取得していた。

After

ビルトインのパネルと同様、シェルツールの tool.call の結果に isReadOnly が付いているとき(ls、git status、cat、grep など)は再取得を省く。エンジンが isReadOnly を設定しない場合の挙動は従来どおり。

📦 v2.1.283 · トピック: Diff パネル

diff: --no-color を付け、git の色設定を強制していても diff 本文が空にならないように(#96363)

Before

git の設定で color.ui=always や color.diff=always にしていると、mod が実行する git diff の出力に ANSI エスケープが入り、hunk ヘッダーに一致する行が無くなって、各ファイルの下に No diff content と表示されていた(ヘッダーとファイルごとの件数は正しいまま)。

After

共有の diff 引数(DIFF_LEADING_ARGS)に --no-color を加え、mod が起動するすべての git diff(統計・numstat・ファイルの hunk)が設定に関係なくプレーンテキストを返すようにした。

📦 v2.1.283 · トピック: Diff パネル

agents-md: 自動でページ分割された Read は、ネストした AGENTS.md を「渡し済み」と数えないように(#96364)

Before

offset / limit なしでネストした AGENTS.md を Read すると渡し済みと扱われていた。しかし Read ツールのトークン上限を超えるファイルはツールが自動でページ分割するため、モデルには最初のページしか届かず、残りの指示はモデルが自分でページをめくらない限り届かなかった。

After

Read への tool.call フックが結果を確認し、truncatedByTokenCap が付いている・1 行目から始まっていない・ファイルの行数より少ない、のいずれかなら部分的な読み取り(明示の offset / limit と同じ扱い)とし、そのディレクトリ配下の次の Read でファイル全体を添付する。完全な読み取りや構造化レコードの無い結果は従来どおり。

📦 v2.1.283 · トピック: AGENTS.md 対応

diff: ui.focus フックが、エンジンが要素に付けるどちらのプラグイン名にも反応するように(#96953)

Before

ui.focus フックは自分の描いた要素を 1 つの名前('diff')でマッチしていた。この mod を同梱するビルドでは cc-plugin-diff として登録されるため、そこではフックが自分の要素を見失い、インラインのファイル一覧がフォーカスリングに追従しなくなるおそれがあった。

After

マッチャーを PLUGIN_NAMES = ['diff', 'cc-plugin-diff'] の配列(いずれかに一致)にした。フォルダから読み込む場合(--plugin-dir、claude plugin test)は従来どおり diff として動く。

📦 v2.1.283 · トピック: Diff パネル

その他

  • telemetry, agents-md: テスト用プラグインが collector ストリームを名前でフック・呼び出しし、telemetry をイベント経由で代替するように(#96930)📦 v2.1.283