From 60e8351f60707d17413422b065146409832702b4 Mon Sep 17 00:00:00 2001 From: Jason Date: Sun, 12 Oct 2025 22:27:02 +0800 Subject: [PATCH] chore: bump version to v3.5.0 and update roadmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CHANGELOG.md | 75 ++++++++++++++++++++++++++++++++++- docs/roadmap.md | 8 ++-- package.json | 2 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- src/config/providerPresets.ts | 2 +- 7 files changed, 83 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a7edbd..19ca69e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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/), 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 ### ✨ Features + - 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) - 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 ### 🔧 Improvements + - 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 - 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 ### 🐛 Fixes + - Remove the unnecessary OpenAI auth requirement from third-party provider configurations - 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 @@ -27,18 +74,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [3.3.0] - 2025-09-22 ### ✨ 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 - Introduce shared common config snippets with JSON/TOML reuse, validation, and consistent error surfaces ### 🔧 Improvements + - 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 - 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 ### 🐛 Fixes + - 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 - 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 ### ✨ New Features + - System tray provider switching with dynamic menu for Claude/Codex - Frontend receives `provider-switched` events and refreshes active app - Built-in update flow via Tauri Updater plugin with dismissible UpdateBadge ### 🔧 Improvements + - Single source of truth for provider configs; no duplicate copy files - One-time migration imports existing copies into `config.json` and archives originals - 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 ### 🐛 Fixes + - Remove/minimize debug console logs in production builds - Fix CSS minifier warnings for scrollbar pseudo-elements - Prettier formatting across codebase for consistent style ### 📦 Dependencies + - Tauri: 2.8.x (core, updater, process, opener, log plugins) - React: 18.2.x · TypeScript: 5.3.x · Vite: 5.x ### 🔄 Notes + - `connect-src` CSP remains permissive for compatibility; can be tightened later as needed ## [3.1.1] - 2025-09-03 ### 🐛 Bug Fixes + - Fixed the default codex config.toml to match the latest modifications - Improved provider configuration UX with custom option ### 📝 Documentation + - Updated README with latest information ## [3.1.0] - 2025-09-01 ### ✨ New Features + - **Added Codex application support** - Now supports both Claude Code and Codex configuration management - Manage auth.json and config.toml for Codex - 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 ### 🔧 Technical Improvements + - Unified Tauri command API with app_type parameter - Backward compatibility for app/appType parameters - Added get_config_status/open_config_folder/open_external commands - Improved error handling for empty config.toml ### 🐛 Bug Fixes + - Fixed config path reporting and folder opening for Codex - Corrected default import behavior when main config is missing - 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 ### 🚀 Major Changes + - **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) - **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 ### ✨ New Features + - **Native window controls** with transparent title bar on macOS - **Improved file system operations** using Rust for better performance - **Enhanced security model** with explicit permission declarations - **Better platform detection** using Tauri's native APIs ### 🔧 Technical Improvements + - Migrated from Electron IPC to Tauri command system - Replaced Node.js file operations with Rust implementations - 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 ### 🐛 Bug Fixes + - Fixed bundle identifier conflict on macOS (changed from .app to .desktop) - Resolved platform detection issues - Improved error handling in configuration management ### 📦 Dependencies + - **Tauri**: 2.8.2 - **React**: 18.2.0 - **TypeScript**: 5.3.0 - **Vite**: 5.0.0 ### 🔄 Migration Notes + For users upgrading from v2.x (Electron version): + - Configuration files remain compatible - no action required - The app will automatically migrate your existing provider configurations - Window position and size preferences have been reset to defaults #### 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. - Backup location: `~/.cc-switch/config.v1.backup..json` - This only concerns cc-switch's own metadata file; your actual provider files under `~/.claude/` and `~/.codex/` are untouched. ### 🛠️ Development + - Added `pnpm typecheck` command for TypeScript validation - Added `pnpm format` and `pnpm format:check` for code 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 ### Features + - Multi-provider configuration management - Quick provider switching - Import/export configurations @@ -170,6 +240,7 @@ For users upgrading from v2.x (Electron version): ## [1.0.0] - Initial Release ### Features + - Basic provider management - Claude Code integration - Configuration file handling diff --git a/docs/roadmap.md b/docs/roadmap.md index a4d6cdd..014cdeb 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,7 +1,9 @@ - 自动升级自定义路径 ✅ - win 绿色版报毒问题 ✅ -- codex 更多预设供应商 -- mcp 管理器 -- i18n +- mcp 管理器 ✅ +- i18n ✅ - gemini cli - homebrew 支持 +- memory 管理 +- codex 更多预设供应商 +- 云同步 diff --git a/package.json b/package.json index 20e25b6..e7da63d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cc-switch", - "version": "3.4.0", + "version": "3.5.0", "description": "Claude Code & Codex 供应商切换工具", "scripts": { "dev": "pnpm tauri dev", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 823e265..ccfc6d4 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -563,7 +563,7 @@ dependencies = [ [[package]] name = "cc-switch" -version = "3.4.0" +version = "3.5.0" dependencies = [ "chrono", "dirs 5.0.1", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 91a8620..c9c9bb3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cc-switch" -version = "3.4.0" +version = "3.5.0" description = "Claude Code & Codex 供应商配置管理工具" authors = ["Jason Young"] license = "MIT" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 4bf6571..97b5377 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.4.0", + "version": "3.5.0", "identifier": "com.ccswitch.desktop", "build": { "frontendDist": "../dist", diff --git a/src/config/providerPresets.ts b/src/config/providerPresets.ts index 3394214..fb40a2b 100644 --- a/src/config/providerPresets.ts +++ b/src/config/providerPresets.ts @@ -140,7 +140,7 @@ export const providerPresets: ProviderPreset[] = [ ANTHROPIC_DEFAULT_SONNET_MODEL: "LongCat-Flash-Chat", ANTHROPIC_DEFAULT_OPUS_MODEL: "LongCat-Flash-Chat", CLAUDE_CODE_MAX_OUTPUT_TOKENS: "6000", - CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 + CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1, }, }, category: "cn_official",