Claude Media
Claude Code v2.1.321 — Fable 5.2の追加と権限判定の抜け穴の修正

Claude Code v2.1.321 — Fable 5.2の追加と権限判定の抜け穴の修正

Claude Code v2.1.321はFable 5.2を追加し、fableエイリアスの指し先を切り替えました。Bashやcp・mvの権限判定、MCP OAuthの秘密情報の送信先など、確認が抜ける経路の修正も並びます。

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

Claude Code v2.1.321で動きが変わる中心は、Fable 5.2の追加、claude remote-control への --settings、確認が抜ける経路の修正の3点です。残りは100件を超える修正と細かな改善です。

要点

v2.1.321で影響が大きい3つの変更

  • Fable 5.2が加わり、fableエイリアスの指し先になった

    モデルIDは claude-fable-5-2 です。コンテキストは1M、単価は入力$8・出力$40(100万トークンあたり)、キャッシュ読み取りは$0.20です。

  • claude remote-controlに --settings が加わった

    指定した設定ファイルを、そのコマンドが起こす全セッションへまとめて適用できます。

  • 権限の確認が飛ぶ経路が複数ふさがれた

    読み取り専用のBashコマンドがsandbox外で動く経路、cp と mv のdenyルール、MCP OAuthの秘密情報の送信先が修正対象です。

先に押さえたいのは、Fable 5.2を使うにはこのバージョン以降が必要な点です。

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

使い方によって、効き方が大きく分かれます。

使い方影響何が変わるか
Fable 5.1を /model で選んで保存している(ProまたはMax)影響明確な恩恵あり(自動で移る)何が変わるか初回起動で fable エイリアスに移り、Fable 5.2で動く
Team・Enterpriseで保存済みのFable 5.1を使っている影響条件次第何が変わるか組織の設定が許すまで移らない。後の起動で移ることも、移らないこともある
permissions のdenyルールで cp と mv を止めている影響明確な恩恵あり何が変わるかディレクトリへのコピー・移動でも、書き込み先に規則が効く
読み取り専用Bashとsandboxを前提に運用している影響明確な恩恵あり何が変わるかsandbox外で確認なしに動く経路が1つふさがる
MCPサーバーをOAuthで使っている影響条件次第何が変わるかサーバーのリダイレクトで、リフレッシュトークンなどが別ホストへ送られる問題が直る
Claude apps gatewayの管理者影響条件次第何が変わるかpolicy_mode: layered の合成範囲、上流のベースURL、エラーメッセージが変わる
Remote Controlをサーバーとして常駐させている影響条件次第何が変わるか設定ファイルを一括適用でき、起動フォルダも固定される
手元の対話利用だけ影響ほぼ影響なし何が変わるか/model の並びとfast modeの表示ラベルが変わる程度

主な変更点

Fable 5.2とモデル周り

claude-fable-5-2 が加わり、fable エイリアスの既定の指し先になりました。変更履歴は「now the default Fable model」と書いています。ただしモデル設定のドキュメントは、どのFableもアカウント種別の既定モデルではなく、明示的に選ぶものだと説明しています。ここでの「既定」は、fable と打ったときに解決される先の話です。

選び方は次のとおりです。

/model fable
/model claude-fable-5-2
/model claude-fable-5-1

1行目は通常の切り替えです。2行目は、Claude apps gatewayのセッションで使います。gatewayでは fable がFable 5を指し、claude-fable-5-2 を配るよう設定されていないgatewayはそのモデルを拒否するためです。3行目は、保存済みの選択が移ったあとにFable 5.1へ戻したいときの指定です。

保存済みのFable 5.1の選択は、fable エイリアスへ移ります。移る条件は、ドキュメントによると次のとおりです。

  • ProとMaxは、v2.1.321以降を初めて動かしたときに移る。ターミナルの起動行に (auto-updated) が1度出ることがある
  • TeamとEnterpriseは、組織の設定が許してから移る。移る場合は次のセッションからで、(auto-updated) の行は出ない
  • ユーザー設定に保存したものだけが対象。プロジェクト・ローカル・管理設定のFable 5.1と、Consoleアカウント、サードパーティのプロバイダーは claude-fable-5-1 のまま
  • 移ったあとは、Fable 5.2の既定のeffortで始まる。effortを自分で指定していれば、その値が使われる

fast modeも、Fable 5.2で使えるようになりました。fast modeのドキュメントによれば、Fable 5.2の単価は入力$16・出力$80です。settings.json の fastMode: true を置いただけでは、Fable 5.2で /fast を実行するまで効きません。Fable 5.2でオンにしたときだけ、次の起動でも保持されます。

今回、fast modeの失敗時の動きも直りました。fast modeの配信側がレート制限・過負荷・障害のときに、返信の取りこぼし、モデルの切り替わり、数分続く再試行が起きていた問題です。修正後は、同じモデルの通常速度を先に試します。/fast、/config、/model のラベルは、現在のモデルがfast modeに対応するときにそのモデル名を出すようになり、VS Codeの行から「(Opus only)」が消えました。

モデル周りの小さな修正は次のとおりです。

  • Enterpriseの席でプランにFableが含まれるのに、Fableへ切り替えた後も「Draws from usage credits」の注記が出る問題を修正
  • 最初のモデルが返信前にブロックされたとき、フォールバックのモデルが依頼を断ったり、止まった応答に触れたりすることがある問題を修正
  • /model ピッカーの「More models」を、番号のない最後の行にした。古いモデルはその下に開き、ほかの番号は振り直されない
  • 画像が1回のリクエストに収まらない会話で、Claudeに「その画像をすでに見たか」が伝わるようになった。同じ画像の繰り返し読み込みも制限される
  • このバージョンから、best エイリアスが opus と同じモデルに解決される。以前のバージョンでは、Fableが使える環境で fable の解決先と同じモデルになる

権限と安全性

今回の修正で目立つのは、確認が出るはずの場所で出なかった経路です。変更履歴の文面はいずれも短く、再現条件の詳細は書かれていません。

  • 読み取り専用のBashコマンドが、確認なしでsandboxの外で動く場合があった
  • Bashの権限チェックが書き込み先のフォルダを取り違え、確認を出さない場合があった
  • ディレクトリを書き込み先にした cp と mv で、実際に書かれるファイルにdenyルールと保護ファイルの確認が効かなかった
  • /bin/cp のようにパスで書いた cp と mv にも、通常の cp と mv と同じパスのチェックを掛けるようにした
  • grep -r foo "$PWD/src" のように $PWD を使った読み取りが確認を求め、パスを直接書くと求めない食い違いを解消した
  • MCP OAuthで、サーバーがリダイレクトしたとき、リフレッシュトークンなどの秘密情報が別のホストへ送られていた

denyルールを使う組織では、cp と mv の修正が分かりやすい恩恵です。ルールの書き方は--permission-mode の解説と合わせて確認できます。

ファイル操作では、ネットワーク上のパス(UNC共有、WSLのフォルダ、/net のマウント)で起きていた問題も直りました。

  • NotebookEdit が、セルを指定しない呼び出しでノートブックの最初のセルを消したり上書きしたりしていた
  • Editが、複数の一致のうち最初を書き換える、空の old_string でファイル全体を置き換える、ノートブックをテキストとして編集する、のいずれかを起こしていた

このほか、NotebookEdit が権限確認の間にノートブックが変わるなどして編集に失敗しても、フックとテレメトリに成功と報告していた問題も直りました。

modsと管理設定

modsは、Claude自身が書く拡張です。今回、権限まわりの扱いが変わりました。

  • Claudeが書くmodは、autoモードとbypassモードでは確認なしで有効になる。管理設定が allowUnsandboxedCommands: false や allowManagedDomainsOnly でも同じ。dontAsk モードでは読み込まれない
  • modが自分で呼ぶツール($.tool.call、$.mcp.call)は、権限確認を出さない。自分のaskルールがあっても、dontAsk や -p の実行でも同じ。denyルールと組織のポリシーは引き続き適用される
  • ヘッドレスのセッションは、.claude/skills のmodのファイルが変わると再読み込みする。止めるには CLAUDE_CODE_PLUGIN_DIR_WATCH=0 を設定する
  • ネストしたスキルの読み込みで、~/.claude/plugins の中にある .claude/skills は、そこのファイルをClaudeが扱うときに読まれなくなった

modsの基本はToken Weather modの作り方、ユーザー導入のmodを止める管理設定はallowManagedModsOnlyの記事にあります。

管理設定の extraKnownMarketplaces も変わりました。宣言した名前を別のソースから追加できなくなり、ほかの場所から来た同名の項目は隠れ、宣言したマーケットプレイスが載せるプラグインはそこから入れ直されます。宣言のない取得元に乗っ取られていた場合は、保存データが cleanupPeriodDays の間だけ脇へ退避され、オプションとシークレットは claude plugin restore-set-aside まで残ります。配布の基本はextraKnownMarketplacesの記事にあります。

Remote Control、Desktop、クラウドセッション

claude remote-control に --settings <file> が加わりました。

claude remote-control --settings ./rc-settings.json

この設定ファイルは、サーバーが起こす全セッションに適用されます。ファイルを書き換えても、claude remote-control を再起動するまで新しいセッションは始まりません。

claude の手前に置く --settings は別扱いです。Remote Controlのドキュメントによると、remote-control の前に置いたグローバルフラグのうち --settings などは引き継がれず、起動が拒否されます。今回の指定は remote-control の後ろに置く形です。同じドキュメントのフラグ表には、まだ --settings の行がありません。

そのほかの変更は、次のとおりです。

  • Remote Controlのセッションは、起動したフォルダを保つ。接続したクライアントが別のフォルダへ移すことはできない
  • 「Queue for later」で送ったメッセージは、実行中のターンの途中ではClaudeに届かなくなった
  • デスクトップアプリが、接続が生きているのに「login expired」でオフと表示することがなくなった
  • 接続が完全に閉じたあとは、履歴のアップロード中でも接続済みと表示されなくなった
  • プロセスがクラッシュしたRemote Controlのセッションが、新しいメッセージを拾うまでの時間を短縮
  • Claude Desktopの「Code」タブのセッションが、ほかのセッションへ送れるメッセージ数を10から20に変更
  • クラウドセッションで、pkill、pgrep、pidwait がセッション自身の親プロセスに当たる問題を修正
  • クラウドセッションが、許可済みのホストなのにネットワークプロキシが接続できないだけで、「おそらく許可されていない」とClaudeに伝えることがなくなった
  • 再起動したクラウドセッションが、大きな画像つきのメッセージを落とす問題と、サブエージェントからメインへのメッセージが未応答のままになる問題を修正
  • ClaudeがUser-Agentを持つシェルコマンドにあなたのアカウントのメールアドレスを含めたときだけ、確認なしで拒否するようにした。ほかのコマンドと定期実行が、その確認で止まらなくなる

Claude apps gateway

gatewayの管理者向けの変更は、動作が変わるものが中心です。

  • policy_mode: layered で、管理されたMCPサーバーが、match: {} を含む該当する全ポリシーを合算するようになった。すでに layered のgatewayは、アップグレード後に配る数が増える
  • Bedrock、Vertex、Foundryの上流は、gatewayの環境にある ANTHROPIC_*_BASE_URL を無視する。別のエンドポイントを使うときは、上流の base_url を設定する
  • 利用上限(spend limit)が、混んだレプリカで確認を減らし、消費を早く記録するようになった
  • 上限エラーの再開時刻が、resets 4pm (America/Los_Angeles) のようにローカル時刻で出る
  • サインイン上限のメッセージが、gatewayの設定名を出さなくなった(gateway側のログには残る)
  • gatewayのエラーメッセージが、ユーザー名やパスワードを含まないアドレスで出る
  • desktop 設定に、gatewayより新しいフィールド(管理MCPサーバーの oauth.omitResource など)があっても、起動を拒否せず警告して配る

フック、SDK、ヘッドレス

  • 大きなフック出力が、同じツール呼び出しの別のフックの出力を指すファイルへ誘導していた問題を修正
  • PreToolUse の ask は、別のフックの defer が先に終わっても失われなくなった
  • 複数のフックが ask を返したとき、組み込み側のアプリが自分のフックの理由を受け取っていた問題を修正
  • stdioとHTTPのMCPサーバーへの PreToolUse mcp_tool フックは、応答が16 MiBを超えると、これまで飛ばされていた。今回から、そのツール呼び出しは拒否される
  • 再生された権限回答を UserPromptSubmit フックが止めると、再起動後のリモートセッションが無応答になる問題を修正。この再生では、このフックが動かなくなった
  • AskUserQuestion が claude -p とSDKのセッションで、未文書化の入力フィールド afkTimeoutMs を設定するホストの権限回答を拒否するようになった
  • Linuxの claude -p は、NFSの容量や割り当てが尽きてトランスクリプトの行を失っても、黙って0で終わらなくなった。エラーを出し、textとjsonの出力では1で終わる
  • claude -p が、バックグラウンドコマンドは10分で止まるのに30分と案内することがなくなった
  • claude agents は、--verbose などと一緒でも、agents の前に打った --permission-mode、--dangerously-skip-permissions、--model、--effort、--agent を無視しなくなった
  • バックグラウンドのコマンド通知と TaskStop の結果は、1,000文字を超えるコマンドの先頭と末尾だけをClaudeに見せる。コンテキストの節約が目的

OS別とVS Codeの修正

  • Windows: 小文字のドライブレターの作業ディレクトリで、最初のシェルコマンドの後、watchPaths の FileChanged フックが止まる問題を修正
  • Windows: 起動と最初のコマンドまでの時間を、ヘルパープロセスなしでPATH上のプログラムを探すことで短縮。標準的なGit for Windowsでは、起動のたびの git.exe の確認もやめた
  • Windows: 自分で起こすプログラム(gitなど)を探すとき、相対パスとUNCのPATH項目、ネットワーク共有へのリンクを飛ばし、設定によるPATHの変更を拾う
  • macOS: 有効なMDMプロファイルの読み込みが遅いとき、起動時に「Unable to read managed policy settings」が出る問題を修正。読み込みを1回やり直し、タイムアウトはタイムアウトとして報告する
  • macOS: ~/Applications にClaude Desktopがあるのに、/desktop が未インストールと答える問題を修正
  • VS Code: 認証トークンとAPIキーが両方あるとき、プロンプトボックスの上に警告を出す(ターミナルの起動時警告と同じ)
  • VS Code: プラグインの権限要求で、隠し文字を含む名前の代わりに「a plugin」と出す
  • claude install とインストールスクリプトが、2〜4秒早く終わる

Fable 5.2への移行は、保存済みの選択を書き換えるところに特徴がある

新モデルの追加は、普通は選択肢が増えるだけです。今回は違い、保存済みのFable 5.1の選択が fable に移ります。ProとMaxでは「初回に自動で」、TeamとEnterpriseでは「組織の許可を待って」という分かれ方で、手元のセッションが知らないうちに別のモデルで動く可能性が出ます。

見るべき箇所は3つです。

  1. 起動直後の /model で、現在のモデルとeffortを確かめる
  2. Fable 5.1に固定したいなら、/model claude-fable-5-1 で戻す(プロジェクト・ローカル・管理設定のFable 5.1は移らないので、この操作は要らない)
  3. gatewayを通すなら、claude-fable-5-2 を配る設定になっているかを管理者に確かめる

Claude Codeがモデルを要求するバージョンは、世代ごとに上がってきました。モデル設定のドキュメントによると、Fable 5.1はv2.1.257以降、Fable 5.2はv2.1.321以降が必要です。

古いバージョンのまま新モデルを要求すると、リクエストが失敗することがあります。バージョンが揃っていないチームでは、切り替える前に claude update を済ませておくと、この失敗を避けやすくなります。

価格面の判断材料は、モデルの違いをFable 5.1とSonnet 5.5の比較で見てから、Fable 5.2の単価($8/$40)を当てはめられます。fast modeは$16/$80で、通常の$8/$40の2倍です。使えない場合の切り分けはfast modeが使えない原因の記事にあります。

まとめ

Fable 5.1を保存してある人は、v2.1.321に上げたあとの /model でモデルとeffortを確認しておくと安全です。固定したいなら /model claude-fable-5-1 を使います。Team・Enterpriseでは、組織の設定次第で移るタイミングが後ろにずれます。

権限をdenyルールやsandboxで運用しているチームは、cp・mv、読み取り専用Bash、$PWD を使った読み取りの修正が入っているため、更新を早めに検討する価値があります。MCPのOAuthを使うなら、秘密情報の送信先の修正も対象です。手元の対話利用だけなら、設定の変更は要りません。

Remote Controlを常駐させているなら、--settings で設定を一括適用できます。ただし設定の変更を反映するには、サーバーの再起動が要ります。gatewayの管理者は、上げる前に layered の合成範囲と上流の base_url を確かめておくと、配信内容の想定外の変化を避けられます。

前のバージョンの変更はv2.1.319の記事とv2.1.318の記事にあります。

関連ガイド

このバージョン単体の位置づけや前後の版とのつながりは、Claude Codeの全体像でまとめて確認できます。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. code.claude.com/docs/en/changelog
  2. code.claude.com/docs/en/model-config
  3. code.claude.com/docs/en/fast-mode
  4. code.claude.com/docs/en/remote-control
この記事を共有:XはてブLinkedIn