@@ -5,6 +5,114 @@ All notable changes to CC Switch will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 3.6.0] - 2025-11-07
9+
10+ ### ✨ New Features
11+
12+ - ** Provider Duplicate** - Quick duplicate existing provider configurations for easy variant creation
13+ - ** Edit Mode Toggle** - Show/hide drag handles to optimize editing experience
14+ - ** Custom Endpoint Management** - Support multi-endpoint configuration for aggregator providers
15+ - ** Usage Query Enhancements**
16+ - Auto-refresh interval: Support periodic automatic usage query
17+ - Test Script API: Validate JavaScript scripts before execution
18+ - Template system expansion: Custom blank template, support for access token and user ID parameters
19+ - ** Configuration Editor Improvements**
20+ - Add JSON format button
21+ - Real-time TOML syntax validation for Codex configuration
22+ - ** Auto-sync on Directory Change** - When switching Claude/Codex config directories (e.g., WSL environment), automatically sync current provider to new directory without manual operation
23+ - ** Load Live Config When Editing Active Provider** - When editing the currently active provider, prioritize displaying the actual effective configuration to protect user manual modifications
24+ - ** New Provider Presets** - DMXAPI, Azure Codex, AnyRouter, AiHubMix, MiniMax
25+ - ** Partner Promotion Mechanism** - Support ecosystem partner promotion (e.g., Zhipu GLM Z.ai)
26+
27+ ### 🔧 Improvements
28+
29+ - ** Configuration Directory Switching**
30+ - Introduced unified post-change sync utility (` postChangeSync.ts ` )
31+ - Auto-sync current providers to new directory when changing Claude/Codex config directories
32+ - Perfect support for WSL environment switching
33+ - Auto-sync after config import to ensure immediate effectiveness
34+ - Use Result pattern for graceful error handling without blocking main flow
35+ - Distinguish "fully successful" and "partially successful" states for precise user feedback
36+ - ** UI/UX Enhancements**
37+ - Provider cards: Unique icons and color identification
38+ - Unified border design system across all components
39+ - Drag interaction optimization: Push effect animation, improved handle icons
40+ - Enhanced current provider visual feedback
41+ - Dialog size standardization and layout consistency
42+ - Form experience: Optimized model placeholders, simplified provider hints, category-specific hints
43+ - ** Complete Internationalization Coverage**
44+ - Error messages internationalization
45+ - Tray menu internationalization
46+ - All UI components internationalization
47+ - ** Usage Display Moved Inline** - Usage display moved next to enable button
48+
49+ ### 🐛 Bug Fixes
50+
51+ - ** Configuration Sync**
52+ - Fixed ` apiKeyUrl ` priority issue
53+ - Fixed MCP sync-to-other-side functionality failure
54+ - Fixed sync issues after config import
55+ - Prevent silent fallback and data loss on config error
56+ - ** Usage Query**
57+ - Fixed auto-query interval timing issue
58+ - Ensure refresh button shows loading animation on click
59+ - ** UI Issues**
60+ - Fixed name collision error (` get_init_error ` command)
61+ - Fixed language setting rollback after successful save
62+ - Fixed language switch state reset (dependency cycle)
63+ - Fixed edit mode button alignment
64+ - ** Configuration Management**
65+ - Fixed Codex API Key auto-sync
66+ - Fixed endpoint speed test functionality
67+ - Fixed provider duplicate insertion position (next to original provider)
68+ - Fixed custom endpoint preservation in edit mode
69+ - ** Startup Issues**
70+ - Force exit on config error (no silent fallback)
71+ - Eliminate code duplication causing initialization errors
72+
73+ ### 🏗️ Technical Improvements (For Developers)
74+
75+ ** Backend Refactoring (Rust)** - Completed 5-phase refactoring:
76+ - ** Phase 1** : Unified error handling (` AppError ` + i18n error messages)
77+ - ** Phase 2** : Command layer split by domain (` commands/{provider,mcp,config,settings,plugin,misc}.rs ` )
78+ - ** Phase 3** : Integration tests and transaction mechanism (config snapshot + failure rollback)
79+ - ** Phase 4** : Extracted Service layer (` services/{provider,mcp,config,speedtest}.rs ` )
80+ - ** Phase 5** : Concurrency optimization (` RwLock ` instead of ` Mutex ` , scoped guard to avoid deadlock)
81+
82+ ** Frontend Refactoring (React + TypeScript)** - Completed 4-stage refactoring:
83+ - ** Stage 1** : Test infrastructure (vitest + MSW + @testing-library/react )
84+ - ** Stage 2** : Extracted custom hooks (` useProviderActions ` , ` useMcpActions ` , ` useSettings ` , ` useImportExport ` , etc.)
85+ - ** Stage 3** : Component splitting and business logic extraction
86+ - ** Stage 4** : Code cleanup and formatting unification
87+
88+ ** Testing System** :
89+ - Hooks unit tests 100% coverage
90+ - Integration tests covering key processes (App, SettingsDialog, MCP Panel)
91+ - MSW mocking backend API to ensure test independence
92+
93+ ** Code Quality** :
94+ - Unified parameter format: All Tauri commands migrated to camelCase (Tauri 2 specification)
95+ - ` AppType ` renamed to ` AppId ` : Semantically clearer
96+ - Unified parsing with ` FromStr ` trait: Centralized ` app ` parameter parsing
97+ - Eliminate code duplication: DRY violations cleanup
98+ - Remove unused code: ` missing_param ` helper function, deprecated ` tauri-api.ts ` , redundant ` KimiModelSelector ` component
99+
100+ ** Internal Optimizations** :
101+ - ** Removed Legacy Migration Logic** : v3.6 removed v1 config auto-migration and copy file scanning logic
102+ - ✅ ** Impact** : Improved startup performance, cleaner code
103+ - ✅ ** Compatibility** : v2 format configs fully compatible, no action required
104+ - ⚠️ ** Note** : Users upgrading from v3.1.0 or earlier should first upgrade to v3.2.x or v3.5.x for one-time migration, then upgrade to v3.6
105+ - ** Command Parameter Standardization** : Backend unified to use ` app ` parameter (values: ` claude ` or ` codex ` )
106+ - ✅ ** Impact** : More standardized code, friendlier error prompts
107+ - ✅ ** Compatibility** : Frontend fully adapted, users don't need to care about this change
108+
109+ ### 📦 Dependencies
110+
111+ - Updated to Tauri 2.8.x
112+ - Updated to TailwindCSS 4.x
113+ - Updated to TanStack Query v5.90.x
114+ - Maintained React 18.2.x and TypeScript 5.3.x
115+
8116## [ 3.5.0] - 2025-01-15
9117
10118### ⚠ Breaking Changes
0 commit comments