138 lines
5.2 KiB
Markdown
138 lines
5.2 KiB
Markdown
# Changelog
|
|
|
|
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.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
|
|
- Atomic writes for Codex `auth.json` + `config.toml` with 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-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
|
|
- 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 typecheck` command for TypeScript validation
|
|
- Added `pnpm format` and `pnpm format:check` for 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
|