Skip to content

Commit 8d77866

Browse files
committed
Release v3.6.0: Major architecture refactoring and feature enhancements
New Features: - Provider duplication and manual sorting via drag-and-drop - Custom endpoint management for aggregator providers - Usage query with auto-refresh interval and test script API - Config editor improvements (JSON format button, real-time TOML validation) - Auto-sync on directory change for WSL environment support - Load live config when editing active provider to protect manual modifications - New provider presets: DMXAPI, Azure Codex, AnyRouter, AiHubMix, MiniMax - Partner promotion mechanism (Zhipu GLM Z.ai) Architecture Improvements: - Backend: 5-phase refactoring (error handling → command split → services → concurrency) - Frontend: 4-stage refactoring (tests → hooks → components → cleanup) - Testing: 100% hooks unit test coverage, integration tests for critical flows Documentation: - Complete README rewrite with detailed architecture overview - Separate Chinese (README_ZH.md) and English (README.md) versions - Comprehensive v3.6.0 changelog with categorized changes - New bilingual screenshots and partner banners Bug Fixes: - Fixed configuration sync issues (apiKeyUrl priority, MCP sync, import sync) - Fixed usage query interval timing and refresh button animation - Fixed UI issues (edit mode alignment, language switch state) - Fixed endpoint speed test and provider duplicate insertion position - Force exit on config error to prevent silent fallback Technical Details: - Updated to Tauri 2.8.x, TailwindCSS 4.x, TanStack Query v5.90.x - Removed legacy v1 migration logic for better startup performance - Standardized command parameters (unified to camelCase `app`) - Result pattern for graceful error handling
1 parent 7305b11 commit 8d77866

File tree

16 files changed

+1034
-181
lines changed

16 files changed

+1034
-181
lines changed

CHANGELOG.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,114 @@ All notable changes to CC Switch will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and 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

Comments
 (0)