mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
chore: bump version to v3.5.0 and update roadmap
Version Changes: - Update version to 3.5.0 in package.json, Cargo.toml, and tauri.conf.json Changelog Updates: - Add v3.5.0 release notes with comprehensive feature list - Document MCP management system implementation - Document configuration import/export functionality - Document endpoint speed testing feature - List all improvements, bug fixes, and technical enhancements Roadmap Updates: - Mark MCP manager as completed ✅ - Mark i18n (internationalization) as completed ✅ - Add new planned features: memory management, cloud sync - Reorganize feature priorities
This commit is contained in:
+73
-2
@@ -5,21 +5,68 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [3.5.0] - 2025-01-15
|
||||||
|
|
||||||
|
### ✨ New Features
|
||||||
|
|
||||||
|
- **MCP (Model Context Protocol) Management** - Complete MCP server configuration management system
|
||||||
|
- Add, edit, delete, and toggle MCP servers in `~/.claude.json`
|
||||||
|
- Support for stdio and http server types with command validation
|
||||||
|
- Built-in templates for popular MCP servers (mcp-fetch, etc.)
|
||||||
|
- Real-time enable/disable toggle for MCP servers
|
||||||
|
- Atomic file writing to prevent configuration corruption
|
||||||
|
- **Configuration Import/Export** - Backup and restore your provider configurations
|
||||||
|
- Export all configurations to JSON file with one click
|
||||||
|
- Import configurations with validation and automatic backup
|
||||||
|
- Automatic backup rotation (keeps 10 most recent backups)
|
||||||
|
- Progress modal with detailed status feedback
|
||||||
|
- **Endpoint Speed Testing** - Test API endpoint response times
|
||||||
|
- Measure latency to different provider endpoints
|
||||||
|
- Visual indicators for connection quality
|
||||||
|
- Help users choose the fastest provider
|
||||||
|
|
||||||
|
### 🔧 Improvements
|
||||||
|
|
||||||
|
- Complete internationalization (i18n) coverage for all UI components
|
||||||
|
- Enhanced error handling and user feedback throughout the application
|
||||||
|
- Improved configuration file management with better validation
|
||||||
|
- Added new provider presets: Longcat, kat-coder
|
||||||
|
- Updated GLM provider configurations with latest models
|
||||||
|
- Refined UI/UX with better spacing, icons, and visual feedback
|
||||||
|
- Enhanced tray menu functionality and responsiveness
|
||||||
|
|
||||||
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
|
- Fixed layout shifts during provider switching
|
||||||
|
- Improved config file path handling across different platforms
|
||||||
|
- Better error messages for configuration validation failures
|
||||||
|
- Fixed various edge cases in configuration import/export
|
||||||
|
|
||||||
|
### 📦 Technical Details
|
||||||
|
|
||||||
|
- Enhanced `import_export.rs` module with backup management
|
||||||
|
- New `claude_mcp.rs` module for MCP configuration handling
|
||||||
|
- Improved state management and lock handling in Rust backend
|
||||||
|
- Better TypeScript type safety across the codebase
|
||||||
|
|
||||||
## [3.4.0] - 2025-10-01
|
## [3.4.0] - 2025-10-01
|
||||||
|
|
||||||
### ✨ Features
|
### ✨ Features
|
||||||
|
|
||||||
- Enable internationalization via i18next with a Chinese default and English fallback, plus an in-app language switcher
|
- Enable internationalization via i18next with a Chinese default and English fallback, plus an in-app language switcher
|
||||||
- Add Claude plugin sync while retiring the legacy VS Code integration controls (Codex no longer requires settings.json edits)
|
- Add Claude plugin sync while retiring the legacy VS Code integration controls (Codex no longer requires settings.json edits)
|
||||||
- Extend provider presets with optional API key URLs and updated models, including DeepSeek-V3.1-Terminus and Qwen3-Max
|
- Extend provider presets with optional API key URLs and updated models, including DeepSeek-V3.1-Terminus and Qwen3-Max
|
||||||
- Support portable mode launches and enforce a single running instance to avoid conflicts
|
- Support portable mode launches and enforce a single running instance to avoid conflicts
|
||||||
|
|
||||||
### 🔧 Improvements
|
### 🔧 Improvements
|
||||||
|
|
||||||
- Allow minimizing the window to the system tray and add macOS Dock visibility management for tray workflows
|
- Allow minimizing the window to the system tray and add macOS Dock visibility management for tray workflows
|
||||||
- Refresh the Settings modal with a scrollable layout, save icon, and cleaner language section
|
- Refresh the Settings modal with a scrollable layout, save icon, and cleaner language section
|
||||||
- Smooth provider toggle states with consistent button widths/icons and prevent layout shifts when switching between Claude and Codex
|
- Smooth provider toggle states with consistent button widths/icons and prevent layout shifts when switching between Claude and Codex
|
||||||
- Adjust the Windows MSI installer to target per-user LocalAppData and improve component tracking reliability
|
- Adjust the Windows MSI installer to target per-user LocalAppData and improve component tracking reliability
|
||||||
|
|
||||||
### 🐛 Fixes
|
### 🐛 Fixes
|
||||||
|
|
||||||
- Remove the unnecessary OpenAI auth requirement from third-party provider configurations
|
- Remove the unnecessary OpenAI auth requirement from third-party provider configurations
|
||||||
- Fix layout shifts while switching app types with Claude plugin sync enabled
|
- Fix layout shifts while switching app types with Claude plugin sync enabled
|
||||||
- Align Enable/In Use button states to avoid visual jank across app views
|
- Align Enable/In Use button states to avoid visual jank across app views
|
||||||
@@ -27,18 +74,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
## [3.3.0] - 2025-09-22
|
## [3.3.0] - 2025-09-22
|
||||||
|
|
||||||
### ✨ Features
|
### ✨ Features
|
||||||
- Add “Apply to VS Code / Remove from VS Code” actions on provider cards, writing settings for Code/Insiders/VSCodium variants *(Removed in 3.4.x)*
|
|
||||||
- Enable VS Code auto-sync by default with window broadcast and tray hooks so Codex switches sync silently *(Removed in 3.4.x)*
|
- Add “Apply to VS Code / Remove from VS Code” actions on provider cards, writing settings for Code/Insiders/VSCodium variants _(Removed in 3.4.x)_
|
||||||
|
- Enable VS Code auto-sync by default with window broadcast and tray hooks so Codex switches sync silently _(Removed in 3.4.x)_
|
||||||
- Extend the Codex provider wizard with display name, dedicated API key URL, and clearer guidance
|
- Extend the Codex provider wizard with display name, dedicated API key URL, and clearer guidance
|
||||||
- Introduce shared common config snippets with JSON/TOML reuse, validation, and consistent error surfaces
|
- Introduce shared common config snippets with JSON/TOML reuse, validation, and consistent error surfaces
|
||||||
|
|
||||||
### 🔧 Improvements
|
### 🔧 Improvements
|
||||||
|
|
||||||
- Keep the tray menu responsive when the window is hidden and standardize button styling and copy
|
- Keep the tray menu responsive when the window is hidden and standardize button styling and copy
|
||||||
- Disable modal backdrop blur on Linux (WebKitGTK/Wayland) to avoid freezes; restore the window when clicking the macOS Dock icon
|
- Disable modal backdrop blur on Linux (WebKitGTK/Wayland) to avoid freezes; restore the window when clicking the macOS Dock icon
|
||||||
- Support overriding config directories on WSL, refine placeholders/descriptions, and fix VS Code button wrapping on Windows
|
- Support overriding config directories on WSL, refine placeholders/descriptions, and fix VS Code button wrapping on Windows
|
||||||
- Add a `created_at` timestamp to provider records for future sorting and analytics
|
- Add a `created_at` timestamp to provider records for future sorting and analytics
|
||||||
|
|
||||||
### 🐛 Fixes
|
### 🐛 Fixes
|
||||||
|
|
||||||
- Correct regex escapes and common snippet trimming in the Codex wizard to prevent validation issues
|
- Correct regex escapes and common snippet trimming in the Codex wizard to prevent validation issues
|
||||||
- Harden the VS Code sync flow with more reliable TOML/JSON parsing while reducing layout jank
|
- Harden the VS Code sync flow with more reliable TOML/JSON parsing while reducing layout jank
|
||||||
- Bundle `@codemirror/lint` to reinstate live linting in config editors
|
- Bundle `@codemirror/lint` to reinstate live linting in config editors
|
||||||
@@ -46,11 +96,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
## [3.2.0] - 2025-09-13
|
## [3.2.0] - 2025-09-13
|
||||||
|
|
||||||
### ✨ New Features
|
### ✨ New Features
|
||||||
|
|
||||||
- System tray provider switching with dynamic menu for Claude/Codex
|
- System tray provider switching with dynamic menu for Claude/Codex
|
||||||
- Frontend receives `provider-switched` events and refreshes active app
|
- Frontend receives `provider-switched` events and refreshes active app
|
||||||
- Built-in update flow via Tauri Updater plugin with dismissible UpdateBadge
|
- Built-in update flow via Tauri Updater plugin with dismissible UpdateBadge
|
||||||
|
|
||||||
### 🔧 Improvements
|
### 🔧 Improvements
|
||||||
|
|
||||||
- Single source of truth for provider configs; no duplicate copy files
|
- Single source of truth for provider configs; no duplicate copy files
|
||||||
- One-time migration imports existing copies into `config.json` and archives originals
|
- One-time migration imports existing copies into `config.json` and archives originals
|
||||||
- Duplicate provider de-duplication by name + API key at startup
|
- Duplicate provider de-duplication by name + API key at startup
|
||||||
@@ -59,29 +111,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Tailwind v4 integration and refined dark mode handling
|
- Tailwind v4 integration and refined dark mode handling
|
||||||
|
|
||||||
### 🐛 Fixes
|
### 🐛 Fixes
|
||||||
|
|
||||||
- Remove/minimize debug console logs in production builds
|
- Remove/minimize debug console logs in production builds
|
||||||
- Fix CSS minifier warnings for scrollbar pseudo-elements
|
- Fix CSS minifier warnings for scrollbar pseudo-elements
|
||||||
- Prettier formatting across codebase for consistent style
|
- Prettier formatting across codebase for consistent style
|
||||||
|
|
||||||
### 📦 Dependencies
|
### 📦 Dependencies
|
||||||
|
|
||||||
- Tauri: 2.8.x (core, updater, process, opener, log plugins)
|
- Tauri: 2.8.x (core, updater, process, opener, log plugins)
|
||||||
- React: 18.2.x · TypeScript: 5.3.x · Vite: 5.x
|
- React: 18.2.x · TypeScript: 5.3.x · Vite: 5.x
|
||||||
|
|
||||||
### 🔄 Notes
|
### 🔄 Notes
|
||||||
|
|
||||||
- `connect-src` CSP remains permissive for compatibility; can be tightened later as needed
|
- `connect-src` CSP remains permissive for compatibility; can be tightened later as needed
|
||||||
|
|
||||||
## [3.1.1] - 2025-09-03
|
## [3.1.1] - 2025-09-03
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
- Fixed the default codex config.toml to match the latest modifications
|
- Fixed the default codex config.toml to match the latest modifications
|
||||||
- Improved provider configuration UX with custom option
|
- Improved provider configuration UX with custom option
|
||||||
|
|
||||||
### 📝 Documentation
|
### 📝 Documentation
|
||||||
|
|
||||||
- Updated README with latest information
|
- Updated README with latest information
|
||||||
|
|
||||||
## [3.1.0] - 2025-09-01
|
## [3.1.0] - 2025-09-01
|
||||||
|
|
||||||
### ✨ New Features
|
### ✨ New Features
|
||||||
|
|
||||||
- **Added Codex application support** - Now supports both Claude Code and Codex configuration management
|
- **Added Codex application support** - Now supports both Claude Code and Codex configuration management
|
||||||
- Manage auth.json and config.toml for Codex
|
- Manage auth.json and config.toml for Codex
|
||||||
- Support for backup and restore operations
|
- Support for backup and restore operations
|
||||||
@@ -98,12 +156,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- TOML syntax validation for config.toml
|
- TOML syntax validation for config.toml
|
||||||
|
|
||||||
### 🔧 Technical Improvements
|
### 🔧 Technical Improvements
|
||||||
|
|
||||||
- Unified Tauri command API with app_type parameter
|
- Unified Tauri command API with app_type parameter
|
||||||
- Backward compatibility for app/appType parameters
|
- Backward compatibility for app/appType parameters
|
||||||
- Added get_config_status/open_config_folder/open_external commands
|
- Added get_config_status/open_config_folder/open_external commands
|
||||||
- Improved error handling for empty config.toml
|
- Improved error handling for empty config.toml
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
- Fixed config path reporting and folder opening for Codex
|
- Fixed config path reporting and folder opening for Codex
|
||||||
- Corrected default import behavior when main config is missing
|
- Corrected default import behavior when main config is missing
|
||||||
- Fixed non_snake_case warnings in commands.rs
|
- Fixed non_snake_case warnings in commands.rs
|
||||||
@@ -111,6 +171,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
## [3.0.0] - 2025-08-27
|
## [3.0.0] - 2025-08-27
|
||||||
|
|
||||||
### 🚀 Major Changes
|
### 🚀 Major Changes
|
||||||
|
|
||||||
- **Complete migration from Electron to Tauri 2.0** - The application has been completely rewritten using Tauri, resulting in:
|
- **Complete migration from Electron to Tauri 2.0** - The application has been completely rewritten using Tauri, resulting in:
|
||||||
- **90% reduction in bundle size** (from ~150MB to ~15MB)
|
- **90% reduction in bundle size** (from ~150MB to ~15MB)
|
||||||
- **Significantly improved startup performance**
|
- **Significantly improved startup performance**
|
||||||
@@ -118,12 +179,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- **Enhanced security** with Rust backend
|
- **Enhanced security** with Rust backend
|
||||||
|
|
||||||
### ✨ New Features
|
### ✨ New Features
|
||||||
|
|
||||||
- **Native window controls** with transparent title bar on macOS
|
- **Native window controls** with transparent title bar on macOS
|
||||||
- **Improved file system operations** using Rust for better performance
|
- **Improved file system operations** using Rust for better performance
|
||||||
- **Enhanced security model** with explicit permission declarations
|
- **Enhanced security model** with explicit permission declarations
|
||||||
- **Better platform detection** using Tauri's native APIs
|
- **Better platform detection** using Tauri's native APIs
|
||||||
|
|
||||||
### 🔧 Technical Improvements
|
### 🔧 Technical Improvements
|
||||||
|
|
||||||
- Migrated from Electron IPC to Tauri command system
|
- Migrated from Electron IPC to Tauri command system
|
||||||
- Replaced Node.js file operations with Rust implementations
|
- Replaced Node.js file operations with Rust implementations
|
||||||
- Implemented proper CSP (Content Security Policy) for enhanced security
|
- Implemented proper CSP (Content Security Policy) for enhanced security
|
||||||
@@ -131,28 +194,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Integrated Rust cargo fmt and clippy for code quality
|
- Integrated Rust cargo fmt and clippy for code quality
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
- Fixed bundle identifier conflict on macOS (changed from .app to .desktop)
|
- Fixed bundle identifier conflict on macOS (changed from .app to .desktop)
|
||||||
- Resolved platform detection issues
|
- Resolved platform detection issues
|
||||||
- Improved error handling in configuration management
|
- Improved error handling in configuration management
|
||||||
|
|
||||||
### 📦 Dependencies
|
### 📦 Dependencies
|
||||||
|
|
||||||
- **Tauri**: 2.8.2
|
- **Tauri**: 2.8.2
|
||||||
- **React**: 18.2.0
|
- **React**: 18.2.0
|
||||||
- **TypeScript**: 5.3.0
|
- **TypeScript**: 5.3.0
|
||||||
- **Vite**: 5.0.0
|
- **Vite**: 5.0.0
|
||||||
|
|
||||||
### 🔄 Migration Notes
|
### 🔄 Migration Notes
|
||||||
|
|
||||||
For users upgrading from v2.x (Electron version):
|
For users upgrading from v2.x (Electron version):
|
||||||
|
|
||||||
- Configuration files remain compatible - no action required
|
- Configuration files remain compatible - no action required
|
||||||
- The app will automatically migrate your existing provider configurations
|
- The app will automatically migrate your existing provider configurations
|
||||||
- Window position and size preferences have been reset to defaults
|
- Window position and size preferences have been reset to defaults
|
||||||
|
|
||||||
#### Backup on v1→v2 Migration (cc-switch internal config)
|
#### Backup on v1→v2 Migration (cc-switch internal config)
|
||||||
|
|
||||||
- When the app detects an old v1 config structure at `~/.cc-switch/config.json`, it now creates a timestamped backup before writing the new v2 structure.
|
- When the app detects an old v1 config structure at `~/.cc-switch/config.json`, it now creates a timestamped backup before writing the new v2 structure.
|
||||||
- Backup location: `~/.cc-switch/config.v1.backup.<timestamp>.json`
|
- Backup location: `~/.cc-switch/config.v1.backup.<timestamp>.json`
|
||||||
- This only concerns cc-switch's own metadata file; your actual provider files under `~/.claude/` and `~/.codex/` are untouched.
|
- This only concerns cc-switch's own metadata file; your actual provider files under `~/.claude/` and `~/.codex/` are untouched.
|
||||||
|
|
||||||
### 🛠️ Development
|
### 🛠️ Development
|
||||||
|
|
||||||
- Added `pnpm typecheck` command for TypeScript validation
|
- Added `pnpm typecheck` command for TypeScript validation
|
||||||
- Added `pnpm format` and `pnpm format:check` for code formatting
|
- Added `pnpm format` and `pnpm format:check` for code formatting
|
||||||
- Rust code now uses cargo fmt for consistent formatting
|
- Rust code now uses cargo fmt for consistent formatting
|
||||||
@@ -160,6 +229,7 @@ For users upgrading from v2.x (Electron version):
|
|||||||
## [2.0.0] - Previous Electron Release
|
## [2.0.0] - Previous Electron Release
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
- Multi-provider configuration management
|
- Multi-provider configuration management
|
||||||
- Quick provider switching
|
- Quick provider switching
|
||||||
- Import/export configurations
|
- Import/export configurations
|
||||||
@@ -170,6 +240,7 @@ For users upgrading from v2.x (Electron version):
|
|||||||
## [1.0.0] - Initial Release
|
## [1.0.0] - Initial Release
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
- Basic provider management
|
- Basic provider management
|
||||||
- Claude Code integration
|
- Claude Code integration
|
||||||
- Configuration file handling
|
- Configuration file handling
|
||||||
|
|||||||
+5
-3
@@ -1,7 +1,9 @@
|
|||||||
- 自动升级自定义路径 ✅
|
- 自动升级自定义路径 ✅
|
||||||
- win 绿色版报毒问题 ✅
|
- win 绿色版报毒问题 ✅
|
||||||
- codex 更多预设供应商
|
- mcp 管理器 ✅
|
||||||
- mcp 管理器
|
- i18n ✅
|
||||||
- i18n
|
|
||||||
- gemini cli
|
- gemini cli
|
||||||
- homebrew 支持
|
- homebrew 支持
|
||||||
|
- memory 管理
|
||||||
|
- codex 更多预设供应商
|
||||||
|
- 云同步
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cc-switch",
|
"name": "cc-switch",
|
||||||
"version": "3.4.0",
|
"version": "3.5.0",
|
||||||
"description": "Claude Code & Codex 供应商切换工具",
|
"description": "Claude Code & Codex 供应商切换工具",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm tauri dev",
|
"dev": "pnpm tauri dev",
|
||||||
|
|||||||
Generated
+1
-1
@@ -563,7 +563,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc-switch"
|
name = "cc-switch"
|
||||||
version = "3.4.0"
|
version = "3.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"dirs 5.0.1",
|
"dirs 5.0.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "cc-switch"
|
name = "cc-switch"
|
||||||
version = "3.4.0"
|
version = "3.5.0"
|
||||||
description = "Claude Code & Codex 供应商配置管理工具"
|
description = "Claude Code & Codex 供应商配置管理工具"
|
||||||
authors = ["Jason Young"]
|
authors = ["Jason Young"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "CC Switch",
|
"productName": "CC Switch",
|
||||||
"version": "3.4.0",
|
"version": "3.5.0",
|
||||||
"identifier": "com.ccswitch.desktop",
|
"identifier": "com.ccswitch.desktop",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../dist",
|
"frontendDist": "../dist",
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ export const providerPresets: ProviderPreset[] = [
|
|||||||
ANTHROPIC_DEFAULT_SONNET_MODEL: "LongCat-Flash-Chat",
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "LongCat-Flash-Chat",
|
||||||
ANTHROPIC_DEFAULT_OPUS_MODEL: "LongCat-Flash-Chat",
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "LongCat-Flash-Chat",
|
||||||
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "6000",
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "6000",
|
||||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
category: "cn_official",
|
category: "cn_official",
|
||||||
|
|||||||
Reference in New Issue
Block a user