# CC Switch v3.14.0

> Hermes Agent が 6 番目の管理対象アプリに、Claude Opus 4.7 をプリセットマトリクス全体へ展開、Gemini Native API プロキシ、「Local Routing」への名称統一、アプリケーションレベルのウィンドウコントロール

**[中文版 →](v3.14.0-zh.md) | [English →](v3.14.0-en.md)**

---

## 概要

CC Switch v3.14.0 は、**Hermes Agent を 6 番目の一等管理対象アプリケーション**として CC Switch に取り込み、**Claude Opus 4.7** をアグリゲーターおよび Bedrock プリセットのマトリクス全体に展開することを中心に据えた大型リリースです。Hermes サポートは、データベース v9 → v10 マイグレーション、完全な Rust コマンド面、アトミックバックアップ付きの YAML ベースな `~/.hermes/config.yaml` 読み書き、MCP 同期、Skills 同期、SQLite + JSONL セッション管理、および Memory エディターを含む専用のフロントエンドパネルをカバーします。Hermes Agent 0.10.0 スキーマに整合する 4 つの API プロトコル（`chat_completions`、`anthropic_messages`、`codex_responses`、`bedrock_converse`）すべてを選択可能です。ユーザーが直接記述した `providers:` dict のエントリは読み取り専用カードとして表示され、深い YAML 設定は Hermes Web UI に委譲されます。

Hermes に加えて、本リリースでは **Gemini Native API プロキシ**（`api_format = "gemini_native"`）を追加し、プロキシがリクエストを Google の `generateContent` エンドポイントに直接転送できるようにしました（完全なストリーミング、スキーマ変換、シャドウリクエストをサポート）。また、旧「Local Proxy Takeover」を三言語の UI / README / ドキュメント全体で **Local Routing** に統一リネームし、コンポジターが描画するボタンが無反応になり得る Linux Wayland などのシーンで、CC Switch が自前で最小化 / 最大化 / 閉じるボタンを描画できるオプション「**アプリケーションレベルのウィンドウコントロール**」を導入しました。さらにリリース直前に、ツールバーからの `hermes dashboard` 直接起動、LemonData の全アプリプリセット、DDSHub の Codex エンドポイント、および複数の Hermes ヘルスチェックと Usage モーダルの修正が追加されました。

セッション側では、`@tanstack/react-virtual` によるセッションリストの**仮想化**で数千件のレコードを持つ長い会話も滑らかにスクロールでき、長いメッセージはデフォルトで折り畳まれます。Usage ダッシュボードには**日付範囲ピッカー**（今日 / 1d / 7d / 14d / 30d + カスタム日時カレンダー）とページジャンプ入力が追加され、**Stream Check エラー分類**は色分けされたトーストで提示され、デフォルトの探索モデルが更新され、「モデルが見つからない」レスポンスを個別に識別するようになりました。また、Local Routing が有効な間に公式プロバイダーへの切り替えを**強制的にブロック**する保護を追加し、公式 API トラフィックがローカルプロキシを経由することによるアカウント停止リスクを防ぎます。Pricing データベースは v8 → v9 で再シードされ、約 50 件の新しいモデルエントリ（Claude 4.7、Opus 4.7 Adaptive Thinking、Grok 4、Qwen 3.5/3.6、MiniMax M2.5/M2.7、Doubao Seed 2.0 系列、GLM-5/5.1 など）を追加し、いくつかの古い価格を修正しました。

**リリース日**: 2026-04-21

**更新規模**: 100 commits | 219 files changed | +20,548 / -3,569 lines

---

## ハイライト

- **Hermes Agent サポート（6 番目の管理対象アプリ）**: データベース v9 → v10 マイグレーション、完全な Rust コマンド面、アトミックバックアップ付き YAML 読み書き、MCP 同期、Skills 同期、SQLite + JSONL セッション管理、専用フロントエンドパネル、4 つの API プロトコル（`chat_completions` / `anthropic_messages` / `codex_responses` / `bedrock_converse`）
- **Claude Opus 4.7 の全面展開**: 適応的思考のホワイトリスト、百万トークン単位の価格シード、Bedrock SKU（`anthropic.claude-opus-4-7` / `global.anthropic.claude-opus-4-7`、旧 `-v1` サフィックスを廃止）、全アグリゲーター / Bedrock プリセットを Opus 4.7 をデフォルト Opus モデルに移行
- **Claude `max` エフォートティア**: エフォートのドロップダウンを `high` から `max` に引き上げ
- **Gemini Native API プロキシ**: 新しい `api_format = "gemini_native"` により、プロキシが Google の `generateContent` に直接転送可能に（完全なストリーミング / スキーマ変換 / シャドウリクエスト対応）
- **GitHub Copilot Enterprise Server**: Copilot ベースの Claude プロバイダーに GHES 認証とエンドポイント設定を追加
- **Copilot 交互消費の大幅最適化**: 転送前の thinking ブロック主動削除、`tool_result` メッセージ分類修正、subagent 検出、`x-interaction-id` 課金マージ、孤立 `tool_result` のサニタイズ、Warmup ダウングレードのデフォルト有効化など、premium 交互消費を系統的に削減
- **セッションリスト仮想化**: 長い会話が滑らかにスクロール。長いメッセージはデフォルトで折り畳まれ、テキストレイアウトコストを削減
- **Codex / OpenClaw セッションタイトル抽出**: 意味のあるタイトルを自動抽出（2 行表示）、OpenClaw の `message_id` 末尾ノイズを除去
- **Usage 日付範囲ピッカー**: Today / 1d / 7d / 14d / 30d プリセットタブ + カスタム日時カレンダー。ページネーションリストにページジャンプ入力
- **Stream Check エラー分類**: エラーを分類し色分けトーストで提示。デフォルト探索モデル更新。「モデルが見つからない」レスポンスを明示的に検出
- **Local Routing 有効時の公式プロバイダー切り替えブロック**: 公式 API トラフィックをローカルプロキシ経由で流すとアカウント停止のリスクがあるため、切り替えを強制ブロックして警告トーストを表示
- **Pricing データベース刷新（v8 → v9）**: 約 50 件の新しいモデルエントリを追加し、古い価格を修正
- **アプリケーションレベルのウィンドウコントロール**: CC Switch が自前で最小化 / 最大化トグル / 閉じるボタンを描画するオプション設定。Linux Wayland での体験を大きく改善
- **統一 Skills 管理への Hermes 追加**: Skill のインストール / 有効化 / フィルターが Hermes をカバー
- **Hermes / OpenClaw 設定ディレクトリのカスタマイズ**: 設定で `~/.hermes/config.yaml` や `openclaw.json` のカスタム位置を指定可能
- **ツールバーからの Hermes Dashboard 起動**: Hermes Web UI のプローブに失敗した際、ツールバーエントリからユーザーの優先ターミナルで `hermes dashboard` を実行可能
- **新パートナープリセット**: LemonData を全 6 アプリにわたって追加、DDSHub の Codex エンドポイント、StepFun Step Plan

---

## 新機能

### Hermes Agent サポート（6 番目の管理対象アプリ）

CC Switch は Hermes Agent を Claude / Codex / Gemini / OpenCode / OpenClaw と並ぶ一等の管理対象アプリとして初めてサポートします。

- **データベースマイグレーション v9 → v10**: `mcp_servers` と `skills` テーブルに `enabled_hermes` カラムを追加（`DEFAULT 0`、自動マイグレーション、データ損失なし）
- **YAML 設定の読み書き**: `~/.hermes/config.yaml` をアトミックバックアップ付きで読み書き。`tests/hermes_roundtrip.rs` が OAuth MCP `auth` ブロックの消失や無関係なキーの汚染を防止
- **4 つの API プロトコル**: Hermes Agent 0.10.0 と整合する `chat_completions` / `anthropic_messages` / `codex_responses` / `bedrock_converse`。新しいディープリンクはデフォルトで `chat_completions`
- **ユーザー `providers:` dict の読み取り専用表示**: YAML に手書きされたプロバイダーエントリは CC Switch で読み取り専用カードとして表示され、深い設定は Hermes Web UI に委譲
- **加算的な切り替え**: Claude / Codex の「上書き」型切り替えと異なり、Hermes ではすべてのプロバイダーが同じ YAML に共存

### Hermes Memory パネル

- `MEMORY.md` / `USER.md` を直接編集できる Memory パネルを追加（有効化スイッチ、文字数制限、ライブ保存フロー付き）
- Hermes の Prompts エントリを置き換え

### Hermes プロバイダープリセット（約 50 個）

- Nous Research、Shengsuanyun（胜算云）、OpenRouter、DeepSeek、Together AI、StepFun、Zhipu GLM、Bailian（百炼）、Kimi、MiniMax、DouBao（豆包）、BaiLing（百灵）、ModelScope（魔搭）、KAT-Coder、PackyCode、Cubence、AIGoCode、RightCode、AICodeMirror、AICoding、CrazyRouter、SSSAiCode、Micu、CTok.ai、DDSHub、E-FlowCode、LionCCAPI、PIPELLM、Compshare、SiliconFlow、AiHubMix、DMXAPI、TheRouter、Novita、Nvidia、Xiaomi MiMo をカバー

### ツールバーからの Hermes Dashboard 起動

- Hermes Web UI のプローブに失敗した際、ツールバーエントリがユーザーの優先ターミナルで `hermes dashboard` を実行する確認ダイアログを表示
- 一時 bash / batch スクリプト経由で起動。`hermes dashboard` 自身が準備完了後にブラウザを開くため、ポーリングは不要
- Memory パネルと Health バナーは既存のトースト動作を維持
- オフラインのトーストにあった古い `hermes web` のヒントも修正（正しいコマンドは `hermes dashboard`）
- Linux ターミナル検出の順序を変更し、`/usr/bin`、`/bin`、`/usr/local/bin` を stat する前に `which` を試すように

### Claude Opus 4.7 サポート

- Claude Opus 4.7 を追加。適応的思考のホワイトリスト、百万トークン単位の価格シード、Bedrock SKU（`anthropic.claude-opus-4-7` / `global.anthropic.claude-opus-4-7`、旧 `-v1` サフィックスを廃止）
- 全アグリゲーター / Bedrock プリセットをデフォルト Opus モデルとして Opus 4.7 に移行

### Claude `max` エフォートティア

- Claude エフォートドロップダウンを `high` から `max` に引き上げ、より強力な推論容量を解放

### Gemini Native API プロキシ

- 新しい `api_format = "gemini_native"` により、プロキシが Google の `generateContent` API に直接転送可能 (#1918, 感謝 @yovinchen)
- 完全なストリーミング、スキーマ変換、シャドウリクエストに対応
- proxy providers モジュール下に `gemini_url.rs`、`gemini_schema.rs`、`gemini_shadow.rs`、`streaming_gemini.rs`、`transform_gemini.rs` を追加

### GitHub Copilot Enterprise Server（GHES）

- Copilot ベースの Claude プロバイダーに GHES 認証とエンドポイント設定を追加 (#2175, 感謝 @hotelbe)

### セッションリスト仮想化

- `@tanstack/react-virtual` によりセッションリストを仮想化。数千件のレコードを持つ長い会話も滑らかにスクロール
- 長いセッションメッセージはデフォルトで折り畳まれ、テキストレイアウトコストを削減

### Codex / OpenClaw セッションタイトル抽出

- Codex と OpenClaw セッションから意味のあるタイトルを自動抽出し、2 行表示
- OpenClaw の `message_id` 末尾ノイズを除去

### Usage 日付範囲ピッカー

- Usage ダッシュボードに日付範囲セレクターを追加。プリセットタブ（Today / 1d / 7d / 14d / 30d）+ カスタム日時カレンダー (#2002, 感謝 @yovinchen)
- ページネーションリストにページジャンプ入力を追加

### モデルマッピングのクイック入力

- プロバイダーフォームのモデルマッピングフィールドの横にクイック入力ボタンを追加し、編集を高速化 (#2179, 感謝 @lispking)

### Stream Check エラー分類

- Stream Check エラーを分類し、色分けトーストとして提示
- デフォルトの探索モデルを各ベンダーの現行ラインナップに合わせて更新
- 「モデルが見つからない」レスポンスを明示的に検出

### Local Routing 有効時の公式プロバイダー切り替えブロック

- Local Routing が有効な状態で公式プロバイダーに切り替えようとすると、強制的にブロックされ警告トーストが表示される
- 理由: 公式 API トラフィックをローカルプロキシ経由で流すとアカウント停止のリスクがあるため

### Pricing データベース刷新（v8 → v9）

- マイグレーション時に定価テーブルを再シード
- Claude 4.7、Opus 4.7 Adaptive Thinking、Grok 4、Qwen 3.5/3.6、MiniMax M2.5/M2.7、Doubao Seed 2.0 系列、GLM-5/5.1 などを含む約 50 件の新しいモデルエントリを追加
- DeepSeek、Kimi K2.5 などの古い価格を修正

### アプリケーションレベルのウィンドウコントロール

- CC Switch が自前で最小化 / 最大化トグル / 閉じるボタンを描画するオプション設定を追加。システム装飾の代わりに使用 (#1119, 感謝 @git1677967754)
- コンポジター描画ボタンが無反応になり得る Linux Wayland での体験を大きく改善

### 統一 Skills 管理への Hermes 追加

- 統一 Skills サーフェスに Hermes を追加
- Skill のインストール / 有効化 / フィルターが、Claude / Codex / Gemini / OpenCode / OpenClaw と並んで Hermes アプリをカバー

### OpenClaw 設定ディレクトリのカスタマイズ

- CC Switch が参照する `openclaw.json` のカスタム位置を設定できるオプションを追加 (#1518, 感謝 @mrFranklin)

### Hermes 設定ディレクトリのカスタマイズ

- CC Switch が参照する `~/.hermes/config.yaml` のカスタム位置を設定できるオプションを追加。データ駆動 dispatch でサポート

### StepFun Step Plan プリセット

- StepFun Step Plan（EN / ZH）プロバイダープリセットを追加 (#2155, 感謝 @hengm3467)

### New API 用量スクリプトテンプレート

- New API の用量スクリプトテンプレートに User-Agent ヘッダーを追加し、上流互換性を向上

### LemonData プロバイダープリセット（全 6 アプリ）

- LemonData をサードパーティパートナープリセットとして Claude、Codex、Gemini、OpenCode、OpenClaw、Hermes の全 6 アプリに登録
- アイコンアセットと zh / en / ja 三言語のパートナー推奨文面を追加
- Claude プリセットは `ANTHROPIC_API_KEY` 認証を使用。OpenAI 互換アプリは `gpt-5.4` をターゲット

### DDSHub Codex プリセット

- DDSHub の Codex 互換エンドポイントを追加（Claude サービスと同じホスト）
- ベース URL は `/v1` サフィックスを省略（ゲートウェイが OpenAI SDK パスを自動ルーティング）

---

## 変更

### 「Local Proxy Takeover」→「Local Routing」

- 三言語の UI 文言、README、ドキュメント全体で用語を統一リネーム
- 機能的な動作は変更なし

### Hermes `Auto` api_mode の削除

- ユーザーは明示的にプロトコルを選択する必要あり。新しいディープリンクはデフォルトで `chat_completions`
- URL ベースのヒューリスティックによる意外な挙動を排除

### Hermes プロバイダーフォーム

- API モードドロップダウンとプロバイダー単位のモデルエディターを追加
- アクティブなプロバイダーを切り替える際、プロバイダー単位のモデルをトップレベルの `model:` にバインド

### Hermes 深い設定の委譲

- 深い YAML 設定は CC Switch フォームで重複させず、「Hermes Web UI を起動」ボタン経由で Web UI に直接委譲

### Hermes ツールバーレイアウト

- Hermes Web UI ボタンのアイコンを `ExternalLink` から `LayoutDashboard` に変更（クリック時に単に URL を開くのではなく `hermes dashboard` を起動する場合があるため、パネル型アイコンのほうが意味的に正確）
- MCP をツールバーの末尾に移動し、Hermes のレイアウトを Claude / Codex / Gemini / OpenCode と揃える

### Claude Quick-Set から `ANTHROPIC_REASONING_MODEL` を削除

- 推論能力とモデル選択を分離。レガシーフィールドは Quick-Set フォームから除外

### プロバイダー単位のプロキシ設定を削除

- グローバルな Local Routing に統合
- プロバイダー単位のプロキシトグルと関連ストレージは削除済み

### ツールバーアイコンボタン幅の統一

- Claude / Codex / Gemini / OpenCode / OpenClaw / Hermes パネルの間でアイコンボタン幅を正規化し、ヘッダーの見た目を統一

### Rust Toolchain を 1.95 にピン留め

- ワークスペース全体で clippy 1.95 の提案を採用し、nightly ドリフトを防ぐためツールチェーンをピン留め

### トレイメニュー ID 定数

- トレイ識別子をハードコーディング文字列 `"main"` から `TRAY_ID` 定数（`"cc-switch"`）に移行。すべての呼び出し箇所で同期 (#1978, 感謝 @lidaxian121)

### Copilot 交互消費の大幅最適化

Copilot リバースプロキシの premium 交互消費を削減するための系統的な最適化。以下の複数の改善をカバー:

- **転送前に thinking ブロックを主動削除**: Anthropic の `thinking` / `redacted_thinking` ブロックは OpenAI 互換エンドポイントに拒否される。従来は上流でリクエストが失敗して premium 交互を 1 回消費した後、`thinking_rectifier` によってリトライされていた。新しい主動削除ステップ（Copilot 最適化パイプラインの 3.5 ステップ目、`tool_result` マージ後）により、この無駄な premium 消費を直接解消
- **リクエスト分類の修正**: `tool_result` を含むメッセージをユーザー発起の新規リクエストではなく、エージェント継続として分類。ツール呼び出しが毎回 premium 交互としてカウントされる問題を防止
- **subagent 検出**: `__SUBAGENT_MARKER__` と `metadata._agent_` フォールバックで subagent を識別し、`x-interaction-type=conversation-subagent` を設定
- **決定論的 `x-interaction-id` による課金マージ**: セッション ID から `x-interaction-id` を導出し、同一セッション内の複数リクエストを 1 回の課金交互に統合
- **孤立 `tool_result` のサニタイズ**: 孤立した `tool_result` を整理し、上流エラーによるリトライおよび重複課金を防止
- **Warmup ダウングレードをデフォルトで有効化**: `gpt-5-mini` をデフォルトのダウングレードモデルとして使用
- **最適化パイプラインの並び替え**: classify → sanitize → merge → warmup の順序で、分類が生の `tool_result` セマンティクスを参照可能に
- `CopilotOptimizerConfig` のデフォルト値の不一致を修正（`gpt-5-mini` に統一）

### 用量スクリプトのイントラネットサポート

- 用量スクリプトからプライベート IP / 不審なホスト名のブロッキングを削除し、エンタープライズイントラネット、Docker、自己ホスト API エンドポイントを解放
- ビルトインテンプレートは引き続き HTTPS（localhost を除く）と同一オリジンチェックを強制。カスタムテンプレートはユーザー制御のまま、リクエスト URL のチェックをスキップ

### Failover キューの備考表示

- プロバイダーの備考が failover キューセレクターとキュー行に表示され、マルチプロバイダーキューでの識別が容易に (#2138, 感謝 @Coconut-Fish)

---

## バグ修正

### 最大化後のツールバー自動折り畳みラッチ

- ウィンドウの最大化 / 復元後、ツールバーが折り畳まれたままになる問題を修正。折り畳み判定はサイズ変更時に再評価される

### Hermes YAML 汚染と OAuth MCP `auth` 消失

- CC Switch 経由でラウンドトリップしても OAuth MCP `auth` ブロックが消失したり、無関係な YAML キーが汚染されたりしなくなった
- `tests/hermes_roundtrip.rs` をガードテストとして追加

### Hermes アクティブプロバイダー表示

- Hermes UI がアクティブプロバイダーを正しく表示するようになり、追加 / 有効化 / 削除アクションが正しく動作

### Hermes プロバイダーの永続化

- プロバイダーは `custom_providers:` の下に永続化され、`api_mode` と `model` が再起動 / 設定再読み込みを生き延びる

### Hermes ヘルスチェックが OpenClaw のスキーマを流用していた問題

- 以前 Hermes プロバイダーは `check_additive_app_stream`（OpenClaw のディスパッチャー）にルーティングされており、これは camelCase の `baseUrl` / `apiKey` / `api` を読むため、Hermes フィールドをすべて記入しても "OpenClaw provider is missing baseUrl" と表示されていた
- `check_hermes_stream` を導入し、Hermes 専用のエクストラクターで `api_mode`（`chat_completions` / `anthropic_messages` / `codex_responses`）を対応する `check_claude_stream` の `api_format` にマッピング。`bedrock_converse` は非対応として返す
- URL / API キーの抽出前に `api_mode` を解決することで、`bedrock_converse` を選んだユーザーには「missing base_url」という誤解を招くメッセージではなく実際の原因が表示される

### Hermes / OpenClaw 向け Usage クエリモーダル

- `getProviderCredentials` が Hermes（snake_case の `base_url` / `api_key`）と OpenClaw（camelCase の `baseUrl` / `apiKey`）のフラットな `settingsConfig` フィールドを読むようになり、SiliconFlow などマッチするプロバイダーで「official balance」テンプレートが自動選択される
- BALANCE と TOKEN_PLAN テストパスをリファクタリングし、`env.ANTHROPIC_*` を直接再読するのではなく、事前計算された `providerCredentials` を再利用するように変更。これにより非 Claude アプリでキーが設定されていても「empty key」エラーが出ていた問題を修正

### Codex `cache_control` 保持

- Codex フォーマット変換中に system prompt をマージする際の `cache_control` を保持 (#1946, 感謝 @yovinchen)

### Claude プロンプトキャッシュキーのリーク

- Claude chat 変換時にプロンプトキャッシュキーを送信しないように修正 (#2003, 感謝 @yovinchen)

### プロキシ Hop-by-Hop レスポンスヘッダーの削除

- RFC 7230 に従ってプロキシレスポンスの hop-by-hop ヘッダー（Connection、Keep-Alive、Transfer-Encoding など）を削除 (#2060, 感謝 @yovinchen)

### プロキシの寛容な CORS レイヤー削除

- プロキシの寛容な CORS レイヤーを削除 (#1915, 感謝 @zerone0x)

### プロキシトーストでのバックエンドエラー詳細表示

- プロキシ関連のトーストメッセージで、汎用的な失敗文字列ではなくバックエンドのエラーペイロードの詳細を表示

### Usage ログの重複排除

- プロキシとセッションログの用量レコードを重複排除し、同じリクエストが二重にカウントされないように修正
- リクエストログの時間範囲をダッシュボードの 1d / 7d / 30d セレクターと同期

### Common Config チェックボックスの永続化

- Claude / Codex / Gemini の common-config トグルのチェック状態が再オープンをまたいで正しく保持されるように修正 (#2191, 感謝 @zxZeng)

### Claude プラグイン `settings.json` 同期

- 現在のプロバイダーを編集すると、Claude プラグインパスの `settings.json` に同期されるように修正 (#1905, 感謝 @chengww5217)

### Google Official Gemini の env 保持

- Google Official Gemini プロバイダーを保存しても `env` ブロックが消えないように修正

### OpenCode の JSON5 による末尾カンマ解析

- OpenCode 設定読み取りが JSON5 パーサーにより末尾カンマを許容するように修正 (#2023, 感謝 @wwminger)

### プリセットの刷新

- DeepSeek と Claude 1M の古いコンテキストウィンドウを刷新
- 古いモデル ID を刷新。Hermes のモデルリストをバックフィル
- Nous エンドポイントを修正し、Hermes のプレースホルダーアイコンを Nous ブランドのアートワークに置き換え
- 未使用の公式 Hermes プリセットを整理

### 検索ヒット時の折り畳みメッセージの自動展開

- 隠されたコンテンツ内部で検索マッチが発生した場合、折り畳みメッセージを自動展開してマッチを示す

### 不明なサブスクリプション配額ティアの非表示

- プロバイダーカードは不明なサブスクリプション配額ティアを表示しないように変更

### weekly_limit ラベルの統一

- `weekly_limit` ティアラベルを公式の「7 日」命名にロケール間で揃えた

### ルートレベルの Skill リポジトリインストール

- リポジトリのルート自体が skill の場合のインストール失敗を修正

### Session ID 解析の clippy 警告

- session ID 解析内の冗長なクロージャを削除（clippy 警告）

### Stream Check デフォルトモデルの刷新

- Stream Check のデフォルト探索モデルを各ベンダーの現行ラインナップに合わせて更新

### Skills インポートの同期

- インポートされた Skills はデータベースに記録されるだけでなく、有効化されたアプリディレクトリにも即座に同期されるように変更 (#2101, 感謝 @yaoguohh)
- UI が「インストール済み」と表示しているのに対象アプリディレクトリに skill が存在しない状態を解消

### Ghostty セッション復元

- Ghostty セッション復元の起動を `--working-directory` 付きのシェル実行に変更 (#1976, 感謝 @Suda202)
- パスにスペースや特殊文字が含まれる場合の `cwd` エスケープ問題を回避

---

## ドキュメント

### README スポンサー更新

- SiliconFlow のサインアップボーナスを ¥16 に更新
- SSSAiCode のスポンサー文面を簡潔化
- パートナーロゴを更新
- 新しいスポンサーとして LemonData を追加

### グローバルプロキシヒントの明確化

- 三言語でグローバルプロキシと Local Routing の関係を明確化

### Takeover → Routing ドキュメントのリネーム

- テイクオーバー関連ドキュメントを三言語で routing にリネームし、アンカーを同期更新

### PIPELLM ウェブサイト URL

- PIPELLM スポンサーのウェブサイト URL を `code.pipellm.ai` に更新

---

## ⚠️ 重要な変更（Breaking）

### Hermes は明示的な `api_mode` が必須

- `Auto` モードは廃止。インポートまたはディープリンクで取得したプロバイダーはデフォルトで `chat_completions`
- 既存の `Auto` 設定のユーザーはプロトコルを選択するよう促される

### Claude Quick-Set から `ANTHROPIC_REASONING_MODEL` を削除

- レガシーフィールドは公開されなくなった。既存の設定は自動的にクリーンアップされる

### プロバイダー単位のプロキシ設定を削除

- グローバル Local Routing 設定に移行
- 既存のプロバイダー単位のプロキシ値は無視される

### データベーススキーマ v9 → v10

- `mcp_servers` と `skills` に `enabled_hermes` カラムを追加
- `DEFAULT 0` で自動マイグレーション、データ損失なし

### Pricing テーブルの再シード（v8 → v9）

- 新しいモデルと修正済み価格を取り込むため、初回起動時に `model_pricing` テーブルがクリアされ再シードされる

### XCodeAPI プリセットの削除

- XCodeAPI プリセットを使用していたユーザーは別のプロバイダーに切り替える必要がある

---

## ⚠️ リスクに関する注意事項

本リリースは、リバースプロキシ型機能について v3.12.3 / v3.13.0 で提起された既存のリスク注意事項を継承します。

**GitHub Copilot リバースプロキシ**: Copilot のリバースプロキシパスを使用すると、GitHub / Microsoft の利用規約に違反する可能性があります。詳細は [v3.12.3 リリースノート](v3.12.3-ja.md#️-リスクに関する注意事項) を参照してください。

**Codex OAuth リバースプロキシ**: ChatGPT サブスクリプションで Codex OAuth リバースプロキシを使用すると、OpenAI の利用規約に違反する可能性があります。詳細は [v3.13.0 リリースノート](v3.13.0-ja.md#️-リスクに関する注意事項) を参照してください。

これらの機能を有効にすることで、ユーザーは**すべての関連リスクを自己責任で受諾**したものとみなされます。CC Switch はこれらの機能の使用に起因するアカウントの制限、警告、サービス停止について一切の責任を負いません。

---

## ダウンロード・インストール

[Releases](https://github.com/farion1231/cc-switch/releases/latest) から対応バージョンをダウンロードしてください。

### システム要件

| OS      | 最小バージョン               | アーキテクチャ                      |
| ------- | ---------------------------- | ----------------------------------- |
| Windows | Windows 10 以降              | x64                                 |
| macOS   | macOS 12 (Monterey) 以降     | Intel (x64) / Apple Silicon (arm64) |
| Linux   | 下表参照                     | x64                                 |

### Windows

| ファイル                                 | 説明                                        |
| ---------------------------------------- | ------------------------------------------- |
| `CC-Switch-v3.14.0-Windows.msi`          | **推奨** - MSI インストーラー、自動更新対応 |
| `CC-Switch-v3.14.0-Windows-Portable.zip` | ポータブル版、解凍して実行、レジストリ不要  |

### macOS

| ファイル                         | 説明                                                     |
| -------------------------------- | -------------------------------------------------------- |
| `CC-Switch-v3.14.0-macOS.dmg`    | **推奨** - DMG インストーラー、Applications にドラッグ   |
| `CC-Switch-v3.14.0-macOS.zip`    | 解凍して Applications にドラッグ、Universal Binary       |
| `CC-Switch-v3.14.0-macOS.tar.gz` | Homebrew インストールと自動更新用                        |

> macOS 版は Apple のコード署名および公証済みで、直接インストールして使用できます。

### Homebrew（macOS）

```bash
brew tap farion1231/ccswitch
brew install --cask cc-switch
```

更新:

```bash
brew upgrade --cask cc-switch
```

### Linux

| ディストリビューション                  | 推奨形式    | インストール方法                                                       |
| --------------------------------------- | ----------- | ---------------------------------------------------------------------- |
| 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`              |
