mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-17 00:35:13 +08:00
- Delete 9 completed planning/roadmap documents - Move 23 release notes into docs/release-notes/ with simplified filenames - Update all cross-references in READMEs, CHANGELOG, and release notes - Remove dangling doc reference in deeplink/mod.rs
370 lines
9.5 KiB
Markdown
370 lines
9.5 KiB
Markdown
# CC Switch v3.8.0
|
||
|
||
> 持久化架构升级,为云同步奠定基础
|
||
|
||
**[English Version →](v3.8.0-en.md)**
|
||
|
||
---
|
||
|
||
## 概览
|
||
|
||
CC Switch v3.8.0 是一次重大的架构升级版本,重构了数据持久化层和用户界面,为未来的云同步和本地代理功能奠定基础。
|
||
|
||
**发布日期**:2025-11-28
|
||
**提交数量**:从 v3.7.1 开始 51 个提交
|
||
**代码变更**:207 个文件,+17,297 / -6,870 行
|
||
|
||
---
|
||
|
||
## 重大更新
|
||
|
||
### 持久化架构升级
|
||
|
||
从单一 JSON 文件存储迁移到 SQLite + JSON 双层架构,实现数据分层管理。
|
||
|
||
**架构变更**:
|
||
|
||
```
|
||
v3.7.x (旧) v3.8.0 (新)
|
||
┌─────────────────┐ ┌─────────────────────────────────┐
|
||
│ config.json │ │ SQLite (可同步数据) │
|
||
│ ┌───────────┐ │ │ ├─ providers 供应商配置 │
|
||
│ │ providers │ │ │ ├─ mcp_servers MCP 服务器 │
|
||
│ │ mcp │ │ ──> │ ├─ prompts 提示词 │
|
||
│ │ prompts │ │ │ ├─ skills 技能 │
|
||
│ │ settings │ │ │ └─ settings 通用设置 │
|
||
│ └───────────┘ │ ├─────────────────────────────────┤
|
||
└─────────────────┘ │ JSON (设备级数据) │
|
||
│ └─ settings.json 本地设置 │
|
||
│ ├─ 窗口位置 │
|
||
│ ├─ 路径覆盖 │
|
||
│ └─ 当前选中供应商 ID │
|
||
└─────────────────────────────────┘
|
||
```
|
||
|
||
**双层结构设计**:
|
||
|
||
| 层级 | 存储方式 | 数据类型 | 同步策略 |
|
||
| -------- | -------- | ---------------------------- | ---------- |
|
||
| 云同步层 | SQLite | 供应商、MCP、Prompts、Skills | 未来可同步 |
|
||
| 设备层 | JSON | 窗口状态、本地路径、当前选择 | 保持本地 |
|
||
|
||
**技术实现**:
|
||
|
||
- **Schema 版本管理** - 支持数据库结构升级迁移
|
||
- **SQL 导入导出** - `backup.rs` 支持 SQL dump,便于云端存储
|
||
- **事务支持** - SQLite 原生事务保证数据一致性
|
||
- **自动迁移** - 首次启动自动从 `config.json` 迁移数据
|
||
|
||
**模块化重构**:
|
||
|
||
```
|
||
database/
|
||
├── mod.rs 核心 Database 结构体和初始化
|
||
├── schema.rs 表结构定义、Schema 版本迁移
|
||
├── backup.rs SQL 导入导出、二进制快照备份
|
||
├── migration.rs JSON → SQLite 数据迁移引擎
|
||
└── dao/ 数据访问对象层
|
||
├── providers.rs 供应商 CRUD
|
||
├── mcp.rs MCP 服务器 CRUD
|
||
├── prompts.rs 提示词 CRUD
|
||
├── skills.rs Skills CRUD
|
||
└── settings.rs 键值对设置存储
|
||
```
|
||
|
||
---
|
||
|
||
### 全新用户界面
|
||
|
||
完整重构的 UI 设计,提供更现代化的视觉体验。
|
||
|
||
**视觉改进**:
|
||
|
||
- 重新设计的界面布局
|
||
- 统一的组件样式
|
||
- 更流畅的过渡动画
|
||
- 优化的视觉层次
|
||
|
||
**交互优化**:
|
||
|
||
- Header toolbar 重新设计
|
||
- ConfirmDialog 样式统一
|
||
- 禁用主视图 overscroll 弹跳效果
|
||
- 改进的表单验证反馈
|
||
|
||
**兼容性调整**:
|
||
|
||
- Tailwind CSS 从 v4 降级到 v3.4,提升浏览器兼容性
|
||
|
||
---
|
||
|
||
### 日语支持
|
||
|
||
新增日语(日本語)界面支持,国际化语言扩展到三种。
|
||
|
||
**支持语言**:
|
||
|
||
- 简体中文
|
||
- English
|
||
- 日本語(新增)
|
||
|
||
---
|
||
|
||
## 新增功能
|
||
|
||
### Skills 递归扫描
|
||
|
||
Skills 管理系统支持递归扫描仓库目录,自动发现嵌套的技能文件。
|
||
|
||
**改进内容**:
|
||
|
||
- 支持多层目录结构
|
||
- 自动发现所有 `SKILL.md` 文件
|
||
- 允许不同仓库的同名技能(使用完整路径去重)
|
||
|
||
---
|
||
|
||
### 供应商图标配置
|
||
|
||
供应商预设支持自定义图标配置。
|
||
|
||
**功能特性**:
|
||
|
||
- 预设供应商包含默认图标
|
||
- 复制供应商时保留图标设置
|
||
- 图标颜色自定义
|
||
|
||
---
|
||
|
||
### 表单验证增强
|
||
|
||
供应商表单新增必填字段验证,提供更友好的错误提示。
|
||
|
||
**改进内容**:
|
||
|
||
- 必填字段实时校验
|
||
- 统一使用 Toast 通知显示验证错误
|
||
- 更清晰的错误信息
|
||
|
||
---
|
||
|
||
### 开机自启
|
||
|
||
新增开机自动启动功能,支持 Windows、macOS 和 Linux 三个平台。
|
||
|
||
**功能特性**:
|
||
|
||
- 在设置中一键开启/关闭
|
||
- 使用平台原生 API 实现
|
||
- Windows 使用注册表、macOS 使用 LaunchAgent、Linux 使用 XDG autostart
|
||
|
||
---
|
||
|
||
### 新增供应商预设
|
||
|
||
- **MiniMax** - 官方合作伙伴
|
||
|
||
---
|
||
|
||
## Bug 修复
|
||
|
||
### 关键修复
|
||
|
||
**自定义端点丢失问题**
|
||
|
||
修复更新供应商时自定义请求地址意外丢失的问题。
|
||
|
||
- 根因:`INSERT OR REPLACE` 在 SQLite 底层执行 `DELETE + INSERT`,触发外键级联删除
|
||
- 修复:改用 `UPDATE` 语句更新已存在的供应商
|
||
|
||
**Gemini 配置问题**
|
||
|
||
- 修复自定义供应商环境变量未正确写入 `.env` 文件
|
||
- 修复安全认证配置错误写入到其他配置文件
|
||
|
||
**供应商验证问题**
|
||
|
||
- 修复当前供应商 ID 不存在时的验证错误
|
||
- 修复供应商复制时图标字段丢失
|
||
|
||
### 平台兼容性
|
||
|
||
**Linux**
|
||
|
||
- 解决 WebKitGTK DMA-BUF 渲染问题
|
||
- 保留用户 `.desktop` 文件自定义
|
||
|
||
### 其他修复
|
||
|
||
- 修复切换应用时的冗余用量查询
|
||
- 修复 DMXAPI 预设使用错误的认证令牌字段
|
||
- 修复深链接组件缺少翻译键
|
||
- 修复用量脚本模板初始化逻辑
|
||
|
||
---
|
||
|
||
## 技术改进
|
||
|
||
### 架构重构
|
||
|
||
**供应商服务模块化**:
|
||
|
||
```
|
||
services/provider/
|
||
├── mod.rs 核心服务 - add/update/delete/switch/validate
|
||
├── live.rs Live 配置文件操作
|
||
├── gemini_auth.rs Gemini 认证类型检测
|
||
├── endpoints.rs 自定义端点管理
|
||
└── usage.rs 用量脚本执行
|
||
```
|
||
|
||
**深链接模块化**:
|
||
|
||
```
|
||
deeplink/
|
||
├── mod.rs 模块导出
|
||
├── parser.rs URL 解析
|
||
├── provider.rs 供应商导入逻辑
|
||
├── mcp.rs MCP 导入逻辑
|
||
├── prompt.rs 提示词导入
|
||
├── skill.rs Skills 导入
|
||
└── utils.rs 工具函数
|
||
```
|
||
|
||
### 代码质量
|
||
|
||
**清理工作**:
|
||
|
||
- 移除 JSON 时代遗留的导入导出死代码
|
||
- 移除未使用的 MCP 类型导出
|
||
- 统一错误处理方式
|
||
|
||
**测试更新**:
|
||
|
||
- 迁移测试到 SQLite 数据库架构
|
||
- 更新组件测试匹配当前实现
|
||
- 修复 MSW handlers 适配新 API
|
||
|
||
---
|
||
|
||
## 技术统计
|
||
|
||
```
|
||
总体变更:
|
||
- 提交数:51
|
||
- 文件数:207 个文件变更
|
||
- 新增:+17,297 行
|
||
- 删除:-6,870 行
|
||
- 净增:+10,427 行
|
||
|
||
提交类型分布:
|
||
- fix:25 个(Bug 修复)
|
||
- refactor:11 个(代码重构)
|
||
- feat:9 个(新功能)
|
||
- test:1 个(测试)
|
||
- 其他:5 个
|
||
|
||
改动区域分布:
|
||
- 前端源码:112 个文件
|
||
- Rust 后端:63 个文件
|
||
- 测试文件:20 个文件
|
||
- 国际化文件:3 个文件
|
||
```
|
||
|
||
---
|
||
|
||
## 迁移说明
|
||
|
||
### 从 v3.7.x 升级
|
||
|
||
**自动迁移** - 首次启动时自动执行:
|
||
|
||
1. 检测 `config.json` 是否存在
|
||
2. 在事务中迁移所有数据到 SQLite
|
||
3. 设备级设置迁移到 `settings.json`
|
||
4. 显示迁移成功通知
|
||
|
||
**数据安全**:
|
||
|
||
- 原 `config.json` 文件保留不删除
|
||
- 迁移失败时显示错误对话框,保留`config.json`
|
||
- 支持 Dry-run 模式验证迁移逻辑
|
||
|
||
---
|
||
|
||
## 下载与安装
|
||
|
||
### 系统要求
|
||
|
||
- **Windows**:Windows 10+
|
||
- **macOS**:macOS 10.15(Catalina)+
|
||
- **Linux**:Ubuntu 22.04+ / Debian 11+ / Fedora 34+
|
||
|
||
### 下载链接
|
||
|
||
访问 [Releases](https://github.com/farion1231/cc-switch/releases/latest) 下载:
|
||
|
||
- **Windows**:`CC-Switch-v3.8.0-Windows.msi` 或 `-Portable.zip`
|
||
- **macOS**:`CC-Switch-v3.8.0-macOS.tar.gz` 或 `.zip`
|
||
- **Linux**:`CC-Switch-v3.8.0-Linux.AppImage` 或 `.deb`
|
||
|
||
### Homebrew(macOS)
|
||
|
||
```bash
|
||
brew tap farion1231/ccswitch
|
||
brew install --cask cc-switch
|
||
```
|
||
|
||
更新:
|
||
|
||
```bash
|
||
brew upgrade --cask cc-switch
|
||
```
|
||
|
||
## 致谢
|
||
|
||
### 贡献者
|
||
|
||
感谢所有让这个版本成为可能的贡献者:
|
||
|
||
- [@YoVinchen](https://github.com/YoVinchen) - UI 和数据库重构
|
||
- [@farion1231](https://github.com/farion1231) - BUG 修复和功能增强
|
||
- 社区成员的测试和反馈
|
||
|
||
### 赞助商
|
||
|
||
**智谱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 双平台
|
||
|
||
**MiniMax** - MiniMax M2 CODING PLAN 赞助商
|
||
[黑五优惠进行中,套餐9.9元起](https://platform.minimaxi.com/subscribe/coding-plan)
|
||
|
||
---
|
||
|
||
## 反馈与支持
|
||
|
||
- **问题反馈**:[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.9.0 预览**(暂定):
|
||
|
||
- 本地代理功能
|
||
|
||
敬请期待更多更新!
|
||
|
||
---
|
||
|
||
**Happy Coding!**
|