diff --git a/CHANGELOG.md b/CHANGELOG.md index defa3cd..5072f0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ 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.7.1] - 2025-11-22 + +### Fixed + +- **Skills third-party repository installation** (#268) - Fixed installation failure for skills repositories with custom subdirectories (e.g., `ComposioHQ/awesome-claude-skills`) +- **Gemini configuration persistence** - Resolved issue where settings.json edits were lost when switching providers +- **Dialog overlay click protection** - Prevented dialogs from closing when clicking outside, avoiding accidental form data loss (affects 11 dialog components) + +### Added + +- **Gemini configuration directory support** (#255) - Added custom configuration directory option for Gemini in settings +- **ArchLinux installation support** (#259) - Added AUR installation via `paru -S cc-switch-bin` + +### Improved + +- **Skills error messages i18n** - Added 28+ detailed error messages (English & Chinese) with specific resolution suggestions +- **Download timeout** - Extended from 15s to 60s to reduce network-related false positives +- **Code formatting** - Applied unified Rust (`cargo fmt`) and TypeScript (`prettier`) formatting standards + +### Reverted + +- **Auto-launch on system startup** - Temporarily reverted feature pending further testing and optimization + +--- + ## [3.7.0] - 2025-11-19 ### Major Features diff --git a/README.md b/README.md index f8386e5..8c78dee 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # All-in-One Assistant for Claude Code, Codex & Gemini CLI -[![Version](https://img.shields.io/badge/version-3.7.0-blue.svg)](https://github.com/farion1231/cc-switch/releases) +[![Version](https://img.shields.io/badge/version-3.7.1-blue.svg)](https://github.com/farion1231/cc-switch/releases) [![Trending](https://img.shields.io/badge/🔥_TypeScript_Trending-Daily%20%7C%20Weekly%20%7C%20Monthly-ff6b6b.svg)](https://github.com/trending/typescript) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) [![Built with Tauri](https://img.shields.io/badge/built%20with-Tauri%202-orange.svg)](https://tauri.app/) @@ -12,7 +12,9 @@ English | [中文](README_ZH.md) | [Changelog](CHANGELOG.md) -A desktop application for managing and switching between different provider configurations & MCP for Claude Code and Codex. +**From Provider Switcher to All-in-One AI CLI Management Platform** + +Unified management for Claude Code, Codex & Gemini CLI provider configurations, MCP servers, Skills extensions, and system prompts. @@ -33,6 +35,12 @@ Get 10% OFF the GLM CODING PLAN with [this link](https://z.ai/subscribe?ic=8JVLJ PackyCode Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more. PackyCode provides special discounts for our software users: register using this link and enter the "cc-switch" promo code during recharge to get 10% off. + + +ShanDianShuo +Thanks to ShanDianShuo for sponsoring this project! ShanDianShuo is a local-first AI voice input: Millisecond latency, data stays on device, 4x faster than typing, AI-powered correction, Privacy-first, completely free. Doubles your coding efficiency with Claude Code! Free download for Mac/Win + + ## Screenshots @@ -43,12 +51,49 @@ Get 10% OFF the GLM CODING PLAN with [this link](https://z.ai/subscribe?ic=8JVLJ ## Features -### Current Version: v3.7.0 | [Full Changelog](CHANGELOG.md) +### Current Version: v3.7.0 | [Full Changelog](CHANGELOG.md) | [📋 Release Notes](docs/release-note-v3.7.0-en.md) + +**v3.7.0 Major Update (2025-11-19)** + +**Six Core Features, 18,000+ Lines of New Code** + +- **Gemini CLI Integration** + - Third supported AI CLI (Claude Code / Codex / Gemini) + - Dual-file configuration support (`.env` + `settings.json`) + - Complete MCP server management + - Presets: Google Official (OAuth) / PackyCode / Custom + +- **Claude Skills Management System** + - Auto-scan skills from GitHub repositories (3 pre-configured curated repos) + - One-click install/uninstall to `~/.claude/skills/` + - Custom repository support + subdirectory scanning + - Complete lifecycle management (discover/install/update) + +- **Prompts Management System** + - Multi-preset system prompt management (unlimited presets, quick switching) + - Cross-app support (Claude: `CLAUDE.md` / Codex: `AGENTS.md` / Gemini: `GEMINI.md`) + - Markdown editor (CodeMirror 6 + real-time preview) + - Smart backfill protection, preserves manual modifications + +- **MCP v3.7.0 Unified Architecture** + - Single panel manages MCP servers across three applications + - New SSE (Server-Sent Events) transport type + - Smart JSON parser + Codex TOML format auto-correction + - Unified import/export + bidirectional sync + +- **Deep Link Protocol** + - `ccswitch://` protocol registration (all platforms) + - One-click import provider configs via shared links + - Security validation + lifecycle integration + +- **Environment Variable Conflict Detection** + - Auto-detect cross-app configuration conflicts (Claude/Codex/Gemini/MCP) + - Visual conflict indicators + resolution suggestions + - Override warnings + backup before changes **Core Capabilities** - **Provider Management**: One-click switching between Claude Code, Codex, and Gemini API configurations -- **MCP Integration**: Centralized MCP server management with stdio/http support and real-time sync - **Speed Testing**: Measure API endpoint latency with visual quality indicators - **Import/Export**: Backup and restore configs with auto-rotation (keep 10 most recent) - **i18n Support**: Complete Chinese/English localization (UI, errors, tray) @@ -61,7 +106,6 @@ Get 10% OFF the GLM CODING PLAN with [this link](https://z.ai/subscribe?ic=8JVLJ - Granular model configuration (4-tier: Haiku/Sonnet/Opus/Custom) - WSL environment support with auto-sync on directory change - 100% hooks test coverage & complete architecture refactoring -- New presets: DMXAPI, Azure Codex, AnyRouter, AiHubMix, MiniMax **System Features** @@ -129,9 +173,36 @@ Download the latest `CC-Switch-v{version}-Linux.deb` package or `CC-Switch-v{ver ### MCP Management - **Location**: Click "MCP" button in top-right corner -- **Add Server**: Use built-in templates (mcp-fetch, mcp-filesystem) or custom config +- **Add Server**: + - Use built-in templates (mcp-fetch, mcp-filesystem, etc.) + - Support stdio / http / sse transport types + - Configure independent MCP servers for different apps - **Enable/Disable**: Toggle switches to control which servers sync to live config -- **Sync**: Enabled servers auto-sync to `~/.claude.json` (Claude) or `~/.codex/config.toml` (Codex) +- **Sync**: Enabled servers auto-sync to each app's live files +- **Import/Export**: Import existing MCP servers from Claude/Codex/Gemini config files + +### Skills Management (v3.7.0 New) + +- **Location**: Click "Skills" button in top-right corner +- **Discover Skills**: + - Auto-scan pre-configured GitHub repositories (Anthropic official, ComposioHQ, community, etc.) + - Add custom repositories (supports subdirectory scanning) +- **Install Skills**: Click "Install" to one-click install to `~/.claude/skills/` +- **Uninstall Skills**: Click "Uninstall" to safely remove and clean up state +- **Manage Repositories**: Add/remove custom GitHub repositories + +### Prompts Management (v3.7.0 New) + +- **Location**: Click "Prompts" button in top-right corner +- **Create Presets**: + - Create unlimited system prompt presets + - Use Markdown editor to write prompts (syntax highlighting + real-time preview) +- **Switch Presets**: Select preset → Click "Activate" to apply immediately +- **Sync Mechanism**: + - Claude: `~/.claude/CLAUDE.md` + - Codex: `~/.codex/AGENTS.md` + - Gemini: `~/.gemini/GEMINI.md` +- **Protection Mechanism**: Auto-save current prompt content before switching, preserves manual modifications ### Configuration Files @@ -149,13 +220,15 @@ Download the latest `CC-Switch-v{version}-Linux.deb` package or `CC-Switch-v{ver **Gemini** -- Live config: `~/.gemini/.env` (API key) + `~/.gemini/settings.json` (auth type for quick switching) -- API key field: `GEMINI_API_KEY` inside `.env` -- Tray quick switch: each provider switch rewrites `~/.gemini/.env` so the Gemini CLI picks up the new credentials immediately +- Live config: `~/.gemini/.env` (API key) + `~/.gemini/settings.json` (auth mode) +- API key field: `GEMINI_API_KEY` or `GOOGLE_GEMINI_API_KEY` in `.env` +- Environment variables: Support `GOOGLE_GEMINI_BASE_URL`, `GEMINI_MODEL`, etc. +- MCP servers: `~/.gemini/settings.json` → `mcpServers` +- Tray quick switch: Each provider switch rewrites `~/.gemini/.env`, no need to restart Gemini CLI **CC Switch Storage** -- Main config (SSOT): `~/.cc-switch/config.json` +- Main config (SSOT): `~/.cc-switch/config.json` (includes providers, MCP, Prompts presets, etc.) - Settings: `~/.cc-switch/settings.json` - Backups: `~/.cc-switch/backups/` (auto-rotate, keep 10) diff --git a/README_ZH.md b/README_ZH.md index 7a9ff3b..5612901 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -2,7 +2,7 @@ # Claude Code / Codex / Gemini CLI 全方位辅助工具 -[![Version](https://img.shields.io/badge/version-3.7.0-blue.svg)](https://github.com/farion1231/cc-switch/releases) +[![Version](https://img.shields.io/badge/version-3.7.1-blue.svg)](https://github.com/farion1231/cc-switch/releases) [![Trending](https://img.shields.io/badge/🔥_TypeScript_Trending-Daily%20%7C%20Weekly%20%7C%20Monthly-ff6b6b.svg)](https://github.com/trending/typescript) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) [![Built with Tauri](https://img.shields.io/badge/built%20with-Tauri%202-orange.svg)](https://tauri.app/) @@ -10,9 +10,11 @@ farion1231%2Fcc-switch | Trendshift -[English](README.md) | 中文 | [更新日志](CHANGELOG.md) +[English](README.md) | 中文 | [更新日志](CHANGELOG.md) | [📋 v3.7.0 发布说明](docs/release-note-v3.7.0-zh.md) -一个用于管理和切换 Claude Code 与 Codex 不同供应商配置、MCP的桌面应用。 +**从供应商切换器到 AI CLI 一体化管理平台** + +统一管理 Claude Code、Codex 与 Gemini CLI 的供应商配置、MCP 服务器、Skills 扩展和系统提示词。 @@ -33,6 +35,12 @@ CC Switch 已经预设了智谱GLM,只需要填写 key 即可一键导入编 PackyCode 感谢 PackyCode 赞助了本项目!PackyCode 是一家稳定、高效的API中转服务商,提供 Claude Code、Codex、Gemini 等多种中转服务。PackyCode 为本软件的用户提供了特别优惠,使用此链接注册并在充值时填写"cc-switch"优惠码,可以享受9折优惠。 + + +ShanDianShuo +感谢闪电说赞助了本项目!闪电说是本地优先的 AI 语音输入法:毫秒级响应,数据不离设备;打字速度提升 4 倍,AI 智能纠错;绝对隐私安全,完全免费,配合 Claude Code 写代码效率翻倍!支持 Mac/Win 双平台,免费下载 + + ## 界面预览 @@ -45,10 +53,47 @@ CC Switch 已经预设了智谱GLM,只需要填写 key 即可一键导入编 ### 当前版本:v3.7.0 | [完整更新日志](CHANGELOG.md) +**v3.7.0 重大更新(2025-11-19)** + +**六大核心功能,18,000+ 行新增代码** + +- **Gemini CLI 集成** + - 第三个支持的 AI CLI(Claude Code / Codex / Gemini) + - 双文件配置支持(`.env` + `settings.json`) + - 完整 MCP 服务器管理 + - 预设:Google Official (OAuth) / PackyCode / 自定义 + +- **Claude Skills 管理系统** + - 从 GitHub 仓库自动扫描技能(预配置 3 个精选仓库) + - 一键安装/卸载到 `~/.claude/skills/` + - 自定义仓库支持 + 子目录扫描 + - 完整生命周期管理(发现/安装/更新) + +- **Prompts 管理系统** + - 多预设系统提示词管理(无限数量,快速切换) + - 跨应用支持(Claude: `CLAUDE.md` / Codex: `AGENTS.md` / Gemini: `GEMINI.md`) + - Markdown 编辑器(CodeMirror 6 + 实时预览) + - 智能回填保护,保留手动修改 + +- **MCP v3.7.0 统一架构** + - 单一面板管理三个应用的 MCP 服务器 + - 新增 SSE (Server-Sent Events) 传输类型 + - 智能 JSON 解析器 + Codex TOML 格式自动修正 + - 统一导入/导出 + 双向同步 + +- **深度链接协议** + - `ccswitch://` 协议注册(全平台) + - 通过共享链接一键导入供应商配置 + - 安全验证 + 生命周期集成 + +- **环境变量冲突检测** + - 自动检测跨应用配置冲突(Claude/Codex/Gemini/MCP) + - 可视化冲突指示器 + 解决建议 + - 覆盖警告 + 更改前备份 + **核心功能** - **供应商管理**:一键切换 Claude Code、Codex 与 Gemini 的 API 配置 -- **MCP 集成**:集中管理 MCP 服务器,支持 stdio/http 类型和实时同步 - **速度测试**:测量 API 端点延迟,可视化连接质量指示器 - **导入导出**:备份和恢复配置,自动轮换(保留最近 10 个) - **国际化支持**:完整的中英文本地化(UI、错误、托盘) @@ -61,7 +106,6 @@ CC Switch 已经预设了智谱GLM,只需要填写 key 即可一键导入编 - 细粒度模型配置(四层:Haiku/Sonnet/Opus/自定义) - WSL 环境支持,配置目录切换自动同步 - 100% hooks 测试覆盖 & 完整架构重构 -- 新增预设:DMXAPI、Azure Codex、AnyRouter、AiHubMix、MiniMax **系统功能** @@ -129,9 +173,36 @@ paru -S cc-switch-bin ### MCP 管理 - **位置**:点击右上角"MCP"按钮 -- **添加服务器**:使用内置模板(mcp-fetch、mcp-filesystem)或自定义配置 +- **添加服务器**: + - 使用内置模板(mcp-fetch、mcp-filesystem 等) + - 支持 stdio / http / sse 三种传输类型 + - 为不同应用配置独立的 MCP 服务器 - **启用/禁用**:切换开关以控制哪些服务器同步到 live 配置 -- **同步**:启用的服务器自动同步到 `~/.claude.json`(Claude)或 `~/.codex/config.toml`(Codex) +- **同步**:启用的服务器自动同步到各应用的 live 文件 +- **导入/导出**:支持从 Claude/Codex/Gemini 配置文件导入现有 MCP 服务器 + +### Skills 管理(v3.7.0 新增) + +- **位置**:点击右上角"Skills"按钮 +- **发现技能**: + - 自动扫描预配置的 GitHub 仓库(Anthropic 官方、ComposioHQ、社区等) + - 添加自定义仓库(支持子目录扫描) +- **安装技能**:点击"安装"一键安装到 `~/.claude/skills/` +- **卸载技能**:点击"卸载"安全移除并清理状态 +- **管理仓库**:添加/删除自定义 GitHub 仓库 + +### Prompts 管理(v3.7.0 新增) + +- **位置**:点击右上角"Prompts"按钮 +- **创建预设**: + - 创建无限数量的系统提示词预设 + - 使用 Markdown 编辑器编写提示词(语法高亮 + 实时预览) +- **切换预设**:选择预设 → 点击"激活"立即应用 +- **同步机制**: + - Claude: `~/.claude/CLAUDE.md` + - Codex: `~/.codex/AGENTS.md` + - Gemini: `~/.gemini/GEMINI.md` +- **保护机制**:切换前自动保存当前提示词内容,保留手动修改 ### 配置文件 @@ -149,13 +220,15 @@ paru -S cc-switch-bin **Gemini** -- Live 配置:`~/.gemini/.env`(API Key)+ `~/.gemini/settings.json`(保存认证模式,支持托盘快速切换) -- API key 字段:`.env` 文件中的 `GEMINI_API_KEY` -- 托盘快速切换:每次切换供应商都会重写 `~/.gemini/.env`,Gemini CLI 无需额外操作即可使用新配置 +- Live 配置:`~/.gemini/.env`(API Key)+ `~/.gemini/settings.json`(保存认证模式) +- API key 字段:`.env` 文件中的 `GEMINI_API_KEY` 或 `GOOGLE_GEMINI_API_KEY` +- 环境变量:支持 `GOOGLE_GEMINI_BASE_URL`、`GEMINI_MODEL` 等自定义变量 +- MCP 服务器:`~/.gemini/settings.json` → `mcpServers` +- 托盘快速切换:每次切换供应商都会重写 `~/.gemini/.env`,无需重启 Gemini CLI 即可生效 **CC Switch 存储** -- 主配置(SSOT):`~/.cc-switch/config.json` +- 主配置(SSOT):`~/.cc-switch/config.json`(包含供应商、MCP、Prompts 预设等) - 设置:`~/.cc-switch/settings.json` - 备份:`~/.cc-switch/backups/`(自动轮换,保留 10 个) diff --git a/assets/partners/logos/sds-en.png b/assets/partners/logos/sds-en.png new file mode 100644 index 0000000..ad39c82 Binary files /dev/null and b/assets/partners/logos/sds-en.png differ diff --git a/assets/partners/logos/sds-zh.png b/assets/partners/logos/sds-zh.png new file mode 100644 index 0000000..c445218 Binary files /dev/null and b/assets/partners/logos/sds-zh.png differ diff --git a/docs/release-note-v3.7.1-en.md b/docs/release-note-v3.7.1-en.md new file mode 100644 index 0000000..b549ecf --- /dev/null +++ b/docs/release-note-v3.7.1-en.md @@ -0,0 +1,481 @@ +# CC Switch v3.7.1 + +> Stability Enhancements and User Experience Improvements + +**[中文更新说明 Chinese Documentation →](release-note-v3.7.1-zh.md)** + +--- + +## v3.7.1 Updates + +**Release Date**: 2025-11-22 +**Code Changes**: 17 files, +524 / -81 lines + +### Bug Fixes + +- **Fix Third-Party Skills Installation Failure** (#268) + Fixed installation issues for skills repositories with custom subdirectories, now supports repos like `ComposioHQ/awesome-claude-skills` with subdirectories + +- **Fix Gemini Configuration Persistence Issue** + Resolved the issue where settings.json edits in Gemini form were lost when switching providers + +- **Prevent Dialogs from Closing on Overlay Click** + Added protection against clicking overlay/backdrop, preventing accidental form data loss across all 11 dialog components + +### New Features + +- **Gemini Configuration Directory Support** (#255) + Added Gemini configuration directory option in settings, supports customizing `~/.gemini/` path + +- **ArchLinux Installation Support** (#259) + Added AUR installation method: `paru -S cc-switch-bin` + +### Improvements + +- **Skills Error Message i18n Enhancement** + Added 28+ detailed error messages (English & Chinese) with specific resolution suggestions, extended download timeout from 15s to 60s + +- **Code Formatting** + Applied unified Rust and TypeScript code formatting standards + +### Download + +Visit [Releases](https://github.com/farion1231/cc-switch/releases/latest) to download the latest version + +--- + +## v3.7.0 Complete Release Notes + +> From Provider Switcher to All-in-One AI CLI Management Platform + +**Release Date**: 2025-11-19 +**Commits**: 85 from v3.6.0 +**Code Changes**: 152 files, +18,104 / -3,732 lines + +--- + +## New Features + +### Gemini CLI Integration + +Complete support for Google Gemini CLI, becoming the third supported application (Claude Code, Codex, Gemini). + +**Core Capabilities**: + +- **Dual-file configuration** - Support for both `.env` and `settings.json` formats +- **Auto-detection** - Automatically detect `GOOGLE_GEMINI_BASE_URL`, `GEMINI_MODEL`, etc. +- **Full MCP support** - Complete MCP server management for Gemini +- **Deep link integration** - Import via `ccswitch://` protocol +- **System tray** - Quick-switch from tray menu + +**Provider Presets**: + +- **Google Official** - OAuth authentication support +- **PackyCode** - Partner integration +- **Custom** - Full customization support + +**Technical Implementation**: + +- New backend modules: `gemini_config.rs` (20KB), `gemini_mcp.rs` +- Form synchronization with environment editor +- Dual-file atomic writes + +--- + +### MCP v3.7.0 Unified Architecture + +Complete refactoring of MCP management system for cross-application unification. + +**Architecture Improvements**: + +- **Unified panel** - Single interface for Claude/Codex/Gemini MCP servers +- **SSE transport** - New Server-Sent Events support +- **Smart parser** - Fault-tolerant JSON parsing +- **Format correction** - Auto-fix Codex `[mcp_servers]` format +- **Extended fields** - Preserve custom TOML fields + +**User Experience**: + +- Default app selection in forms +- JSON formatter for validation +- Improved visual hierarchy +- Better error messages + +**Import/Export**: + +- Unified import from all three apps +- Bidirectional synchronization +- State preservation + +--- + +### Claude Skills Management System + +**Approximately 2,000 lines of code** - A complete skill ecosystem platform. + +**GitHub Integration**: + +- Auto-scan skills from GitHub repositories +- Pre-configured repos: + - `ComposioHQ/awesome-claude-skills` - Curated collection + - `anthropics/skills` - Official Anthropic skills + - `cexll/myclaude` - Community contributions +- Add custom repositories +- Subdirectory scanning support (`skillsPath`) + +**Lifecycle Management**: + +- **Discover** - Auto-detect `SKILL.md` files +- **Install** - One-click to `~/.claude/skills/` +- **Uninstall** - Safe removal with tracking +- **Update** - Check for updates (infrastructure ready) + +**Technical Architecture**: + +- **Backend**: `SkillService` (526 lines) with GitHub API integration +- **Frontend**: SkillsPage, SkillCard, RepoManager +- **UI Components**: Badge, Card, Table (shadcn/ui) +- **State**: Persistent storage in `config.json` +- **i18n**: 47+ translation keys + +--- + +### Prompts Management System + +**Approximately 1,300 lines of code** - Complete system prompt management. + +**Multi-Preset Management**: + +- Create unlimited prompt presets +- Quick switch between presets +- One active prompt at a time +- Delete protection for active prompts + +**Cross-App Support**: + +- **Claude**: `~/.claude/CLAUDE.md` +- **Codex**: `~/.codex/AGENTS.md` +- **Gemini**: `~/.gemini/GEMINI.md` + +**Markdown Editor**: + +- Full-featured CodeMirror 6 integration +- Syntax highlighting +- Dark theme (One Dark) +- Real-time preview + +**Smart Synchronization**: + +- **Auto-write** - Immediately write to live files +- **Backfill protection** - Save current content before switching +- **Auto-import** - Import from live files on first launch +- **Modification protection** - Preserve manual modifications + +**Technical Implementation**: + +- **Backend**: `PromptService` (213 lines) +- **Frontend**: PromptPanel (177), PromptFormModal (160), MarkdownEditor (159) +- **Hooks**: usePromptActions (152 lines) +- **i18n**: 41+ translation keys + +--- + +### Deep Link Protocol (ccswitch://) + +One-click provider configuration import via URL scheme. + +**Features**: + +- Protocol registration on all platforms +- Import from shared links +- Lifecycle integration +- Security validation + +--- + +### Environment Variable Conflict Detection + +Intelligent detection and management of configuration conflicts. + +**Detection Scope**: + +- **Claude & Codex** - Cross-app conflicts +- **Gemini** - Auto-discovery +- **MCP** - Server configuration conflicts + +**Management Features**: + +- Visual conflict indicators +- Resolution suggestions +- Override warnings +- Backup before changes + +--- + +## Improvements + +### Provider Management + +**New Presets**: + +- **DouBaoSeed** - ByteDance's DouBao +- **Kimi For Coding** - Moonshot AI +- **BaiLing** - BaiLing AI +- **Removed AnyRouter** - To avoid confusion + +**Enhancements**: + +- Model name configuration for Codex and Gemini +- Provider notes field for organization +- Enhanced preset metadata + +### Configuration Management + +- **Common config migration** - From localStorage to `config.json` +- **Unified persistence** - Shared across all apps +- **Auto-import** - First launch configuration import +- **Backfill priority** - Correct handling of live files + +### UI/UX Improvements + +**Design System**: + +- **macOS native** - System-aligned color scheme +- **Window centering** - Default centered position +- **Visual polish** - Improved spacing and hierarchy + +**Interactions**: + +- **Password input** - Fixed Edge/IE reveal buttons +- **URL overflow** - Fixed card overflow +- **Error copying** - Copy-to-clipboard errors +- **Tray sync** - Real-time drag-and-drop sync + +--- + +## Bug Fixes + +### Critical Fixes + +- **Usage script validation** - Boundary checks +- **Gemini validation** - Relaxed constraints +- **TOML parsing** - CJK quote handling +- **MCP fields** - Custom field preservation +- **White screen** - FormLabel crash fix + +### Stability + +- **Tray safety** - Pattern matching instead of unwrap +- **Error isolation** - Tray failures don't block operations +- **Import classification** - Correct category assignment + +### UI Fixes + +- **Model placeholders** - Removed misleading hints +- **Base URL** - Auto-fill for third-party providers +- **Drag sort** - Tray menu synchronization + +--- + +## Technical Improvements + +### Architecture + +**MCP v3.7.0**: + +- Removed legacy code (~1,000 lines) +- Unified initialization structure +- Backward compatibility maintained +- Comprehensive code formatting + +**Platform Compatibility**: + +- Windows winreg API fix (v0.52) +- Safe pattern matching (no `unwrap()`) +- Cross-platform tray handling + +### Configuration + +**Synchronization**: + +- MCP sync across all apps +- Gemini form-editor sync +- Dual-file reading (.env + settings.json) + +**Validation**: + +- Input boundary checks +- TOML quote normalization (CJK) +- Custom field preservation +- Enhanced error messages + +### Code Quality + +**Type Safety**: + +- Complete TypeScript coverage +- Rust type refinements +- API contract validation + +**Testing**: + +- Simplified assertions +- Better test coverage +- Integration test updates + +**Dependencies**: + +- Tauri 2.8.x +- Rust: `anyhow`, `zip`, `serde_yaml`, `tempfile` +- Frontend: CodeMirror 6 packages +- winreg 0.52 (Windows) + +--- + +## Technical Statistics + +``` +Total Changes: +- Commits: 85 +- Files: 152 changed +- Additions: +18,104 lines +- Deletions: -3,732 lines + +New Modules: +- Skills Management: 2,034 lines (21 files) +- Prompts Management: 1,302 lines (20 files) +- Gemini Integration: ~1,000 lines +- MCP Refactor: ~3,000 lines refactored + +Code Distribution: +- Backend (Rust): ~4,500 lines new +- Frontend (React): ~3,000 lines new +- Configuration: ~1,500 lines refactored +- Tests: ~500 lines +``` + +--- + +## Strategic Positioning + +### From Tool to Platform + +v3.7.0 represents a shift in CC Switch's positioning: + +| Aspect | v3.6 | v3.7.0 | +| ----------------- | ------------------------ | ---------------------------- | +| **Identity** | Provider Switcher | AI CLI Management Platform | +| **Scope** | Configuration Management | Ecosystem Management | +| **Applications** | Claude + Codex | Claude + Codex + Gemini | +| **Capabilities** | Switch configs | Extend capabilities (Skills) | +| **Customization** | Manual editing | Visual management (Prompts) | +| **Integration** | Isolated apps | Unified management (MCP) | + +### Six Pillars of AI CLI Management + +1. **Configuration Management** - Provider switching and management +2. **Capability Extension** - Skills installation and lifecycle +3. **Behavior Customization** - System prompt presets +4. **Ecosystem Integration** - Deep links and sharing +5. **Multi-AI Support** - Claude/Codex/Gemini +6. **Intelligent Detection** - Conflict prevention + +--- + +## Download & Installation + +### System Requirements + +- **Windows**: Windows 10+ +- **macOS**: macOS 10.15 (Catalina)+ +- **Linux**: Ubuntu 22.04+ / Debian 11+ / Fedora 34+ / ArchLinux + +### Download Links + +Visit [Releases](https://github.com/farion1231/cc-switch/releases/latest) to download: + +- **Windows**: `CC-Switch-Windows.msi` or `-Portable.zip` +- **macOS**: `CC-Switch-macOS.tar.gz` or `.zip` +- **Linux**: `CC-Switch-Linux.AppImage` or `.deb` +- **ArchLinux**: `paru -S cc-switch-bin` + +### Homebrew (macOS) + +```bash +brew tap farion1231/ccswitch +brew install --cask cc-switch +``` + +Update: + +```bash +brew upgrade --cask cc-switch +``` + +--- + +## Migration Notes + +### From v3.6.x + +**Automatic migration** - No action required, configs are fully compatible + +### From v3.1.x or Earlier + +**Two-step migration required**: + +1. First upgrade to v3.2.x (performs one-time migration) +2. Then upgrade to v3.7.0 + +### New Features + +- **Skills**: No migration needed, start fresh +- **Prompts**: Auto-import from live files on first launch +- **Gemini**: Install Gemini CLI separately if needed +- **MCP v3.7.0**: Backward compatible with previous configs + +--- + +## Acknowledgments + +### Contributors + +Thanks to all contributors who made this release possible: + +- [@YoVinchen](https://github.com/YoVinchen) - Skills & Prompts & Gemini integration implementation +- [@farion1231](https://github.com/farion1231) - From developer to issue responder +- Community members for testing and feedback + +### Sponsors + +**Z.ai** - GLM CODING PLAN sponsor +[Get 10% OFF with this link](https://z.ai/subscribe?ic=8JVLJQFSKB) + +**PackyCode** - API relay service partner +[Register with "cc-switch" code for 10% discount](https://www.packyapi.com/register?aff=cc-switch) + +**ShanDianShuo** - Local-first AI voice input +[Free download](https://shandianshuo.cn) for Mac/Win + +--- + +## Feedback & Support + +- **Issues**: [GitHub Issues](https://github.com/farion1231/cc-switch/issues) +- **Discussions**: [GitHub Discussions](https://github.com/farion1231/cc-switch/discussions) +- **Documentation**: [README](../README.md) +- **Changelog**: [CHANGELOG.md](../CHANGELOG.md) + +--- + +## What's Next + +**v3.8.0 Preview** (Tentative): + +- Local proxy functionality + +Stay tuned for more updates! + +--- + +**Happy Coding!** diff --git a/docs/release-note-v3.7.1-zh.md b/docs/release-note-v3.7.1-zh.md new file mode 100644 index 0000000..67cc0ed --- /dev/null +++ b/docs/release-note-v3.7.1-zh.md @@ -0,0 +1,481 @@ +# CC Switch v3.7.1 + +> 稳定性增强与用户体验改进 + +**[English Version →](release-note-v3.7.1-en.md)** + +--- + +## v3.7.1 更新内容 + +**发布日期**:2025-11-22 +**代码变更**:17 个文件,+524 / -81 行 + +### Bug 修复 + +- **修复 Skills 第三方仓库安装失败** (#268) + 修复使用自定义子目录的 skills 仓库无法安装的问题,支持类似 `ComposioHQ/awesome-claude-skills` 这样带子目录的仓库 + +- **修复 Gemini 配置持久化问题** + 解决在 Gemini 表单中编辑 settings.json 后,切换供应商时修改丢失的问题 + +- **防止对话框意外关闭** + 添加点击遮罩时的保护,避免误操作导致表单数据丢失,影响所有 11 个对话框组件 + +### 新增功能 + +- **Gemini 配置目录支持** (#255) + 在设置中添加 Gemini 配置目录选项,支持自定义 `~/.gemini/` 路径 + +- **ArchLinux 安装支持** (#259) + 添加 AUR 安装方式:`paru -S cc-switch-bin` + +### 改进 + +- **Skills 错误消息国际化增强** + 新增 28+ 条详细错误消息(中英文),提供具体的解决建议,下载超时从 15 秒延长到 60 秒 + +- **代码格式化** + 应用统一的 Rust 和 TypeScript 代码格式化标准 + +### 下载 + +访问 [Releases](https://github.com/farion1231/cc-switch/releases/latest) 下载最新版本 + +--- + +## v3.7.0 完整更新说明 + +> 从供应商切换器到 AI CLI 一体化管理平台 + +**发布日期**:2025-11-19 +**提交数量**:从 v3.6.0 开始 85 个提交 +**代码变更**:152 个文件,+18,104 / -3,732 行 + +--- + +## 新增功能 + +### Gemini CLI 集成 + +完整支持 Google Gemini CLI,成为第三个支持的应用(Claude Code、Codex、Gemini)。 + +**核心能力**: + +- **双文件配置** - 同时支持 `.env` 和 `settings.json` 格式 +- **自动检测** - 自动检测 `GOOGLE_GEMINI_BASE_URL`、`GEMINI_MODEL` 等环境变量 +- **完整 MCP 支持** - 为 Gemini 提供完整的 MCP 服务器管理 +- **深度链接集成** - 通过 `ccswitch://` 协议导入配置 +- **系统托盘** - 从托盘菜单快速切换 + +**供应商预设**: + +- **Google Official** - 支持 OAuth 认证 +- **PackyCode** - 合作伙伴集成 +- **自定义** - 完全自定义支持 + +**技术实现**: + +- 新增后端模块:`gemini_config.rs`(20KB)、`gemini_mcp.rs` +- 表单与环境编辑器同步 +- 双文件原子写入 + +--- + +### MCP v3.7.0 统一架构 + +MCP 管理系统完整重构,实现跨应用统一管理。 + +**架构改进**: + +- **统一管理面板** - 单一界面管理 Claude/Codex/Gemini MCP 服务器 +- **SSE 传输类型** - 新增 Server-Sent Events 支持 +- **智能解析器** - 容错性 JSON 解析 +- **格式修正** - 自动修复 Codex `[mcp_servers]` 格式 +- **扩展字段** - 保留自定义 TOML 字段 + +**用户体验**: + +- 表单中的默认应用选择 +- JSON 格式化器用于验证 +- 改进的视觉层次 +- 更好的错误消息 + +**导入/导出**: + +- 统一从三个应用导入 +- 双向同步 +- 状态保持 + +--- + +### Claude Skills 管理系统 + +**约 2,000 行代码** - 完整的技能生态平台。 + +**GitHub 集成**: + +- 从 GitHub 仓库自动扫描技能 +- 预配置仓库: + - `ComposioHQ/awesome-claude-skills` - 精选集合 + - `anthropics/skills` - Anthropic 官方技能 + - `cexll/myclaude` - 社区贡献 +- 添加自定义仓库 +- 子目录扫描支持(`skillsPath`) + +**生命周期管理**: + +- **发现** - 自动检测 `SKILL.md` 文件 +- **安装** - 一键安装到 `~/.claude/skills/` +- **卸载** - 安全移除并跟踪状态 +- **更新** - 检查更新(基础设施已就绪) + +**技术架构**: + +- **后端**:`SkillService`(526 行)集成 GitHub API +- **前端**:SkillsPage、SkillCard、RepoManager +- **UI 组件**:Badge、Card、Table(shadcn/ui) +- **状态**:持久化存储在 `config.json` +- **国际化**:47+ 个翻译键 + +--- + +### Prompts 管理系统 + +**约 1,300 行代码** - 完整的系统提示词管理。 + +**多预设管理**: + +- 创建无限数量的提示词预设 +- 快速在预设间切换 +- 同时只能激活一个提示词 +- 活动提示词删除保护 + +**跨应用支持**: + +- **Claude**:`~/.claude/CLAUDE.md` +- **Codex**:`~/.codex/AGENTS.md` +- **Gemini**:`~/.gemini/GEMINI.md` + +**Markdown 编辑器**: + +- 完整的 CodeMirror 6 集成 +- 语法高亮 +- 暗色主题(One Dark) +- 实时预览 + +**智能同步**: + +- **自动写入** - 立即写入 live 文件 +- **回填保护** - 切换前保存当前内容 +- **自动导入** - 首次启动从 live 文件导入 +- **修改保护** - 保留手动修改 + +**技术实现**: + +- **后端**:`PromptService`(213 行) +- **前端**:PromptPanel(177)、PromptFormModal(160)、MarkdownEditor(159) +- **Hooks**:usePromptActions(152 行) +- **国际化**:41+ 个翻译键 + +--- + +### 深度链接协议(ccswitch://) + +通过 URL 方案一键导入供应商配置。 + +**功能特性**: + +- 所有平台的协议注册 +- 从共享链接导入 +- 生命周期集成 +- 安全验证 + +--- + +### 环境变量冲突检测 + +智能检测和管理配置冲突。 + +**检测范围**: + +- **Claude & Codex** - 跨应用冲突 +- **Gemini** - 自动发现 +- **MCP** - 服务器配置冲突 + +**管理功能**: + +- 可视化冲突指示器 +- 解决建议 +- 覆盖警告 +- 更改前备份 + +--- + +## 改进优化 + +### 供应商管理 + +**新增预设**: + +- **DouBaoSeed** - 字节跳动的豆包 +- **Kimi For Coding** - 月之暗面 +- **BaiLing** - 百灵 AI +- **移除 AnyRouter** - 避免误导 + +**增强功能**: + +- Codex 和 Gemini 的模型名称配置 +- 供应商备注字段用于组织 +- 增强的预设元数据 + +### 配置管理 + +- **通用配置迁移** - 从 localStorage 迁移到 `config.json` +- **统一持久化** - 跨所有应用共享 +- **自动导入** - 首次启动配置导入 +- **回填优先级** - 正确处理 live 文件 + +### UI/UX 改进 + +**设计系统**: + +- **macOS 原生** - 与系统对齐的配色方案 +- **窗口居中** - 默认居中位置 +- **视觉优化** - 改进的间距和层次 + +**交互优化**: + +- **密码输入** - 修复 Edge/IE 显示按钮 +- **URL 溢出** - 修复卡片溢出 +- **错误复制** - 可复制到剪贴板的错误 +- **托盘同步** - 实时拖放同步 + +--- + +## Bug 修复 + +### 关键修复 + +- **用量脚本验证** - 边界检查 +- **Gemini 验证** - 放宽约束 +- **TOML 解析** - CJK 引号处理 +- **MCP 字段** - 自定义字段保留 +- **白屏** - FormLabel 崩溃修复 + +### 稳定性 + +- **托盘安全** - 模式匹配替代 unwrap +- **错误隔离** - 托盘失败不阻塞操作 +- **导入分类** - 正确的类别分配 + +### UI 修复 + +- **模型占位符** - 移除误导性提示 +- **Base URL** - 第三方供应商自动填充 +- **拖拽排序** - 托盘菜单同步 + +--- + +## 技术改进 + +### 架构 + +**MCP v3.7.0**: + +- 移除遗留代码(约 1,000 行) +- 统一初始化结构 +- 保持向后兼容性 +- 全面的代码格式化 + +**平台兼容性**: + +- Windows winreg API 修复(v0.52) +- 安全模式匹配(无 `unwrap()`) +- 跨平台托盘处理 + +### 配置 + +**同步机制**: + +- 跨所有应用的 MCP 同步 +- Gemini 表单-编辑器同步 +- 双文件读取(.env + settings.json) + +**验证增强**: + +- 输入边界检查 +- TOML 引号规范化(CJK) +- 自定义字段保留 +- 增强的错误消息 + +### 代码质量 + +**类型安全**: + +- 完整的 TypeScript 覆盖 +- Rust 类型改进 +- API 契约验证 + +**测试**: + +- 简化的断言 +- 更好的测试覆盖 +- 集成测试更新 + +**依赖项**: + +- Tauri 2.8.x +- Rust:`anyhow`、`zip`、`serde_yaml`、`tempfile` +- 前端:CodeMirror 6 包 +- winreg 0.52(Windows) + +--- + +## 技术统计 + +``` +总体变更: +- 提交数:85 +- 文件数:152 个文件变更 +- 新增:+18,104 行 +- 删除:-3,732 行 + +新增模块: +- Skills 管理:2,034 行(21 个文件) +- Prompts 管理:1,302 行(20 个文件) +- Gemini 集成:约 1,000 行 +- MCP 重构:约 3,000 行重构 + +代码分布: +- 后端(Rust):约 4,500 行新增 +- 前端(React):约 3,000 行新增 +- 配置:约 1,500 行重构 +- 测试:约 500 行 +``` + +--- + +## 战略定位 + +### 从工具到平台 + +v3.7.0 代表了 CC Switch 定位的转变: + +| 方面 | v3.6 | v3.7.0 | +| -------- | -------------- | ----------------------- | +| **身份** | 供应商切换器 | AI CLI 管理平台 | +| **范围** | 配置管理 | 生态系统管理 | +| **应用** | Claude + Codex | Claude + Codex + Gemini | +| **能力** | 切换配置 | 扩展能力(Skills) | +| **定制** | 手动编辑 | 可视化管理(Prompts) | +| **集成** | 孤立应用 | 统一管理(MCP) | + +### AI CLI 管理六大支柱 + +1. **配置管理** - 供应商切换和管理 +2. **能力扩展** - Skills 安装和生命周期 +3. **行为定制** - 系统提示词预设 +4. **生态集成** - 深度链接和共享 +5. **多 AI 支持** - Claude/Codex/Gemini +6. **智能检测** - 冲突预防 + +--- + +## 下载与安装 + +### 系统要求 + +- **Windows**:Windows 10+ +- **macOS**:macOS 10.15(Catalina)+ +- **Linux**:Ubuntu 22.04+ / Debian 11+ / Fedora 34+ / ArchLinux + +### 下载链接 + +访问 [Releases](https://github.com/farion1231/cc-switch/releases/latest) 下载: + +- **Windows**:`CC-Switch-Windows.msi` 或 `-Portable.zip` +- **macOS**:`CC-Switch-macOS.tar.gz` 或 `.zip` +- **Linux**:`CC-Switch-Linux.AppImage` 或 `.deb` +- **ArchLinux**:`paru -S cc-switch-bin` + +### Homebrew(macOS) + +```bash +brew tap farion1231/ccswitch +brew install --cask cc-switch +``` + +更新: + +```bash +brew upgrade --cask cc-switch +``` + +--- + +## 迁移说明 + +### 从 v3.6.x 升级 + +**自动迁移** - 无需任何操作,配置完全兼容 + +### 从 v3.1.x 或更早版本升级 + +**需要两步迁移**: + +1. 首先升级到 v3.2.x(执行一次性迁移) +2. 然后升级到 v3.7.0 + +### 新功能 + +- **Skills**:无需迁移,全新开始 +- **Prompts**:首次启动时从 live 文件自动导入 +- **Gemini**:需要单独安装 Gemini CLI +- **MCP v3.7.0**:与之前的配置向后兼容 + +--- + +## 致谢 + +### 贡献者 + +感谢所有让这个版本成为可能的贡献者: + +- [@YoVinchen](https://github.com/YoVinchen) - Skills & Prompts & Gemini 集成实现 +- [@farion1231](https://github.com/farion1231) - 从开发沦为 issue 回复机 +- 社区成员的测试和反馈 + +### 赞助商 + +**智谱AI** - GLM CODING PLAN 赞助商 +[使用此链接购买可享九折优惠](https://www.bigmodel.cn/claude-code?ic=RRVJPB5SII) + +**PackyCode** - API 中转服务合作伙伴 +[使用 "cc-switch" 优惠码注册享 9 折优惠](https://www.packyapi.com/register?aff=cc-switch) + +**闪电说** - 本地优先的 AI 语音输入法 +[免费下载](https://shandianshuo.cn) Mac/Win 双平台 + +--- + +## 反馈与支持 + +- **问题反馈**:[GitHub Issues](https://github.com/farion1231/cc-switch/issues) +- **讨论**:[GitHub Discussions](https://github.com/farion1231/cc-switch/discussions) +- **文档**:[README](../README_ZH.md) +- **更新日志**:[CHANGELOG.md](../CHANGELOG.md) + +--- + +## 未来展望 + +**v3.8.0 预览**(暂定): + +- 本地代理功能 + +敬请期待更多更新! + +--- + +**Happy Coding!** diff --git a/package.json b/package.json index a0481b4..7801754 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cc-switch", - "version": "3.7.0", + "version": "3.7.1", "description": "All-in-One Assistant for Claude Code, Codex & Gemini CLI", "scripts": { "dev": "pnpm tauri dev", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 9d9948f..a14e778 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -606,7 +606,7 @@ dependencies = [ [[package]] name = "cc-switch" -version = "3.7.0" +version = "3.7.1" dependencies = [ "anyhow", "auto-launch", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index bd27989..85ad685 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cc-switch" -version = "3.7.0" +version = "3.7.1" description = "All-in-One Assistant for Claude Code, Codex & Gemini CLI" authors = ["Jason Young"] license = "MIT" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 291ae9c..a4805ab 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.7.0", + "version": "3.7.1", "identifier": "com.ccswitch.desktop", "build": { "frontendDist": "../dist", diff --git a/src/components/skills/SkillsPage.tsx b/src/components/skills/SkillsPage.tsx index 7de6a7a..9369fe0 100644 --- a/src/components/skills/SkillsPage.tsx +++ b/src/components/skills/SkillsPage.tsx @@ -111,12 +111,12 @@ export const SkillsPage = forwardRef( const errorMessage = error instanceof Error ? error.message : String(error); - // 使用错误解析器格式化错误,传入 "skills.uninstallFailed" - const { title, description } = formatSkillError( - errorMessage, - t, - "skills.uninstallFailed", - ); + // 使用错误解析器格式化错误,传入 "skills.uninstallFailed" + const { title, description } = formatSkillError( + errorMessage, + t, + "skills.uninstallFailed", + ); toast.error(title, { description,