5.2 KiB
5.2 KiB
Changelog
All notable changes to CC Switch will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[3.2.0] - 2025-09-13
✨ New Features
- System tray provider switching with dynamic menu for Claude/Codex
- Frontend receives
provider-switchedevents 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.jsonand archives originals - Duplicate provider de-duplication by name + API key at startup
- Atomic writes for Codex
auth.json+config.tomlwith rollback on failure - Logging standardized (Rust): use
log::{info,warn,error}instead of stdout prints - 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-srcCSP 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
- Preset providers for Codex (Official, PackyCode)
- API Key auto-write to auth.json when using presets
- New UI components
- App switcher with segmented control design
- Dual editor form for Codex configuration
- Pills-style app switcher with consistent button widths
- Enhanced configuration management
- Multi-app config v2 structure (claude/codex)
- Automatic v1→v2 migration with backup
- OPENAI_API_KEY validation for non-official presets
- 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
[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
- Native system integration without Chromium overhead
- 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
- Added TypeScript strict mode for better type safety
- 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.<timestamp>.json - This only concerns cc-switch's own metadata file; your actual provider files under
~/.claude/and~/.codex/are untouched.
🛠️ Development
- Added
pnpm typecheckcommand for TypeScript validation - Added
pnpm formatandpnpm format:checkfor code formatting - Rust code now uses cargo fmt for consistent formatting
[2.0.0] - Previous Electron Release
Features
- Multi-provider configuration management
- Quick provider switching
- Import/export configurations
- Preset provider templates
[1.0.0] - Initial Release
Features
- Basic provider management
- Claude Code integration
- Configuration file handling