docs/release-notes/v3.19.2-ja.md
本リリースの主軸は数字を正しくし、境界を固めることです。Codex の使用量統計では、カウンターが交錯したファイルを数倍に計上してしまう欠陥を修正しました——アップグレード後の新しいデータは直ちに正しくなり、過去の水増しは手動での 1 回の再構築で正常化できます(「アップグレード時の注意」を参照)。6 項目のセキュリティ強化により、使用量スクリプト・セッションログ・カタログファイル・プロキシがバッファするレスポンスボディの無制限読み取りをすべて上限で抑えました。日常の使い勝手も補いました。MCP / プロンプト / Skills パネルで検索ができるようになり、MCP と Skills はアプリ単位の一括切り替えにも対応。認証センターは ChatGPT アカウントごとのサブスクリプション使用量を表示し、OMO ユーザーは動作する連携を取り戻します。2 つの書き込み経路のバッチ化により、大きなデータベースでのバックアップのインポート・自動同期・使用量の再インポートが頻繁に固まることはなくなりました。本リリースにデータベースマイグレーションはありません。
ANTHROPIC_AUTH_TOKEN のプレースホルダーを書き込み、ダイアログなしでそのまま入れます。~/.omo/omo.jsonc に統一され、旧ファイルは読まれなくなりました。これまでのプロバイダ切り替えは成功したように見えて、実際にはすべて空振りでした。現在は統一設定ファイル(omo.jsonc または omo.json)を検出すると、その "[opencode]" セクションに書き込みます。OMO フォームのモデル選択には、opencode models が実際に報告するランタイムのモデルもマージされます。~/.hermes/SOUL.md に書き込みます。読まれることのない AGENTS.md ではありません。本リリースの変更は使用量統計と拡張管理パネルに集中しています。以下のドキュメントとあわせてお読みください:
[!WARNING]
唯一の公式チャネル(必ずお読みください)
CC Switch は完全に無料・オープンソースのデスクトップアプリで、ユーザーから料金を徴収することはありません。本ソフトウェアは下記の公式チャネルからのみ入手してください:
チャネル 唯一の公式 公式サイト ccswitch.io ソースコード github.com/farion1231/cc-switch ダウンロード GitHub Releases 作者 @farion1231 偽サイト通報 GitHub Issues 料金請求・チャージ・認証情報の提供を求める「CC Switch」サイトやクライアントはすべて偽物です。 支払いを誘導された場合は直ちに操作を中止し、GitHub Issues からご報告ください。
CC Switch v3.19.2 は正確性を主眼としたメンテナンスリリースで、軸は 3 つあります。1 つ目は数字を正しくすることです。Codex のセッションインポーターはカウンターが交錯したファイルで使用量を数倍に計上することがありました(#3011)。本リリースでは「各ターンの明示的な増分を優先し、完全な署名でリプレイを識別する」アルゴリズムに切り替え、約 1,900 件の実セッションファイルのリプレイ検証で締めくくりました。バックアップと使用量インポートの 2 つの書き込み経路も同時にバッチ化され、大きなデータベースでのインポートの固まりが大幅に緩和されます(#2100 も改善が見込まれます)。
2 つ目は境界を固めることです。外部コントリビューターによるセキュリティ強化の一巡で、使用量スクリプトのランタイム、Grok のセッションログ、Codex のカタログファイル、プロキシがバッファするレスポンスボディの無制限読み取りをすべて上限で抑え、ディープリンクのインポート確認ダイアログには、これまで収集していながら表示していなかった 2 つの認証情報フィールドを追加しました。3 つ目は日常の使い勝手を補うことです。MCP / プロンプト / Skills の 3 パネルの検索、MCP と Skills のアプリ単位の一括切り替え、認証センターのアカウントごとのサブスクリプション使用量、そして OMO の統一設定とランタイムモデルの 2 つの適応です。このほか、Copilot のログイン、Hermes のプロンプト、Skill のインストールなど 7 件の個別の不具合修正があります。本リリースにデータベーススキーマのマイグレーションはなく(バージョンは v16 のまま)、アップグレードは軽量です。
リリース日:2026-08-06
変更規模:24 commits | 109 files changed | +12,340 / -1,897 lines
MCP・プロンプト・Skills の 3 つのパネルに共通の検索ボックスが付きました——Esc でクリアでき、内容があるときだけグローバルの「戻る」ショートカットを横取りするため、普段の操作の癖に影響しません。MCP と Skills の一覧上部にあるアプリ別のカウントバッジは 3 状態のトグルボタンになりました。あるアプリを一覧全体でまとめて有効化・無効化でき、1 件ずつスイッチを切り替える日々は終わりです(#5954、#5935)。
一括操作は意図的に並行ではなく直列で実行します——各アプリのライブ設定は単一のファイルで、並行に書き込むと互いに上書きし合うためです。失敗した項目は集めてまとめて報告されます。一括切り替えは検索で絞り込んだ部分集合ではなく一覧全体に作用します。「絞り込んだ結果だけを切り替えたつもりが、実際の状態が不明」という曖昧さを避けるためです。
底層ではデータ層の古い問題も 2 つ修正しました。MCP の切り替えは「行全体を読み、メモリで変更し、行全体を書く」方式から単一カラムのアトミックな UPDATE に変わり、2 つのアプリをほぼ同時に切り替えても更新が失われなくなりました。Skill の更新は保存前にレコードがまだ存在しインストール世代が変わっていないことを再確認するため、遅い更新タスクがアンインストール直後の Skill を復活させることはもうできません。検索インデックスは明示的なホワイトリストで、環境変数とリクエストヘッダが検索対象のテキストに入ることは決してありません。
設定 → 認証センターは、ChatGPT(Codex OAuth)の各アカウントのサブスクリプション使用量をインラインで表示するようになりました。プロバイダカードのフッターがすでに使っているクエリを再利用します——アカウント単位で重複を除き、5 分間キャッシュし、マウント時に 1 回だけ取得してポーリングしません。複数アカウントのユーザーが残量を見るために 1 つずつ切り替える必要はなくなりました。(#4887)
OMO フォームのモデル選択はこれまで静的な一覧だけでした。現在は opencode models も実行し、ローカルにインストールされた OpenCode が実際に報告するモデルをマージします。この補助プロセスは意図的にサンドボックスに閉じ込めています。プロジェクトレベルの設定探索を無効化し、作業ディレクトリを OpenCode の設定ディレクトリに固定するため、フォームを開いただけでどこかのプロジェクトの .opencode/ プラグインが実行されることはありません。全体は 20 秒の制限時間付きで、超過するとプロセスツリーごと終了します(macOS / Linux はプロセスグループ、Windows は taskkill /T、WSL はディストリビューション内の timeout)。失敗した場合はいずれも静的な一覧にフォールバックし、通知を表示します。(#5522)
qwen3.8-max を公式の定価で投入します。100 万 token あたり入力 $2 / 出力 $6、キャッシュ読み取り $0.25、キャッシュ書き込み $2.50(入力価格の 125%、公式の明示的なコンテキストキャッシュ料率)です。「存在しない場合のみ挿入」で投入されるため、自分で変更した価格は影響を受けません。(#6053)
NekoCode と Unity2.ai のパートナープリセットを、すべてのアプリ・README・言語ファイルから削除しました。七牛(Qiniu)プリセットの並び順も調整しています。
セッションインポーターはこれまで、単一の高水位線から累計値の差分を取っていました——1 つのファイルに単調増加のカウンターが 1 つだけならこれで正しいのですが、実際のログには 2 つの交錯形態が存在します。ゲートウェイが同じ変化していないスナップショットをレート制限バケットを変えながら繰り返し再送するものと、本当に異なる 2 つの累計カウンターが交互に現れるものです。旧アルゴリズムはどちらの形態でも再送や交互出現を新しい増分として扱い、現場のファイルでは実測で 6〜8 倍の水増しがありました。
現在のインポーターは、各イベントが明示的に持つ「このターンの使用量」を優先して読み取り、完全な token 署名でリプレイを識別します。重複排除は意図的に狭くしてあります。スナップショットは同じソース自身の直前の署名か直前の token イベントとだけ比較します——他のソースの古い署名とは比較しません。正当なカウンターのリセットは古い数値を再現するため、テーブル全体を走査すると誤って飲み込んでしまうからです。累計値しか持たない旧形式は単一のグローバル基線にフォールバックし、意味はこれまでと同じです。
修正は約 1,900 件・計 1.7 GB の実セッションファイルのリプレイで検証しました。独立に再計算した理想値との差は 0.001% で、残る差分はすべて、旧アルゴリズムがカウンターのリセットを切り詰めて飲み込んでいたリクエストを、新アルゴリズムが正当に救い出したものです。過去のデータは意図的に書き換えません——正常化の方法は「アップグレード時の注意」を参照してください。(#3011、#3015)
サードパーティの Chat ゲートウェイは、まれに関数名のないツール呼び出しを返します。Chat → Responses の変換層はこれまでそれらを黙って破棄したうえ、そのターンを completed と報告していました——Codex には「成功したが何もすることがないターン」が見え、静かにエージェントループを終えていました。診断可能なはずの上流の障害が、無音の停止に変わっていたのです。
現在は、あるターンのツール呼び出しがすべて破棄され使えるものが 1 つも残らなかった場合、ストリーミング経路は response.failed を発行し、非ストリーミング経路は変換エラーを報告します。判定は status == "completed" に限定されるため、finish_reason: length の切り詰めは自身の incomplete の意味を保ちます。3 つの破棄箇所はいずれも、内容を含まない構造化フィールドを記録します——call id の有無、引数のバイト数、終了理由です——#4341 のような問題をようやく実トラフィックから診断できます。有効なツール呼び出しを含むターン、テキストのみのターン、切り詰められたターンの動作は変わりません。
OMO 4.19.3 は設定を ~/.omo/omo.jsonc(次いで omo.json)に統一し、移行時に旧来のアプリ別ファイルを改名して退避します。それ以降、旧パスしか知らない CC Switch は OMO の設定チェーンから外れたファイルに書き込み続けており、プロバイダの切り替えは成功したように見えて、実際にはすべて空振りでした(#5945)。
現在は統一設定ファイルを検出すると、OpenCode の設定を OMO の "[opencode]" セクションに書き込みます——そしてここにしか書きません。OMO はルートのスキーマを厳格に検証し、未知のルートキーが 1 つでもあるとファイル全体を破棄するためです。書き込みはドキュメントを JSON5 として扱います。コメント・キーの順序・行末はそのまま保たれ、内容に変化がなければ書き込みません。さらに毎回の書き込み前に結果を再パースし、意図した内容と意味的に比較します——シリアライズがドキュメントを壊す場合、書き込みは拒否され、元のファイルはそのまま残ります。壊れたファイルを保存することは決してありません(既知の発生条件は「アップグレード時の注意」を参照)。同じ変更で、すべての受管アプリの Windows でのアトミック書き込みを ReplaceFileW に置き換え、旧来の「削除してから改名」の手順で対象ファイルが一瞬存在しなくなる窓を塞ぎました。
新しい Claude Code は未知の API キーに確認ダイアログを表示し、既定で「No (recommended)」が選ばれています——Copilot 引き継ぎがこれまで書き込んでいた ANTHROPIC_API_KEY のプレースホルダーはちょうどこれに当たっていました。推奨に従うとキーは無視され、ユーザーの前には未ログインのセッションが残ります。引き継ぎは現在 ANTHROPIC_AUTH_TOKEN のプレースホルダーを書き込み、ダイアログなしでそのまま入れます。プロバイダフォームの詳細設定で ANTHROPIC_API_KEY フィールドを明示的に選んでいるプロバイダは旧来の動作を保ちます。Copilot の転送経路には、他の経路がすでに持っていた [1M] コンテキストマーカーの除去も追加され、claude-*[1M] 形式のモデル ID がそのまま GitHub の API に送られることはなくなりました。(#5832)
Hermes が ~/.hermes/ から読み込む人格ファイルは SOUL.md で、そこで AGENTS.md を探すことはありません——後者はプロジェクトレベルのコンテキストで、作業ディレクトリから上に向かって探索されるものです。CC Switch のプロンプト管理は Hermes 対応を追加した日から ~/.hermes/AGENTS.md を書いており、Hermes プロンプトを有効にしても生まれるのは読まれないファイルでした。現在は ~/.hermes/SOUL.md を読み書きし、既存の取り込み機構もそのまま働きます。自分で書いた SOUL.md は、置き換えられる前にデータベースへ取り込まれます。(#5777)
ast-grep の公式 Skill をインストールすると「SKILL.md がない」と報告されていました。このリポジトリはルートに Skill と同名のラッパーディレクトリを持ち、本物の Skill はさらに深くに入れ子になっていますが、リゾルバーは名前が一致した最初のディレクトリを返していたのです。ソースディレクトリの解決は現在 SKILL.md 自体をアンカーとします——それを持たないディレクトリが選ばれることはありません——あわせて、この種のリポジトリで更新チェックが「常に更新あり」と報告し続ける幻の通知も直りました。(#4141)
skills.sh の発見フローは Skill の末端のディレクトリ名しか報告しません。インストール時には本物の入れ子ディレクトリを解決できていたのに、保存される README リンクは相変わらず名前からの推測で組み立てられており、開くと 404 でした。リンクは現在、インストーラーが実際に解決したディレクトリから生成されます。修正はインストール経路のみに働きます——旧バージョンで書き込まれたレコードは 1 回再インストールしないと回復しません。「アップグレード時の注意」を参照してください。(#6111)
すべてのアプリタブ・プロファイル切り替え・引き継ぎスイッチを同時に表示するとヘッダが溢れ、「プロバイダを追加」ボタンが切れていました。主要な操作は縮まない領域に固定され、アプリ切り替えは幅を認識するようになりました。収まらないアプリは「その他」のポップオーバーに畳まれ、現在のアプリは常に見えています。
ルート状態インジケーターのパルスアニメーションは、ウィンドウのフォーカスが外れても動き続け、純粋な装飾のために GPU を占有していました。現在はウィンドウのフォーカスが data 属性と CSS を通じて鼓動を制御します——フォーカスが外れるとアニメーションは完全な不透明度で静止し、システムの「視覚効果を減らす」設定では完全に無効になります。データのポーリングは影響を受けません。止まるのは装飾だけです。(#5767)
外部コントリビューターによる 6 項目の強化です(#5919):
while(true) の 1 行でバックエンドのスレッドを永久に固められました。ランタイムは現在、5 秒での中断、16 MiB のメモリ上限、256 KiB のスタック上限を強制します。~/.grok/sessions 配下のシンボリックリンクの環は、これまでスタックオーバーフローを起こせました。model_catalog_json はこれまでファイル名だけを見て任意の絶対パスを信頼していました。現在は Codex の設定ディレクトリの中に解決されることが必須で——canonicalize の後にも再チェックするためシンボリックリンクでは抜け出せません——1 回の読み取りは 32 MiB が上限です。usageAccessToken と usageUserId を解析・保存しながら一度も表示していませんでした。現在はどちらも承認前に表示され、トークンは通常どおりマスクされます。2 つの方向にはそれぞれ独立したコストがありました。エクスポート側はこれまで 1 行ごとに 1 つの INSERT で、大きなバックアップのインポートでは SQLite が数万の文を 1 つずつ解析・準備・破棄していました。現在は 200 行 / 1 MB を 1 バッチとして複数行の INSERT を生成し、文の数は 2 桁減り、バックアップファイル自体も約 4 分の 1 に縮みます。復元側では、WebDAV / S3 の同期インポートのたびにローカル保持のテーブルを書き戻しますが、これまでは 1 行ごとが暗黙のトランザクションでした——1 行につき完全なジャーナル書き込みと fsync を 1 回ずつ払っており、これこそが大きなデータベースで自動同期が周期的にアプリを固める元凶でした。現在は復元全体が単一のトランザクションで完了します。
旧形式の 1 行ずつのバックアップは従来どおりインポートでき、新形式もアプリに同梱されるすべての SQLite のサポート範囲内で、バージョン間で双方向に互換です。#2100 で報告されたマシン間インポートの固まりはこれで緩和される可能性が高いです——実際の結果を同 issue にお寄せください。(#6122)
全量の再インポート——v16 より前の SQL バックアップの取り込み、マシン間復元後のカーソル不一致、手動の再構築で発生します——は、大きなコーパスで CPU コアを数分間占有していました。token イベントの 1 つ 1 つが自動コミットのトランザクションを構成し、1 行ごとにジャーナルの作成 / fsync / 削除のサイクルを丸ごと払い、さらにアーカイブファイルごとにインデックスの効かないカーソル継承クエリを実行していたためです。
現在はイベントを 1,000 件ずつのバッチでコミットし、バッチ間で接続ロックを解放するため UI のクエリが割り込めます。カーソルは最後のバッチと同じトランザクション内で前進するため、クラッシュしてもカーソルがデータより先行することは決してありません。カーソルとモデル価格はパスごとに 1 回先読みされ、頻出の文はプリペアドステートメントのキャッシュを使います。1,920 件 / 1.7 GB の実コーパスは macOS(release ビルド)で 36.3 秒から 11.1 秒に短縮。Windows では 1 行ごとの fsync に数ミリ秒かかるため、絶対的な短縮幅は 1 桁大きくなります。変更の前後で同じコーパスをリプレイして等価性を検証済みです。82,000 行のインポート結果はすべてのエクスポート列でバイト単位に一致し、インポート / スキップの件数も完全に同じです。
v3.19.2 にスキーマのマイグレーションは含まれず(バージョンは v16 のまま)、アップグレード前のバックアップも発生しないため、そのまますぐに利用できます。
交錯カウンターの修正が保証するのは今後の正しさだけです。過去の行は意図的に書き換えず、自動の再構築もありません。ダッシュボードの Codex の数字が明らかに高すぎ、セッションファイルに交錯の形態がある場合は、アップグレード後に**使用量ページ → Codex 使用量のメンテナンス →「Codex 使用量を再構築」**で 1 回だけ手動で再構築してください——再構築の前にデータベースは自動でバックアップされます。削除済みのセッションログに対応する過去の分は再インポートできません。本リリースのインポート高速化により、この再構築は従来より約 3 倍速くなっています。
ほとんどのインストールは影響を受けません。交錯の形態を含まないデータでは、新旧アルゴリズムの差は 1,000 分の 1 以内です。
skills.sh 経由でインストールされ README リンクが 404 になっている既存の Skill は、アンインストールして再インストールすれば正しいリンクに戻ります。その場での「更新」ではリンクは書き換わりません。
バックアップの dump の形式が変わり、同期プロトコルはこれを全体のハッシュで扱う不透明な成果物と見なすため、アップグレード後の最初の WebDAV / S3 同期では db.sql が丸ごと再転送されます——1 回きりで、害はありません。
AUTH_TOKEN のプレースホルダーは、引き継ぎが次にライブ設定を書き換えるときに有効になります——プロバイダを切り替えるか、引き継ぎを再起動してください。プロバイダフォームの詳細設定で ANTHROPIC_API_KEY フィールドを明示的に選んだプロバイダは影響を受けず、選択はそのまま保たれます。
判定の根拠はファイルが存在するかどうかであり、OMO のバージョンではありません。~/.omo/omo.jsonc(または omo.json)が存在すればその場で編集し、どちらも存在しなければ従来どおり旧来の OpenCode 層のファイルに書き込みます。既知の制限:統一設定ファイルにブロックコメント(/* … */)が含まれると、ドキュメント保護のため書き込みはエラーで拒否されます——行コメント(//)は影響を受けません。上流の JSON5 ライターが修正されるまでは、プロバイダを切り替える前にブロックコメントを取り除いてください。
管理パネルの一括アプリ切り替えは、検索で絞り込んだ部分集合ではなく、すべての項目に作用します。
全体のバッファが必要なプロキシレスポンス——非ストリーミングのレスポンスとエラーレスポンス——は、128 MiB を超えると転送されず 502 で失敗します。透過転送のストリーミングレスポンスは影響を受けません。通常の LLM レスポンスは大きくても数 MB なので、この上限に達するのは上流の異常時だけです。この失敗はリクエストを終了させ、次のアドレスへのフェイルオーバーは発生しません。
xAI Grok OAuth サインイン:公式 Grok CLI の公開 OAuth クライアント識別情報を再利用しており、利用によってアカウントの制限や停止につながる恐れがあります——詳細は v3.18.0 release notes を参照してください。
Codex OAuth リバースプロキシ:ChatGPT サブスクリプションの Codex OAuth をリバースプロキシ経由で使用すると、OpenAI の利用規約に違反する可能性があります。詳細は v3.13.0 release notes を参照してください。
SuperGrok の残量照会:プロバイダカードの残量表示は grok.com の非公開の課金エンドポイントに依存しており、xAI がインターフェースを変更すると機能しなくなる可能性があります——詳細は v3.19.0 release notes を参照してください。
サードパーティプロバイダへのルーティング:CC Switch のローカルプロキシで Codex・Claude Desktop・Grok Build のリクエストを変換してサードパーティのプロバイダへ転送する場合、課金・コンプライアンス・データ保持に関する制約はプロバイダごとに異なります。利用前に対象プロバイダの利用規約をお読みください。
上記の機能を有効にした時点で、ユーザーは関連するリスクを自ら引き受けることになります。CC Switch は、これらの機能の利用に起因するアカウントの制限・警告・サービス停止について、一切の責任を負いません。
本リリースの 24 コミットのうち 13 は外部コントリビューターの PR です——9 名のコントリビューターが、使用量のヘッドライン修正からセキュリティ強化まで、ほぼすべての主軸をカバーしました。
total_token_usage が単調増加ではない / 再送が新しい増分として扱われている」と正確に指摘してくださった @KeShih さんに感謝します——本リリースのヘッドライン修正の問題定義はこの報告から直接来ており、#3015 では修正の方向性も先んじて提案してくださいました。Releases から、お使いのシステムに対応するビルドをダウンロードするか、公式サイト ccswitch.io から入手してください(ダウンロードは Cloudflare のエッジノード経由で配信され、GitHub への到達性に依存しません)。
| システム | 最低バージョン | アーキテクチャ |
|---|---|---|
| Windows | Windows 10 以降 | x64 / ARM64 |
| macOS | macOS 12 (Monterey) 以降 | Intel (x64) / Apple Silicon (arm64) |
| Linux | 下表を参照 | x64 / ARM64 |
| ファイル | 説明 |
|---|---|
CC-Switch-v3.19.2-Windows.msi | 推奨 - 自動更���対応の MSI インストーラー |
CC-Switch-v3.19.2-Windows-Portable.zip | ポータブル版、展開してそのまま実行できます |
Windows ARM64 デバイスでは、ファイル名に arm64 が含まれる対応する成果物を選択してください。
| ファイル | 説明 |
|---|---|
CC-Switch-v3.19.2-macOS.dmg | 推奨 - DMG インストーラー、Applications へドラッグ |
CC-Switch-v3.19.2-macOS.zip | 展開して Applications へドラッグ、Universal Binary |
CC-Switch-v3.19.2-macOS.tar.gz | Homebrew インストールと自動更新用 |
Homebrew インストール:
brew install --cask cc-switch
更新:
brew upgrade --cask cc-switch
Linux アセットは x86_64 と ARM64(aarch64)の両方を提供します。ファイル名のアーキテクチャ識別子を、マシンの uname -m 出力に合わせて選択してください:
CC-Switch-v3.19.2-Linux-x86_64.AppImage / .deb / .rpmCC-Switch-v3.19.2-Linux-arm64.AppImage / .deb / .rpm| ディストリビューション | 推奨形式 | インストール方法 |
|---|---|---|
| Ubuntu / Debian / Linux Mint / Pop!_OS | .deb | sudo dpkg -i CC-Switch-*.deb または sudo apt install ./CC-Switch-*.deb |
| Fedora / RHEL / CentOS / Rocky Linux | .rpm | sudo rpm -i CC-Switch-*.rpm または sudo dnf install ./CC-Switch-*.rpm |
| openSUSE | .rpm | sudo zypper install ./CC-Switch-*.rpm |
| Arch Linux / Manjaro | .AppImage | 実行権限を付与して直接実行、または AUR を利用 |
| その他 / 不明な場合 | .AppImage | chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage |