# Claude Code v2.1.251、モデル切替フックとスペンド上限バーが新登場！

こんにちは、しぃちゃんだよ！今日は Claude Code の最新リリース、v2.1.251 をチェックしてきたよ。地味だけど大事な、フックまわりの新機能とセキュリティ修正がぎゅっと詰まったアップデートなの。

## なにが発表されたの？

情報元は Claude Code Release（GitHub の Releases ページ）だよ。8 月 28 日付で公開された v2.1.251 では、モデル切り替えに介入できる新しいフックイベントや、コスト管理まわりの可視化強化、そして地味に重要なセキュリティ修正がまとめて入っているの。

## 今までどうだったの？

これまでの Claude Code には、モデルが自動で切り替わる瞬間をフックでブロックしたり確認したりする仕組みがなかったよ。バックグラウンドのサブエージェントは状態表示だけで、何をしているかリアルタイムには追えなかったし、`/usage` にはスペンド上限（利用金額の上限）を可視化する項目もなかったの。あと、ファイルの読み書きまわりでは、パーミッションチェックが終わった「あと」にシンボリックリンクをすり替えられると、承認したディレクトリの外を読み書きできてしまう抜け穴も残っていたんだって。

## これで何が変わるの？

今回のアップデートで、開発者はモデル切り替えの挙動を自分のフックでコントロールできるようになったよ。`PreModelSwitch` と `PostModelSwitch` という新しいフックイベントが追加されて、切り替えをブロックしたり、確認を挟んだり、注釈を付けたりできるの。`SessionStart` の再開フックも、セッションがどれくらい古くなっているか（staleness）と再キャッシュにかかる推定コストを受け取れるようになったよ。

Claude apps gateway 配下でスペンド上限（利用額の上限）を設定している開発者には、`/usage` にスペンド上限バーが表示されるようになって、ステータスラインでも `rate_limits.spend_limit` フィールドから確認できるの。`/cost` にはセッションごとのプロンプトキャッシュ状況（ヒット率・ミス数・再キャッシュされたトークン数・ウォーム/コールドの内訳）も表示されるようになったよ。

さらに、フォアグラウンドで動くサブエージェントのツール呼び出しと結果が、Remote Control クライアントにリアルタイムでストリーミングされるようになったの（バックグラウンドのサブエージェントは引き続きステータス表示のみ）。地味だけど、複数エージェントを動かしているときの「今なにしてるの？」が分かりやすくなるはず。

セキュリティ面では、パーミッションチェックのあとにシンボリックリンクをすり替えて承認済みディレクトリの外を読み書きする抜け穴が塞がれたよ。プラグインのマーケットプレイス定義でコマンドのパスがプラグインディレクトリの外を指せてしまう問題も、パストラバーサルエラーとして拒否されるようになったの。

## 深く潜ってみよう

今回のリリースはとにかく修正・改善項目が多いから、気になるものをジャンル別にまとめておくね。

新機能・可視化まわり：
- `claude --help` に attach、logs、stop、respawn、rm が追加。バックグラウンドセッションを再開するときのメッセージも、具体的な attach コマンドを名指しで案内してくれるように
- Grep と Glob が、シンボリックリンク経由でたどり着いたファイルにも Read の deny ルールをちゃんと適用するように修正

セキュリティ・権限まわりの修正：
- プロジェクト設定から詳細なベータトレーシングや生の API ボディログを有効化できてしまう問題、および管理設定やホストアプリが固定した OTLP コレクターを、より狭いスコープのベータトレーシングエンドポイントで迂回できてしまう問題を修正
- Workflow ツールが、パーミッションチェックより前に読み取り権限のない scriptPath を読み込んで、しかもエラーメッセージにそのまま引用してしまう問題を修正
- サンドボックスの TLS 終端・プロキシ経由化・認証情報の注入・サンドボックス分離を弱める設定変更は、管理設定からでも承認が必要になるよう変更
- `ANTHROPIC_CUSTOM_HEADERS` が管理設定やプロジェクト設定から認証情報系・組織テナント系・ルーティング系のヘッダー（Authorization や Host など）を設定する場合は承認が必要になるよう変更

そのほかの改善：
- インストールサイズを縮小（ネイティブバイナリが約 5 MB 削減、あまり使われない 6 言語のシンタックスハイライト削除で追加 2.5 MB 削減）
- SDK MCP サーバーのハンドシェイク応答が失われて無限にハングしていた問題を修正し、70 秒でタイムアウトして該当サーバーだけ失敗扱いにするように
- 対話セッションでの CPU 使用率を、UI の無駄な再描画を減らして改善
- Enterprise のシート課金プランのデフォルトモデルを Opus 5 に変更し、ほかのプレミアムプランと揃えた

## まとめ

- モデル切り替えを制御できる PreModelSwitch / PostModelSwitch フックが追加された
- `/usage` にスペンド上限バー、`/cost` にセッションごとのプロンプトキャッシュ状況が表示されるように
- フォアグラウンドのサブエージェントのツール呼び出しが Remote Control にリアルタイムで流れるように
- シンボリックリンクのすり替えやプラグインパスのトラバーサルなど、地味だけど大事なセキュリティ抜け穴が複数修正された
- `claude --help` の周りやインストールサイズなど、細かい使い勝手も改善

フックで細かく制御したい開発者や、コストとキャッシュ効率を追いたいチーム、複数エージェントを並行運用している人には特に刺さるアップデートだよ！
