Claude Code 2.1.118 リリース — Vim Visual Mode、カスタムテーマ、MCP OAuth大規模修正
Claude Code 2.1.118では、Vim visual modeの追加やカスタムテーマ管理機能といった新機能に加え、MCP OAuth周りの多数のバグ修正が行われました。特にMCP認証フローの信頼性が大幅に改善されています。
背景
CHANGELOG.mdへの追記として公開された本リリースノートは、エディタ操作の改善、設定管理の統合、フック機能の拡張、そして広範なバグ修正という4つの柱で構成されています。MCP(Model Context Protocol)のOAuth実装に関しては多数の修正が集中しており、認証フローの実装が成熟段階に移行しつつあることを示しています。
技術的な変更
エディタ・UI機能の追加
入力インターフェースが大きく強化されました。Vim visual mode(vキー)とvisual-line mode(Vキー)がサポートされ、選択操作とオペレーターによるテキスト編集が可能になっています。また、/cost と /stats コマンドが /usage に統合されました。両コマンドは引き続きタイピングショートカットとして機能し、それぞれ対応するタブを開く形で後方互換性が維持されています。
カスタムテーマ管理
/theme コマンドから名前付きカスタムテーマの作成と切り替えが可能になりました。テーマの定義は ~/.claude/themes/ 配下にJSONファイルとして手動編集でき、プラグインも themes/ ディレクトリを通じてテーマを同梱・提供できます。
フック機能の拡張
フックから直接MCPツールを呼び出せるようになりました。type: "mcp_tool" を指定することで、フックのコールバック内でMCPサーバーのツールを呼び出すことができます。また、prompt フックがエージェントフック検証サブエージェントによるツールコール時に再発火していた問題も修正されています。
管理・運用向けの追加
更新制御が強化されています。新設の DISABLE_UPDATES 環境変数は、手動の claude update を含む全ての更新パスを完全にブロックします。既存の DISABLE_AUTOUPDATER よりも厳格な制御として位置付けられています。WSL環境では、wslInheritsWindowsSettings ポリシーキーによってWindows側で管理された設定を継承できるようになりました。
Auto Modeの改善
"$defaults" を autoMode.allow、autoMode.soft_deny、autoMode.environment に含めることで、組み込みリストを置き換えるのではなく、カスタムルールを追加する形で設定できるようになりました。また、auto modeのオプトインプロンプトに「Don't ask again」オプションが追加されています。
セッション・ナビゲーションの修正
--continue/--resume オプションが、/add-dir で追加されたディレクトリを含むセッションを正しく検索できるよう修正されました。/fork コマンドはフォークごとに親会話全体をディスクに書き込んでいましたが、ポインタを書き込んで読み取り時にハイドレートする方式に変更され、ディスク使用量が削減されています。
MCP OAuth認証の大規模修正
MCP OAuthフローに関して、以下の問題が修正されています:
-
expires_inを省略したOAuthトークンレスポンスで毎時間再認証を要求される問題 - サーバーの
insufficient_scope403レスポンスが現在のトークンに既に含まれるスコープを指名した場合に、再同意プロンプトではなくサイレントリフレッシュが行われる問題 - OAuthフローのタイムアウト・キャンセル時の未処理Promise rejection
- クロスプロセスロックの競合下でOAuthリフレッシュがロックなしで進行する問題
- macOSキーチェーンの競合状態でMCPトークンの並行リフレッシュが新鮮なトークンを上書きし、予期せぬ「Please run /login」プロンプトが表示される問題
- サーバーがローカルの有効期限前にトークンを失効させた場合のトークンリフレッシュ失敗
-
headersHelperで設定されたサーバー、およびカスタムヘッダー付きHTTP/SSE MCPサーバーで認証アクションが非表示になる問題 -
CLAUDE_CODE_OAUTH_TOKEN環境変数で起動したセッションで/loginが無効になる問題(環境変数トークンをクリアしてディスクの認証情報を有効化するよう修正)
その他のバグ修正
- Linux/WindowsでのCredential保存クラッシュによる
~/.claude/.credentials.json破損 -
--dangerously-skip-permissions実行時にauto modeではなくbypass permissionsを正しく表示 -
Stop/SubagentStop以外のイベント向けに設定されたエージェント型フックが「Messages are required for agent hooks」エラーで失敗する問題 - Alt+K / Alt+X / Alt+^ / Alt+_ によるキーボード入力フリーズ
- リモートセッション接続時にローカルの
model設定が上書きされる問題 - ファイルパスのペースト時に「No commands match」エラーが表示されるタイプアヘッドの問題
- 誤ったバージョンでインストールされた依存関係の再解決が行われない
plugin installの問題 - 無効なパスやfdの枯渇時のファイルウォッチャーの未処理エラー
- JWT リフレッシュ中のCCR初期化一時的障害によるRemote Controlセッションのアーカイブ
-
SendMessageで再開されたサブエージェントが明示的なcwdを復元しない問題
設計判断
MCP OAuth修正群に共通するのは、分散・非同期処理における競合状態の排除という観点です。クロスプロセスロックの競合、macOSキーチェーンの並行アクセス、トークン有効期限の境界ケースなど、複数のプロセスやシステムリソースが絡む箇所に修正が集中しています。CHANGELOGが示す修正の密度は、MCP認証フローが実運用で様々なエッジケースに遭遇していることを反映しています。
/fork の変更は、従来の親会話全体をディスクに書き込む方式から、ポインタを書き込んで読み取り時にハイドレートする方式への切り替えです。この変更により、フォーク操作ごとに発生していた重複データのディスク書き込みが解消されています。
DISABLE_UPDATES は既存の DISABLE_AUTOUPDATER より厳格な制御として明示的に位置付けられており、CHANGELOGにもその違いが記載されています。更新制御に2段階の粒度を持たせることで、異なる管理要件に対応しています。
まとめ
Claude Code 2.1.118は、MCPのOAuth認証実装の信頼性向上を最大の焦点としつつ、Vim visual modeやカスタムテーマといったUX改善、DISABLE_UPDATESによる運用制御の強化を同時に達成したリリースです。MCP認証フローの競合状態に対する修正の集中は、本機能が本番利用において様々なエッジケースに遭遇してきた経緯を反映しており、安定性への継続的な投資が続いていることを示しています。