diff --git a/CHANGELOG.md b/CHANGELOG.md
index 00d7b21f3..ee35ee8b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,67 @@ All notable changes to CC Switch will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [Unreleased]
+
+---
+
+## [3.9.0] - 2026-01-07
+
+### Stable Release
+
+This stable release includes all changes from `3.9.0-1`, `3.9.0-2`, and `3.9.0-3`.
+
+### Added
+
+- **Local API Proxy** - High-performance local HTTP proxy for Claude Code, Codex, and Gemini CLI (Axum-based)
+- **Per-App Takeover** - Independently route each app through the proxy with automatic live-config backup/redirect
+- **Auto Failover** - Circuit breaker + smart failover with independent queues and health tracking per app
+- **Universal Provider** - Shared provider configurations that can sync to Claude/Codex/Gemini (ideal for API gateways like NewAPI)
+- **Provider Search Filter** - Quick filter to find providers by name (#435)
+- **Keyboard Shortcut** - Open settings with Command+comma / Ctrl+comma (#436)
+- **Deeplink Usage Config** - Import usage query config via deeplink (#400)
+- **Provider Icon Colors** - Customize provider icon colors (#385)
+- **Skills Multi-App Support** - Skills now support both Claude Code and Codex (#365)
+- **Closable Toasts** - Close button for switch toast and all success toasts (#350)
+- **Skip First-Run Confirmation** - Option to skip Claude Code first-run confirmation dialog
+- **MCP Import** - Import MCP servers from installed apps
+- **Common Config Snippet Extraction** - Extract reusable common config snippets from the current provider or editor content (Claude/Codex/Gemini)
+- **Usage Enhancements** - Model extraction, request logging improvements, cache hit/creation metrics, and auto-refresh (#455, #508)
+- **Error Request Logging** - Detailed logging for proxy requests (#401)
+- **Linux Packaging** - Added RPM and Flatpak packaging targets
+- **Provider Presets & Icons** - Added/updated partner presets and icons (e.g., MiMo, DMXAPI, Cubence)
+
+### Changed
+
+- **Usage Terminology** - Rename "Cache Read/Write" to "Cache Hit/Creation" across all languages (#508)
+- **Model Pricing Data** - Refresh built-in model pricing table (Claude full version IDs, GPT-5 series, Gemini ID formats, and Chinese models) (#508)
+- **Proxy Header Forwarding** - Switch to a blacklist approach and improve header passthrough compatibility (#508)
+- **Failover Behavior** - Bypass timeout/retry configs when failover is disabled; update default failover timeout and circuit breaker values (#508, #521)
+- **Provider Presets** - Update default model versions and change the default Qwen base URL (#517)
+- **Skills Management** - Unify Skills management architecture with SSOT + React Query; improve caching for discoverable skills
+- **Settings UX** - Reorder items in the Advanced tab for better discoverability
+- **Proxy Active Theme** - Apply emerald theme when proxy takeover is active
+
+### Fixed
+
+- **Security** - Security fixes for JavaScript executor and usage script (#151)
+- **Usage Timezone & Parsing** - Fix datetime picker timezone handling; improve token parsing/billing for Gemini and Codex formats (#508)
+- **Windows Compatibility** - Improve MCP export and version check behavior to avoid terminal popups
+- **Windows Startup** - Use system titlebar to prevent black screen on startup
+- **WebView Compatibility** - Add fallback for crypto.randomUUID() on older WebViews
+- **macOS Autostart** - Use `.app` bundle path to prevent terminal window popups
+- **Database** - Add missing schema migrations; show an error dialog on initialization failure with a retry option
+- **Import/Export** - Restrict SQL import to CC Switch exported backups only; refresh providers immediately after import
+- **Prompts** - Allow saving prompts with empty content
+- **MCP Sync** - Skip sync when the target CLI app is not installed
+- **Common Config (Codex)** - Preserve MCP server `base_url` during extraction and remove provider-specific `model_providers` blocks
+- **Proxy** - Improve takeover detection and stability; clean up model override env vars when switching providers in takeover mode (#508)
+- **Skills** - Skip hidden directories during discovery; fix wrong skill repo branch
+- **Settings Navigation** - Navigate to About tab when clicking update badge
+- **UI** - Fix dialogs not opening on first click and improve window dragging area in `FullScreenPanel`
+
+---
+
## [3.9.0-3] - 2025-12-29
### Beta Release
@@ -63,6 +124,34 @@ Third beta release with important bug fixes for Windows compatibility, UI improv
---
+## [3.9.0-2] - 2025-12-20
+
+### Beta Release
+
+Second beta release focusing on proxy stability, import safety, and provider preset polish.
+
+### Added
+
+- **DMXAPI Partner** - Added DMXAPI as an official partner provider preset
+- **Provider Icons** - Added provider icons for OpenRouter, LongCat, ModelScope, and AiHubMix
+
+### Changed
+
+- **Proxy (OpenRouter)** - Switched OpenRouter to passthrough mode for native Claude API
+
+### Fixed
+
+- **Import/Export** - Restrict SQL import to CC Switch exported backups only; refresh providers immediately after import
+- **Proxy** - Respect existing Claude token when syncing; add fallback recovery for orphaned takeover state; remove global auto-start flag
+- **Windows** - Add minimum window size to Windows platform config
+- **UI** - Improve About section UI (#419) and unify header toolbar styling
+
+### Stats
+
+- 13 commits since v3.9.0-1
+
+---
+
## [3.9.0-1] - 2025-12-18
### Beta Release
@@ -555,8 +644,8 @@ v3.7.0 represents a major evolution from "Provider Switcher" to **"All-in-One AI
### ⚠ Breaking Changes
-- Tauri 命令仅接受参数 `app`(取值:`claude`/`codex`);移除对 `app_type`/`appType` 的兼容。
-- 前端类型命名统一为 `AppId`(移除 `AppType` 导出),变量命名统一为 `appId`。
+- Tauri commands only accept the `app` parameter (`claude`/`codex`); removed `app_type`/`appType` compatibility.
+- Frontend types are standardized to `AppId` (removed `AppType` export); variable naming is standardized to `appId`.
### ✨ New Features
@@ -799,40 +888,3 @@ For users upgrading from v2.x (Electron version):
- Basic provider management
- Claude Code integration
- Configuration file handling
-
-## [Unreleased]
-
-### ⚠️ Breaking Changes
-
-- **Runtime auto-migration from v1 to v2 config format has been removed**
- - `MultiAppConfig::load()` no longer automatically migrates v1 configs
- - When a v1 config is detected, the app now returns a clear error with migration instructions
- - **Migration path**: Install v3.2.x to perform one-time auto-migration, OR manually edit `~/.cc-switch/config.json` to v2 format
- - **Rationale**: Separates concerns (load() should be read-only), fail-fast principle, simplifies maintenance
- - Related: `app_config.rs` (v1 detection improved with structural analysis), `app_config_load.rs` (comprehensive test coverage added)
-
-- **Legacy v1 copy file migration logic has been removed**
- - Removed entire `migration.rs` module (435 lines) that handled one-time migration from v3.1.0 to v3.2.0
- - No longer scans/merges legacy copy files (`settings-*.json`, `auth-*.json`, `config-*.toml`)
- - No longer archives copy files or performs automatic deduplication
- - **Migration path**: Users upgrading from v3.1.0 must first upgrade to v3.2.x to automatically migrate their configurations
- - **Benefits**: Improved startup performance (no file scanning), reduced code complexity, cleaner codebase
-
-- **Tauri commands now only accept `app` parameter**
- - Removed legacy `app_type`/`appType` compatibility paths
- - Explicit error with available values when unknown `app` is provided
-
-### 🔧 Improvements
-
-- Unified `AppType` parsing: centralized to `FromStr` implementation, command layer no longer implements separate `parse_app()`, reducing code duplication and drift
-- Localized and user-friendly error messages: returns bilingual (Chinese/English) hints for unsupported `app` values with a list of available options
-- Simplified startup logic: Only ensures config structure exists, no migration overhead
-
-### 🧪 Tests
-
-- Added unit tests covering `AppType::from_str`: case sensitivity, whitespace trimming, unknown value error messages
-- Added comprehensive config loading tests:
- - `load_v1_config_returns_error_and_does_not_write`
- - `load_v1_with_extra_version_still_treated_as_v1`
- - `load_invalid_json_returns_parse_error_and_does_not_write`
- - `load_valid_v2_config_succeeds`
diff --git a/README.md b/README.md
index e3ba6fcb9..3cd98c41b 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
# All-in-One Assistant for Claude Code, Codex & Gemini CLI
-[](https://github.com/farion1231/cc-switch/releases)
+[](https://github.com/farion1231/cc-switch/releases)
[](https://github.com/farion1231/cc-switch/releases)
[](https://tauri.app/)
[](https://github.com/farion1231/cc-switch/releases/latest)
@@ -52,7 +52,7 @@ This project is sponsored by Z.ai, supporting us with their GLM CODING PLAN.GLM
## Features
-### Current Version: v3.8.3 | [Full Changelog](CHANGELOG.md) | [Release Notes](docs/release-note-v3.8.0-en.md)
+### Current Version: v3.9.0 | [Full Changelog](CHANGELOG.md) | [Release Notes](docs/release-note-v3.9.0-en.md)
**v3.8.0 Major Update (2025-11-28)**
diff --git a/README_JA.md b/README_JA.md
index d20d8adb3..d93eb9691 100644
--- a/README_JA.md
+++ b/README_JA.md
@@ -2,14 +2,14 @@
# Claude Code / Codex / Gemini CLI オールインワン・アシスタント
-[](https://github.com/farion1231/cc-switch/releases)
+[](https://github.com/farion1231/cc-switch/releases)
[](https://github.com/farion1231/cc-switch/releases)
[](https://tauri.app/)
[](https://github.com/farion1231/cc-switch/releases/latest)
-[English](README.md) | [中文](README_ZH.md) | 日本語 | [Changelog](CHANGELOG.md) | [v3.8.0 リリースノート](docs/release-note-v3.8.0-en.md)
+[English](README.md) | [中文](README_ZH.md) | 日本語 | [Changelog](CHANGELOG.md) | [v3.9.0 リリースノート](docs/release-note-v3.9.0-ja.md)
@@ -52,7 +52,7 @@
## 特長
-### 現在のバージョン:v3.8.3 | [完全な更新履歴](CHANGELOG.md) | [リリースノート](docs/release-note-v3.8.0-en.md)
+### 現在のバージョン:v3.9.0 | [完全な更新履歴](CHANGELOG.md) | [リリースノート](docs/release-note-v3.9.0-ja.md)
**v3.8.0 メジャーアップデート (2025-11-28)**
diff --git a/README_ZH.md b/README_ZH.md
index 67ba56b52..f5dd431a6 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -2,14 +2,14 @@
# Claude Code / Codex / Gemini CLI 全方位辅助工具
-[](https://github.com/farion1231/cc-switch/releases)
+[](https://github.com/farion1231/cc-switch/releases)
[](https://github.com/farion1231/cc-switch/releases)
[](https://tauri.app/)
[](https://github.com/farion1231/cc-switch/releases/latest)
-[English](README.md) | 中文 | [日本語](README_JA.md) | [更新日志](CHANGELOG.md) | [v3.8.0 发布说明](docs/release-note-v3.8.0-zh.md)
+[English](README.md) | 中文 | [日本語](README_JA.md) | [更新日志](CHANGELOG.md) | [v3.9.0 发布说明](docs/release-note-v3.9.0-zh.md)
@@ -52,7 +52,7 @@
## 功能特性
-### 当前版本:v3.8.3 | [完整更新日志](CHANGELOG.md)
+### 当前版本:v3.9.0 | [完整更新日志](CHANGELOG.md) | [发布说明](docs/release-note-v3.9.0-zh.md)
**v3.8.0 重大更新(2025-11-28)**
diff --git a/docs/release-note-v3.9.0-en.md b/docs/release-note-v3.9.0-en.md
new file mode 100644
index 000000000..93429dfa6
--- /dev/null
+++ b/docs/release-note-v3.9.0-en.md
@@ -0,0 +1,132 @@
+# CC Switch v3.9.0
+
+> Local API Proxy, Auto Failover, Universal Provider, and a more complete multi-app workflow
+
+**[中文版 →](release-note-v3.9.0-zh.md) | [日本語版 →](release-note-v3.9.0-ja.md)**
+
+---
+
+## Overview
+
+CC Switch v3.9.0 is the stable release of the v3.9 beta series (`3.9.0-1`, `3.9.0-2`, `3.9.0-3`).
+It introduces a local API proxy with per-app takeover, automatic failover, universal providers, and many stability and UX improvements across Claude Code, Codex, and Gemini CLI.
+
+**Release Date**: 2026-01-07
+
+---
+
+## Highlights
+
+- Local API Proxy for Claude Code / Codex / Gemini CLI
+- Auto Failover with circuit breaker and per-app failover queues
+- Universal Provider: one shared config synced across apps (ideal for API gateways like NewAPI)
+- Skills improvements: multi-app support, unified management with SSOT + React Query
+- Common config snippets: extract reusable snippets from the editor or the current provider
+- MCP import: import MCP servers from installed apps
+- Usage improvements: auto-refresh, cache hit/creation metrics, and timezone fixes
+- Linux packaging: RPM and Flatpak artifacts
+
+---
+
+## Major Features
+
+### Local API Proxy
+
+- Runs a local high-performance HTTP proxy server (Axum-based)
+- Supports Claude Code, Codex, and Gemini CLI with a unified proxy
+- Per-app takeover: you can independently decide which app routes through the proxy
+- Live config takeover: backs up and redirects the CLI live config to the local proxy when takeover is enabled
+- Monitoring: request logging and usage statistics for easier debugging and cost tracking
+- Error request logging: keep detailed logs for failed proxy requests to simplify debugging (#401, thanks @yovinchen)
+
+### Auto Failover (Circuit Breaker)
+
+- Automatically detects provider failures and triggers protection (circuit breaker)
+- Automatically switches to a backup provider when the current one is unhealthy
+- Tracks provider health in real time, and keeps independent failover queues per app
+- When failover is disabled, timeout/retry related settings no longer affect normal request flow
+
+### Skills Management
+
+- Multi-app Skills support for Claude Code and Codex, with smoother migration from older skill layouts (#365, #378, thanks @yovinchen)
+- Unified Skills management architecture (SSOT + React Query) for more consistent state and refresh behavior
+- Better discovery UX and performance:
+ - Skip hidden directories during discovery
+ - Faster discovery with long-lived caching for discoverable skills
+ - Clear loading indicators and more discoverable header actions (import/refresh)
+ - Fix wrong skill repo branch (#505, thanks @kjasn)
+
+### Universal Provider
+
+- Add a shared provider configuration that can sync to Claude/Codex/Gemini (#348, thanks @Calcium-Ion)
+- Designed for API gateways that support multiple protocols (e.g., NewAPI)
+- Allows per-app default model mapping under a single provider
+
+### Common Config Snippets (Claude/Codex/Gemini)
+
+- Maintain a reusable "common config" snippet and merge/append it into providers that enable it
+- New extraction workflow:
+ - Extract from the editor content (what you are currently editing)
+ - Or extract from the current active provider when the editor content is not provided
+- Codex extraction is safer:
+ - Removes provider-specific sections like `model_provider`, `model`, and the entire `model_providers` table
+ - Preserves `base_url` under `[mcp_servers.*]` so MCP configs are not accidentally broken
+
+### MCP Management
+
+- Import MCP servers from installed apps
+- Improve robustness: skip sync when the target CLI app is not installed; handle invalid Codex `config.toml` gracefully (#461, thanks @majiayu000)
+- Windows compatibility: wrap npx/npm commands with `cmd /c` for MCP export
+
+### Usage & Pricing
+
+- Usage & pricing improvements: auto-refresh, cache hit/creation metrics, timezone handling fixes, and refreshed built-in pricing table (#508, thanks @yovinchen)
+- DeepLink support: import usage query configuration via deeplink (#400, thanks @qyinter)
+- Model extraction for usage statistics (#455, thanks @yovinchen)
+- Usage query credentials can fall back to provider config (#360, thanks @Sirhexs)
+
+---
+
+## UX Improvements
+
+- Provider search filter: quickly find providers by name (#435, thanks @TinsFox)
+- Provider icon colors: customize provider icon colors for quicker visual identification (#385, thanks @yovinchen)
+- Keyboard shortcut: `Cmd/Ctrl + ,` opens Settings (#436, thanks @TinsFox)
+- Skip Claude Code first-run confirmation dialog (optional)
+- Closable toasts: close buttons for switch toast and all success toasts (#350, thanks @ForteScarlet)
+- Update badge navigation: clicking the update badge opens the About tab
+- Settings page tab style improvements (#342, thanks @wenyuanw)
+- Smoother transitions: fade transitions for app/view switching and exit animations for panels
+- Proxy takeover active theme: apply an emerald theme while takeover is active
+- Dark mode readability improvements for forms and labels
+- Better window dragging area for full-screen panels (#525, thanks @zerob13)
+
+---
+
+## Platform Notes
+
+### Windows
+
+- Prevent terminal windows from appearing during version checks
+- Improve window sizing defaults (minimum width/height)
+- Fix black screen on startup by using the system titlebar
+- Add a fallback for `crypto.randomUUID()` on older WebViews
+
+### macOS
+
+- Use `.app` bundle path for autostart to avoid terminal window popups (#462, thanks @majiayu000)
+- Improve tray/icon behavior and header alignment
+
+---
+
+## Packaging
+
+- Linux: RPM and Flatpak packaging targets are now available for building release artifacts
+
+---
+
+## Notes
+
+- Security improvements for the JavaScript executor and usage script execution (#151, thanks @luojiyin1987).
+- SQL import is restricted to CC Switch exported backups to reduce the risk of importing unsafe or incompatible SQL dumps.
+- Proxy takeover modifies CLI live configs; CC Switch will back up the live config before redirecting it to the local proxy. If you want to revert, disable takeover/stop the proxy and restore from the backup when needed.
diff --git a/docs/release-note-v3.9.0-ja.md b/docs/release-note-v3.9.0-ja.md
new file mode 100644
index 000000000..168c7b6c8
--- /dev/null
+++ b/docs/release-note-v3.9.0-ja.md
@@ -0,0 +1,132 @@
+# CC Switch v3.9.0
+
+> ローカル API プロキシ、自動フェイルオーバー、Universal Provider、多アプリ対応の強化
+
+**[English →](release-note-v3.9.0-en.md) | [中文版 →](release-note-v3.9.0-zh.md)**
+
+---
+
+## 概要
+
+CC Switch v3.9.0 は v3.9 ベータ(`3.9.0-1`、`3.9.0-2`、`3.9.0-3`)の安定版です。
+ローカル API プロキシ(アプリ別テイクオーバー対応)、自動フェイルオーバー、Universal Provider を追加し、Claude Code / Codex / Gemini CLI の安定性と操作性を大きく改善しました。
+
+**リリース日**:2026-01-07
+
+---
+
+## ハイライト
+
+- ローカル API プロキシ:Claude Code / Codex / Gemini CLI を統一的にプロキシ
+- 自動フェイルオーバー:サーキットブレーカーとアプリ別のフェイルオーバーキュー
+- Universal Provider:1つの設定を複数アプリへ同期(NewAPI などのゲートウェイ向け)
+- Skills の改善:マルチアプリ対応、SSOT + React Query による管理の統一
+- 共通設定スニペット:エディタ内容または現在のプロバイダから抽出
+- MCP インポート:インストール済みアプリから MCP servers を取り込み
+- 使用量の改善:自動更新、キャッシュ指標、タイムゾーン修正
+- Linux パッケージ:RPM / Flatpak の成果物を追加
+
+---
+
+## 主要機能
+
+### ローカル API プロキシ(Local API Proxy)
+
+- ローカルで高性能な HTTP プロキシサーバーを起動(Axum ベース)
+- Claude Code / Codex / Gemini CLI の API リクエストを統一的に扱う
+- アプリ別テイクオーバー:アプリごとにプロキシ経由にするかを個別に切り替え可能
+- Live 設定テイクオーバー:有効化時に CLI の live 設定をバックアップし、ローカルプロキシへリダイレクト
+- 監視:リクエストログと使用量統計でデバッグとコスト把握を支援
+- エラーリクエストのログ:失敗したプロキシリクエストも詳細に記録してデバッグを容易に(#401、@yovinchen に感謝)
+
+### 自動フェイルオーバー(Auto Failover / サーキットブレーカー)
+
+- 障害を検知して保護(サーキットブレーカー)を自動で発動
+- 現在のプロバイダが不調な場合、バックアッププロバイダへ自動切り替え
+- アプリごとに独立したフェイルオーバーキューとヘルス状態を管理
+- フェイルオーバーを無効化している場合、タイムアウト/リトライ関連の設定は通常フローに影響しません
+
+### Skills 管理
+
+- Claude Code と Codex の Skills をマルチアプリで利用可能にし、旧レイアウトからの移行もよりスムーズに(#365、#378、@yovinchen に感謝)
+- SSOT + React Query による Skills 管理の統一で、状態の一貫性と更新挙動を改善
+- Discovery の体験と性能を改善:
+ - スキャン時に隠しディレクトリをスキップ
+ - Discoverable skills に長寿命キャッシュを適用して高速化
+ - ローディング表示の改善と、インポート/更新などの操作導線を整理
+ - Skills リポジトリのブランチ設定を修正(#505、@kjasn に感謝)
+
+### Universal Provider
+
+- 複数アプリで共有できるプロバイダ設定を追加(Claude/Codex/Gemini へ同期)(#348、@Calcium-Ion に感謝)
+- NewAPI のような複数プロトコル対応の API ゲートウェイを想定
+- 1つのプロバイダ内でアプリ別にデフォルトモデルを割り当て可能
+
+### 共通設定スニペット(Claude/Codex/Gemini)
+
+- 「共通設定スニペット」を保持し、有効化したプロバイダへマージ/追記
+- 新しい抽出フロー:
+ - エディタの現在内容から抽出(編集している内容)
+ - エディタ内容がない場合は、現在アクティブなプロバイダから抽出
+- Codex の抽出はより安全:
+ - `model_provider`、`model`、および `model_providers` テーブル全体など、プロバイダ固有の設定を除去
+ - `[mcp_servers.*]` 配下の `base_url` は保持し、MCP 設定を壊しにくくしています
+
+### MCP 管理
+
+- インストール済みアプリから MCP servers をインポート
+- 安定性向上:対象 CLI が未インストールなら同期をスキップし、無効な Codex `config.toml` も適切に扱います(#461、@majiayu000 に感謝)
+- Windows 互換性:MCP エクスポート時の npx/npm 呼び出しを `cmd /c` でラップ
+
+### 使用量と価格データ
+
+- 使用量/価格の改善:自動更新、キャッシュ指標、タイムゾーン修正、内蔵価格テーブル更新(#508、@yovinchen に感謝)
+- DeepLink 対応:deeplink から使用量クエリ設定をインポート(#400、@qyinter に感謝)
+- 使用量統計からモデル情報を抽出(#455、@yovinchen に感謝)
+- 使用量クエリ資格情報はプロバイダ設定へフォールバック可能(#360、@Sirhexs に感謝)
+
+---
+
+## 使い勝手の改善
+
+- プロバイダ検索フィルター(名前で素早く検索)(#435、@TinsFox に感謝)
+- プロバイダのアイコン色:アイコンに任意の色を設定して見分けやすく(#385、@yovinchen に感謝)
+- ショートカット:`Cmd/Ctrl + ,` で設定を開く(#436、@TinsFox に感謝)
+- Claude Code の初回確認ダイアログをスキップ可能(任意)
+- トースト通知のクローズボタン:切り替え通知と成功通知を閉じられるように(#350、@ForteScarlet に感謝)
+- 更新バッジをクリックすると About タブへ移動
+- 設定ページのタブスタイル改善(#342、@wenyuanw に感謝)
+- アプリ/ビュー切り替えのフェードとパネル終了アニメーション
+- プロキシテイクオーバー中はエメラルド系テーマを適用して状態を分かりやすく
+- ダークモードの視認性改善
+- FullScreenPanel のウィンドウドラッグ領域を改善(#525、@zerob13 に感謝)
+
+---
+
+## プラットフォーム別メモ
+
+### Windows
+
+- バージョンチェック時にターミナルが表示されないよう改善
+- ウィンドウ最小サイズのデフォルトを調整
+- 起動時の黒画面を避けるため、システムタイトルバー方式を採用
+- 古い WebView 向けに `crypto.randomUUID()` のフォールバックを追加
+
+### macOS
+
+- 自動起動で `.app` バンドルパスを使用し、ターミナル表示を回避(#462、@majiayu000 に感謝)
+- トレイとヘッダー周りの体験を改善
+
+---
+
+## パッケージ
+
+- Linux:RPM と Flatpak のパッケージングを追加し、リリース成果物の生成に対応
+
+---
+
+## 注意事項
+
+- セキュリティ強化:JavaScript 実行器と使用量スクリプト実行に関するセキュリティ問題を修正(#151、@luojiyin1987 に感謝)。
+- SQL インポートは CC Switch がエクスポートしたバックアップのみに制限されます(安全性のため)。
+- プロキシのテイクオーバーは CLI の live 設定を変更します。CC Switch はリダイレクト前に live 設定をバックアップします。元に戻す場合はテイクオーバー無効化/プロキシ停止を行い、必要に応じてバックアップから復元してください。
diff --git a/docs/release-note-v3.9.0-zh.md b/docs/release-note-v3.9.0-zh.md
new file mode 100644
index 000000000..fa82d6068
--- /dev/null
+++ b/docs/release-note-v3.9.0-zh.md
@@ -0,0 +1,132 @@
+# CC Switch v3.9.0
+
+> 本地 API 代理、自动故障切换、统一供应商与多应用工作流增强
+
+**[English →](release-note-v3.9.0-en.md) | [日本語版 →](release-note-v3.9.0-ja.md)**
+
+---
+
+## 概览
+
+CC Switch v3.9.0 是 v3.9 测试版序列(`3.9.0-1`、`3.9.0-2`、`3.9.0-3`)的稳定版。
+本次更新带来本地 API 代理(支持按应用接管)、自动故障切换、统一供应商(Universal Provider),并对 Claude Code / Codex / Gemini CLI 的稳定性与使用体验做了大量改进。
+
+**发布日期**:2026-01-07
+
+---
+
+## 重点内容
+
+- 本地 API 代理:Claude Code / Codex / Gemini CLI 统一接入
+- 自动故障切换:熔断保护 + 每个应用独立的 failover 队列
+- 统一供应商:一份配置可同步到多个应用(适合 NewAPI 等网关)
+- Skills 相关增强:支持多应用、管理架构统一(SSOT + React Query)
+- 通用配置片段:支持从编辑器内容或当前供应商提取可复用片段
+- MCP 导入:支持从已安装应用导入 MCP servers
+- 用量增强:自动刷新、缓存命中/创建指标、时区修复
+- Linux 打包:新增 RPM 与 Flatpak 制品
+
+---
+
+## 主要功能
+
+### 本地 API 代理(Local API Proxy)
+
+- 运行一个本地高性能 HTTP 代理服务(基于 Axum)
+- 统一代理 Claude Code、Codex、Gemini CLI 的 API 请求
+- 按应用接管:你可以分别控制每个应用是否走本地代理
+- Live 配置接管:启用接管时,会备份并重定向 CLI 的 live 配置到本地代理
+- 监控能力:记录请求日志与用量统计,便于排错与成本分析
+- 错误请求日志:代理会记录失败请求的详细信息,便于定位问题(#401,感谢 @yovinchen)
+
+### 自动故障切换(Auto Failover / 熔断)
+
+- 自动检测供应商异常并触发熔断保护
+- 当前供应商不可用时自动切换到备用供应商
+- 每个应用维护独立的 failover 队列,并实时追踪健康状态
+- 当关闭故障切换时,超时/重试相关配置不会影响正常请求流程
+
+### Skills 管理
+
+- Skills 支持 Claude Code 与 Codex 多应用使用,并提供旧结构到新结构的平滑迁移(#365、#378,感谢 @yovinchen)
+- Skills 管理架构统一(SSOT + React Query),状态刷新与数据一致性更稳定
+- 发现(Discovery)体验与性能改进:
+ - 扫描时跳过隐藏目录
+ - Discoverable skills 使用长生命周期缓存提升性能
+ - 增加加载状态提示,导入/刷新等操作入口更显眼
+ - 修复 Skills 仓库分支配置错误(#505,感谢 @kjasn)
+
+### 统一供应商(Universal Provider)
+
+- 新增“跨应用共享”的供应商配置,可同步到 Claude/Codex/Gemini(#348,感谢 @Calcium-Ion)
+- 适配支持多协议的 API 网关(例如 NewAPI)
+- 同一个供应商下可按应用分别设置默认模型映射
+
+### 通用配置片段(Claude/Codex/Gemini)
+
+- 维护一段“通用配置片段”,并将其合并/追加到启用该功能的供应商配置中
+- 新增“提取通用配置片段”工作流:
+ - 优先从编辑器当前内容提取(你正在编辑的内容)
+ - 若未提供编辑器内容,则从当前激活的供应商提取
+- Codex 场景提取更安全:
+ - 自动移除 `model_provider`、`model` 以及整个 `model_providers` 表等供应商相关内容
+ - 会保留 `[mcp_servers.*]` 下的 `base_url`,避免误伤 MCP 配置
+
+### MCP 管理
+
+- 支持从已安装应用导入 MCP servers
+- 同步更稳健:目标 CLI 未安装则跳过;无效的 Codex `config.toml` 可更优雅处理(#461,感谢 @majiayu000)
+- Windows 兼容性:MCP 导出相关的 npx/npm 调用使用 `cmd /c` 包裹
+
+### 用量与计费数据
+
+- 用量与计费增强:自动刷新、缓存命中/创建指标、时区修复,以及内置价格表更新(#508,感谢 @yovinchen)
+- 深链支持:可通过 deeplink 导入用量查询配置(#400,感谢 @qyinter)
+- 用量统计支持提取模型信息(#455,感谢 @yovinchen)
+- 用量查询凭证支持从供应商配置回退(#360,感谢 @Sirhexs)
+
+---
+
+## 体验优化
+
+- 供应商搜索过滤:按名称快速查找(#435,感谢 @TinsFox)
+- 供应商图标颜色:支持为供应商图标设置自定义颜色,便于快速区分(#385,感谢 @yovinchen)
+- 快捷键:`Cmd/Ctrl + ,` 打开设置(#436,感谢 @TinsFox)
+- 可跳过 Claude Code 首次确认弹窗(可选)
+- Toast 通知可关闭:切换提示与成功提示都支持关闭按钮(#350,感谢 @ForteScarlet)
+- 点击更新徽章会自动跳转到 About 标签页
+- 设置页 Tab 样式改进(#342,感谢 @wenyuanw)
+- 更顺滑的切换动效:应用/视图淡入淡出与面板退出动画
+- 代理接管激活时应用翡翠绿主题,便于一眼识别当前状态
+- 深色模式可读性增强(表单与标签对比度等)
+- FullScreenPanel 的窗口拖拽区域优化(#525,感谢 @zerob13)
+
+---
+
+## 平台说明
+
+### Windows
+
+- 版本检查不再弹出终端窗口
+- 改进窗口尺寸默认值(最小宽高)
+- 修复部分设备启动黑屏问题(使用系统标题栏方案)
+- 兼容旧 WebView:为 `crypto.randomUUID()` 增加降级方案
+
+### macOS
+
+- 自启动使用 `.app bundle` 路径,避免弹出终端窗口(#462,感谢 @majiayu000)
+- 托盘与标题栏相关体验优化
+
+---
+
+## 打包
+
+- Linux:新增 RPM 与 Flatpak 打包目标,用于生成发布制品
+
+---
+
+## 说明与注意事项
+
+- 安全增强:修复 JavaScript 执行器与用量脚本相关的安全问题(#151,感谢 @luojiyin1987)。
+- 为降低导入风险,SQL 导入被限制为仅允许导入 CC Switch 自己导出的备份。
+- Proxy 接管会修改 CLI 的 live 配置;CC Switch 会在重定向前自动备份 live 配置。如需回退,可关闭接管/停止代理,并在必要时从备份恢复。
diff --git a/package.json b/package.json
index 1c7f3ed26..c4ceeafc0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "cc-switch",
- "version": "3.9.0-3",
+ "version": "3.9.0",
"description": "All-in-One Assistant for Claude Code, Codex & Gemini CLI",
"type": "module",
"scripts": {
@@ -87,4 +87,4 @@
"zod": "^4.1.12"
},
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
-}
\ No newline at end of file
+}
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index a363fde87..51a67662e 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -701,7 +701,7 @@ dependencies = [
[[package]]
name = "cc-switch"
-version = "3.9.0-3"
+version = "3.9.0"
dependencies = [
"anyhow",
"async-stream",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 81d1400a1..19e4345d1 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "cc-switch"
-version = "3.9.0-3"
+version = "3.9.0"
description = "All-in-One Assistant for Claude Code, Codex & Gemini CLI"
authors = ["Jason Young"]
license = "MIT"
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 8173d9052..eb8835998 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "CC Switch",
- "version": "3.9.0-3",
+ "version": "3.9.0",
"identifier": "com.ccswitch.desktop",
"build": {
"frontendDist": "../dist",