# Claude Code v2.1.299 登場！アイドル中の自動コンパクションで次のメッセージが軽くなるよ

こんにちは、しぃちゃんだよ！Claude Code の新しいリリース v2.1.299 が出たから、気になるところをぎゅっとまとめて紹介するね。

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

GitHub の Claude Code Release ページで、v2.1.299 のリリースノートが公開されたよ！追加(Added)、変更(Changed)、修正(Fixed)など項目がとても多いリリースだから、ここでは日常の使い方に関わりそうなものを中心に選んだよ。全部の項目は原文のリリースノートで確認してね。

## なぜ重要なの？

Claude Code は長い会話を続けるほど、プロンプトキャッシュの有効期限が効いてくるよね。今回は、そのキャッシュ切れで次のメッセージが重くなる問題に直接効く機能が入ったよ。

あわせて、MCP の許可ルールやスキル名の扱いなど、意図しない動作を防ぐための変更もたくさん入っているの。

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

まずは目玉の追加機能からだよ！

- ターミナルでのアイドル時コンパクション: 200K トークン以上の会話を約 54 分放置すると、1 時間のプロンプトキャッシュが切れる前にコンパクションされる。次のメッセージで全部を再処理しなくて済むよ
- `CLAUDE_CODE_DISABLE_FILE_MENTIONS` 環境変数: `@` でファイルをメンションしたとき、中身ではなくパスだけが Claude に渡され、読み込みは Claude のファイルツールが行う
- agent view で `/effort` と `/fast` が使えて、新しいセッションの開始時設定を決められる。引数なしの `/model`、`/effort`、`/fast` はピッカーを開く
- `claude self-hosted-runner orchestrator` に `--shutdown-drain-sec` が追加。SIGTERM を受けるとポーリングを止めて、実行中のポールとスポーンフックが終わるのを指定秒数まで待つよ

## 深く潜ってみよう

### アイドル時コンパクションの設定

最小トークン数は `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` で変えられて、デフォルトは 200K だよ。無効にしたいときは settings.json に次のように書くの。どちらも v2.1.290 以降が必要だって。

```json
{
  "idleCompaction": false
}
```

### モッド(mod)まわりの追加

プラグインの mod 向けにも追加がたくさんあるよ。

- 管理設定でインストールされた mod の `prompt.submit` フックが、プロンプトに添付された画像やドキュメントのバイト列を `$.prompt.media` で読める
- 管理設定でインストールされた mod は `$.session.identity()` で、サインイン方法や、`forceLoginOrgUUID` が指定する組織の場合はその組織とメールアドレスを取得できる
- mod の Text に `size`、`weight`、`mono`、`tabular`、Box に `xs` から `xl` までの名前付き余白ステップが追加。`bold` は `weight` に置き換えられて非推奨になった
- mod の `skill.prompt` フックが、スキルの frontmatter、ソース、プラグイン名、ファイルパスを受け取れる

### 変更点のうち知っておきたいもの

変更(Changed)の項目は 25 個あったよ。動作が変わるので注意したい点を選ぶね。

- MCP の許可ルールは、名前を書いたサーバーだけに効く。`mcp__a` は `a__b` や `a_` という名前のサーバーを許可しなくなった。サーバー名全体を使って `mcp__{server}__*` の形で書く必要があるよ
- エージェントの `tools:` リストも同様に、指定した MCP サーバーのツールだけを取る。名前に `__` を含むサーバーは `mcp__{whole name}__*` で指定する
- claude.ai のコネクタプロキシと Anthropic ホストの MCP サーバーへのリクエストは、HTTP リダイレクトを追わなくなった
- 終了時に表示される再開コマンドは、セッション名ではなく ID で指定する形になった。名前に含まれる文字列が、貼り付けたときに実行されないようにするためだよ
- `UserPromptSubmit` フックが、スキルやカスタムスラッシュコマンドの展開前に走るようになった。フックがプロンプトをブロックすれば、埋め込みシェルコマンドも止まるよ
- Anthropic 公式の MCP サーバー(`api.anthropic.com`)のツール説明とサーバー指示が、4,096 文字で切られず全文 Claude に届く
- ファイル名やフォルダ名に隠し文字、向きを変える文字、空白に見える文字、`<` `>` を含むスキルやコマンドは、名前を直すまで表示されない
- `/ultrareview` がリポジトリをアップロードできないときのエラーが、`.env` のような未追跡ファイルまでステージしかねない `git add .` を勧めなくなった

## まとめ

- 200K トークン以上の会話は、約 54 分のアイドルでキャッシュ切れ前に自動コンパクションされる(`idleCompaction` で無効化可)
- `CLAUDE_CODE_DISABLE_FILE_MENTIONS` で `@` メンションをパスのみの受け渡しにできる
- MCP の許可ルールとエージェントの `tools:` は、サーバー名を厳密に見るように変わった
- 再開コマンド、フック順序、スキル名の検証など、安全面の調整がたくさん入った

長いセッションを寝かせがちな人や、MCP の許可ルールを書いているチーム、mod を作っている人に刺さるリリースだよ！
