github farion1231/cc-switch v3.2.0
CC Switch v3.2.0

latest releases: v3.12.3, v3.12.4, v3.12.2...
6 months ago

v3.2.0 发布说明

  • 发布日期:2025-09-13
  • 主要变化:系统托盘快速切换、内置更新器、SSOT 架构与一次性迁移/归档、原子写入与回滚、全新 UI (感谢 TinsFox 大佬)以及多项使用体验优化
main

新增功能

  • 系统托盘快速切换
    • 菜单按应用分组(Claude / Codex),当前供应商以勾选态显示
    • 切换成功后向前端广播 provider-switched 事件并刷新状态
  • 内置更新器(Tauri Updater)
    • 支持“检查更新→下载→安装→重启”全流程,带进度回调
    • 若插件不可用或配置不完整,回退打开 GitHub Releases 页面
  • 全新 UI 和深色模式
    • Tailwind v4 适配,暗色策略与基础色对比度优化
  • 单一事实源(SSOT)
    • 不再写每供应商一个副本文件,统一存入 ~/.cc-switch/config.json
    • 首次升级执行一次性“扫描副本→合并→去重→归档→清理”,后续切换/编辑不再持续归档

数据归档与迁移(重点)

  • 背景与目标
    • 采用 SSOT 架构:供应商数据集中存于 ~/.cc-switch/config.json,不再生成 settings-.json、auth-.json/config-*.toml 等副本文件
    • 仅“迁移阶段”进行文件归档;日常切换/编辑不再产生日志式归档,降低磁盘占用
  • 归档目录结构
    • 根目录:~/.cc-switch/archive///...
    • :cc-switch(应用自身配置)、claude(Claude 旧副本)、codex(Codex 旧副本)
    • 同名冲突自动加序号(name-2.ext)
  • 一次性迁移流程(首次启动 3.2.0 触发)
    • 扫描副本
      • Claude:~/.claude/settings-*.json(排除 settings.json / 历史 claude.json)
      • Codex:~/.codex/auth-.json + config-.toml(按名称成对)
    • 合并与去重
      • 优先合并“当前 live 配置”为供应商项,再合并副本
      • 去重键:名称(忽略大小写)+ API Key(原文比较)
      • 若当前为空,将 live 导入项设为当前
    • 归档与清理
      • 将扫描到的副本归档到 ~/.cc-switch/archive///...
      • 归档成功后删除原副本;归档失败时保留原文件(保守策略)
      • 如存在旧版 ~/.cc-switch/config.json,先归档再写新结构
    • v1 → v2 附加备份
      • 遇到 v1 结构会额外生成 ~/.cc-switch/config.v1.backup..json
  • 日常行为变化(3.2.0 之后)
    • 切换供应商
      • 切换前回填当前 live 配置到“当前供应商”,避免遗失手动改动
      • 目标供应商写回 live 文件
        • Claude:原子写 ~/.claude/settings.json(历史兼容 claude.json)
        • Codex:原子写 ~/.codex/auth.json 与 config.toml,第二步失败自动回滚第一步
      • 切换/更新不再触发文件级归档
    • 编辑“当前供应商”
      • 先写 live 文件成功,再更新应用主配置,保持一致性
    • 清理策略
      • 归档目录不自动清理,如需释放空间,可手动删除 ~/.cc-switch/archive 内历史快照

体验与 UI 改进

  • 供应商表单与预设
    • 新增供应商“分类”(官方 / 国内官方 / 聚合 / 自定义),用于差异化提示和校验
    • 预设优化:Kimi、ModelScope(GLM-4.5)、PackyCode 等;自定义 Base URL;“获取 API Key”外链与样式统一
  • 更新体验
    • 设置面板“检查更新”提供“已是最新”的友好反馈与新版提示徽标
  • 生产环境静默调试日志,减少控制台噪声

性能、构建与日志

  • Rust 侧优化
    • Thin LTO、strip 符号、panic=abort、codegen-units=1,减小二进制体积
    • 统一使用 log::{info,warn,error},便于与 tauri-plugin-log 集成
  • 产物与 CI
    • 产物增强:macOS .app.zip,Windows MSI + 便携 zip,Linux .deb 与 AppImage
    • 提供 latest.json 以支持 Updater;固定 runner,提升可复现性

兼容性与升级指引

  • 直接从 v3.1.2 升级即可;首次启动会执行一次性迁移/归档
  • 迁移后不再生成/使用 settings-.json、auth-.json/config-*.toml 副本文件
  • 默认导入的供应商命名为 default
  • 企业网络限制 GitHub 或其他原因导致内置更新器不可用,应用会回退到打开 Releases 页面

下载与安装

  • Windows:MSI 安装包与便携 zip(便携版无法使用内置更新器,后续更新需要手动下载新版)
  • macOS:.app.zip(首次运行如提示“未知开发者”,在“系统设置 → 隐私与安全性”选择“仍要打开”)
  • Linux:.deb、AppImage

反馈与支持

  • 问题与建议:请提交 Issue 并附带系统信息、复现步骤与日志
  • 安全与隐私:应用仅在本地写入 ~/.cc-switch 与 ~/.claude 与 ~/.codex,不上传任何敏感数据

Don't miss a new cc-switch release

NewReleases is sending notifications on new releases.