本文へスキップ
Claude Media
Claude Code v2.1.118 — Vim Visualモードと、MCP OAuth経路の不具合をまとめて修正

Claude Code v2.1.118 — Vim Visualモードと、MCP OAuth経路の不具合をまとめて修正

Claude Code v2.1.118はVim Visual/Visual-lineモードを追加、/costと/statsを/usageに統合、MCP OAuth経路の認証アクション欠落・毎時再認証・keychain race・credential saveクラッシュなどを修正しました。

読了目安 約7

このリリースで何ができるようになるか

Claude Code v2.1.118は、Vim編集体験とMCP認証経路の信頼性に同時に手を入れた実用リリースです。

  • Vim Visualモード(v)とVisual-lineモード(V)が追加(選択 + オペレータ + 視覚フィードバック付き)
  • /cost/stats/usage に統合(既存の /cost /stats はショートカットとして残置)
  • MCP OAuth経路の不具合がまとめて修正(/mcp メニューの認証アクション欠落、expires_in 省略時の毎時再認証、macOS keychain race、credential saveクラッシュ、CLAUDE_CODE_OAUTH_TOKEN 期限切れ時の /login 無効など)
  • カスタムテーマを /theme から作成 / 切り替え可能に

直前のv2.1.117が既定effort引き上げとNative Glob/Grepという基盤寄りの大変更だったのに対し、本版は既存機能の手触りと信頼性に振った内容です。

あなたの開発フローはどう変わるか

Vimキーバインドを使っているユーザー

v でVisualモード(文字選択)、V でVisual-lineモード(行選択)に入れるようになり、選択状態の視覚フィードバックとオペレータ(削除 / コピー等)が同時に動きます。これまでVimモードはNormal / Insertの往復で完結する必要があり、複数行のヤンクや範囲削除は dd の繰り返しかmotion指定に頼る形でしたが、普段のVimに近い感覚で複数行編集が組めるようになります。

加えてInsert中の Esc 挙動が整理されました。キューに入れたメッセージが入力欄に戻ってしまう挙動が止まり、もう一度Escを押すと割り込みできる二段階に分けられています。

MCPサーバを複数常用している運用

OAuth経路の不具合がまとめて潰されました。単発で踏むと「謎の再認証」「謎の /login 要求」「資格情報ファイル破損」として現れる種類のバグが一度に解消します。具体的には次の経路です。

  • /mcp メニューで headersHelper 設定済みサーバのAuthenticate / Re-authenticateアクションが隠れていた
  • HTTP/SSE MCPサーバがカスタムヘッダー使用時に「needs authentication」状態で固まっていた
  • OAuthトークンレスポンスに expires_in がないと毎時再認証を要求していた
  • step-up authorizationが insufficient_scope 403で再同意プロンプトを出さず無音リフレッシュしていた
  • macOS keychain race(並列MCPトークンリフレッシュが新しいOAuthトークンを上書き)
  • Linux / Windowsでcredential saveがクラッシュし ~/.claude/.credentials.json が破損する経路

複数MCPサーバを常用したりclaude.ai連携を多用したりする環境では、本版をベースラインに置く価値があります。

/cost /stats で利用量を確認しているユーザー

これまでバラバラだったコスト確認とセッション統計が /usage という単一ダッシュボードに集約されました。/cost /stats は内部的に /usage の対応タブを開くショートカットとして残るため、既存スクリプトの書き換えは不要です。VS Code統合側でも /usage がネイティブの「Account & Usage」ダイアログを開くようになり、プレーンテキストでセッションコストだけ返ってくる古い挙動からは脱却しました。

Hooksで外部システム連携を組みたいチーム

Hooksの応答に type: "mcp_tool" を指定することで、Hooksの中からMCPツールを直接呼び出せるようになりました。従来は外部コマンドや内蔵ツール経由のみだったため、PreToolUse / PostToolUse でMCPの検索 / 取得系ツールを差し込みたい場合に別経路を組む必要がありました。本版以降はHooks内で直接MCPツールを叩けます。

IT管理 / 企業ポリシー側

DISABLE_UPDATES 環境変数で、自動更新だけでなく claude update の手動実行を含む全更新経路をブロックできるようになりました。DISABLE_AUTOUPDATER より一段強い制御で、バージョンを固定したい運用に向きます。WSL側Claude CodeがWindows側のmanaged settingsを継承する wslInheritsWindowsSettings ポリシーキーも追加されています。

/fork で会話分岐を多用するチーム

/fork がフォークごとに親会話全体をディスクに書き出していた挙動が、ポインタ書き込み + 読み出し時hydrateに変わりました。ディスク使用量と書き出し時間がフォーク数に比例して伸びていた構造が解消します。

主な変更点

Vim / 入力

  • Vim Visualモード(v)とVisual-lineモード(V)を追加(選択 + オペレータ + 視覚フィードバック)
  • Insert中の Esc がキュー済みメッセージを入力欄へ戻さなくなり、再度Escで割り込み可能に

コマンド / ダッシュボード

  • /cost/stats/usage に統合/cost /stats はショートカットとして残置
  • VS Code: /usage がネイティブ「Account & Usage」ダイアログを開く
  • VS Code: 音声入力が ~/.claude/settings.jsonlanguage 設定を尊重

テーマ / セッション識別

  • カスタムテーマを /theme から作成 / 切り替え可能に(~/.claude/themes/ のJSONを直接編集も可、プラグインも themes/ ディレクトリで配布可能)
  • /color で指定したセッション色が、Remote Control接続時にclaude.ai/code側にも同期

Hooks / 自動化

  • Hooks応答に type: "mcp_tool" を指定してMCPツールを直接呼び出し可能に
  • auto modeの autoMode.allow / soft_deny / environment"$defaults" を含めると、組み込みルールを置換せず追加だけする書き方が可能に
  • auto mode opt-inプロンプトに「Don't ask again」追加
  • claude plugin tag 追加: プラグインのリリースgitタグをバージョン検証付きで作成

管理 / ポリシー

  • DISABLE_UPDATES 環境変数追加: claude update の手動実行も含む全更新経路をブロック(DISABLE_AUTOUPDATER より強い)
  • WSL上のClaude CodeがWindows側managed settingsを継承する wslInheritsWindowsSettings ポリシーキー追加
  • --continue / --resume/add-dir で追加したディレクトリを含むセッションも検出
  • /model ピッカーがカスタム ANTHROPIC_BASE_URL ゲートウェイ使用時に ANTHROPIC_DEFAULT_*_MODEL_NAME / _DESCRIPTION を尊重
  • 別プラグインのバージョン制約でauto-updateがスキップされた場合、/doctor/plugin Errorsタブに表示

修正(MCP OAuth / 認証)

  • /mcp メニューのAuthenticate / Re-authenticateアクションが headersHelper 設定済みサーバで隠れていた
  • HTTP/SSE MCPサーバがカスタムヘッダー使用時に一過性401後「needs authentication」で固まる
  • OAuthトークンレスポンスの expires_in 省略で毎時再認証を要求
  • step-up authorizationが insufficient_scope 403でも無音リフレッシュ
  • OAuthフローのタイムアウト / キャンセル時のunhandled promise rejectionを修正
  • MCP OAuthリフレッシュがcross-process lockの取得失敗時にも実行されていた
  • macOS keychain race(並列MCPトークンリフレッシュが直近のトークンを上書き)
  • OAuthトークンがサーバ側でローカル期限到来前に失効した際にリフレッシュが失敗
  • credential saveクラッシュでLinux / Windowsの ~/.claude/.credentials.json が破損
  • CLAUDE_CODE_OAUTH_TOKEN 環境トークン期限切れ時に /login が効かない(envトークンをクリアしてディスクcredentialsを有効化)

修正(その他)

  • 「new messages」スクロールピル / /plugin バッジで読めない文字色になる問題を修正
  • --dangerously-skip-permissions 起動時のプラン承認ダイアログが「bypass permissions」ではなく「auto mode」を提案していた問題を修正
  • agent-type Hooksが Stop / SubagentStop 以外のイベントで「Messages are required for agent hooks」を出していた問題を修正
  • prompt Hooksがagent-hook verifier subagentのツール呼び出しで再発火していた問題を修正
  • /fork がフォークごとに親会話全体を書き出していた問題を、ポインタ書き込み + 読み出し時hydrateに変更
  • Alt+K / Alt+X / Alt+^ / Alt+_ でキーボード入力がフリーズする問題を修正
  • リモート接続時にローカルの model 設定が上書きされる問題を修正
  • / で始まるファイルパスを貼り付けるとtypeaheadに「No commands match」が出ていた問題を修正
  • plugin install がインストール済みプラグインに対して、間違ったバージョンの依存を再解決していなかった問題を修正
  • ファイル監視の不正パス / fd枯渇時のunhandled errorを修正
  • Remote ControlセッションがJWTリフレッシュ中の一時的なCCR初期化エラーで誤アーカイブされる問題を修正
  • SendMessage 経由で復帰したsubagentが起動時の cwd を復元しない問題を修正

OAuth経路の不具合がまとめて塞がった意味

本版で目立つのはMCP OAuth関連の修正の多さです。/mcp メニューの認証アクション欠落、expires_in 省略時の毎時再認証、step-up authorizationの無音リフレッシュ、cross-process lock不在、macOS keychainのrace、credential saveクラッシュ、CLAUDE_CODE_OAUTH_TOKEN 期限切れ時の /login 無効、いずれも単発では「謎の再認証」「謎の /login 要求」「資格情報ファイル破損」として現れる種類のバグです。

これらが一度に塞がれた背景には、MCP OAuthの利用が運用フェーズに入って実害が表面化してきた流れがありそうです。MCPサーバを1〜2個繋いでいる段階ではraceもlockも滅多に踏まないものの、claude.ai連携や複数MCPサーバの常用が当たり前になってくると、トークン更新の同時発火 / キーチェーン同時アクセス / カスタムヘッダー経路といった分岐が連鎖的に問題を起こします。OAuth経路の安定化は継続的に手が入っているテーマなので、MCPを多段で使っているなら本版以降をベースラインに置く価値があります。

まとめ

  • MCP OAuthを本番運用しているチーム: 認証経路の不具合がまとまって塞がり、「謎の再認証」「謎の /login 要求」が解消します
  • Linux / Windowsでcredential破損を踏んだことがあるチーム: クラッシュ経路が塞がり、~/.claude/.credentials.json の破損リスクが下がります
  • Vimユーザーは更新で操作感が変わる: Visualモードで複数行編集が組みやすくなる
  • /usage 統合は既存スクリプトに影響なし: /cost /stats ショートカットは残るため移行作業不要
  • /fork を多用するチームは推奨: ディスク書き込みの肥大が抑えられる

派手な新機能はありませんが、毎日使うところの摩擦を削った実用版です。次のv2.1.119では /config 設定の永続化など、別系統の改善が続きます。更新は claude update で取得できます。

この記事を共有:XLinkedIn