CC Switch v4.0.11
本版本为应用增加了卸载功能,现在你可以在「应用」页安装、更新、卸载编程应用了。卸载前确认框会列出要卸载的安装路径和将执行的命令,只卸载能确认来源的安装,配置和会话数据都保留;菜单里另有按安装方式列出的手动卸载命令。添加套餐类供应商(Kimi、智谱、MiniMax 等)时,所有应用都会默认开启套餐额度查询,不再只限 Claude Code,一键导入链接也一样。Codex 用量统计修了两个问题:分叉出来的会话不再每分钟整份重读一遍,Codex 桌面版长会话翻页后分出的子代理用量也能统计了。另外修复了 Windows 上 CC Switch 自动更新重启后安装、升级工具找不到 npm,全屏页面打开时闪烁,以及 Skills 和 MCP 批量开关全部失败时仍提示成功等问题。4.0 完整的更新内容请见 v4.0 发布说明。
新增
「应用」页可以卸载已安装的工具。 每个已安装的工具旁边多了「卸载」按钮。点击后先检查当前使用的是哪一处安装,确认框里列出将卸载的安装路径和将执行的命令,确认后才执行;执行前会重新检查一遍,安装情况有变化就不执行。只卸载能确认来源的安装:
- 用 npm 全局安装的(核对包名和安装前缀);
- 用 Homebrew 安装的 Claude Code、Codex(cask)和 Gemini CLI、OpenCode(formula),其他 Homebrew 包一律不碰;
- 用官方安装脚本安装的 Claude Code、Codex、Grok Build、OpenCode,只删除当前使用的那个可执行文件和它的启动入口,不删除目录,Claude Code 的其他旧版本仍会保留;
- Hermes 调用它自己的
hermes uninstall --yes;OpenClaw 先执行官方命令卸载 Gateway 服务,成功后再卸载 CLI。 - Windows 上装在 WSL 里的工具会在对应发行版内卸载,和版本检测用同一个 shell,所以用 nvm 之类装的工具也能找到。
配置和会话数据都保留;有多处安装时只卸载当前使用的那一处,其他的保留。认不出来源的安装不会自动卸载,会提示改用手动命令。「应用」页菜单里新增「手动卸载命令」,按安装方式(npm、pnpm、Bun、Homebrew 等)和运行环境列出各工具的卸载命令,可以复制到终端执行。
预设: 新增 StreamLake 国内站、AIComing、SoruxGPT Coding Plan、GrooRoute Pro;修正 StreamLake 国际站 OpenCode、OpenClaw、Pi 预设的地址;AIGoCode 改用新域名。
改进
套餐额度查询在所有应用里默认开启。 添加地址属于套餐的供应商(Kimi、智谱、MiniMax、火山引擎、OpenCode Go、Command Code)时,以前只有 Claude Code 默认开启套餐额度查询,Codex、OpenCode、Pi、Hermes 等应用要再手动打开一次。现在所有应用都默认开启。一键导入链接也一样:链接没带用量查询脚本、地址属于套餐时,导入后默认开启,确认框里会写明「套餐额度:Kimi For Coding」这样的套餐名;链接写了 usageEnabled=false 时仍然关闭。ZenMux 仍只在 Claude Code 里默认开启。已经添加的供应商不受影响。
全屏页面不再淡入淡出。 v4.0.10 去掉了添加、编辑供应商页面的淡入淡出,但「新增定价」「配置用量查询」「请求地址管理」、统一供应商、工作区文件等页面在 Windows 上打开时仍会闪一下。现在所有全屏页面都不再淡入淡出,macOS 和 Linux 上也一样;授权中心从右侧滑入的动画保留。工作区文件和每日记忆会在内容读完后再打开编辑页,不再先闪出加载页。
修复
- Windows 上 CC Switch 自动更新重启后,安装、升级工具时找不到 npm(#8171)。安装包更新后自动重启的 CC Switch 拿不到完整的用户 PATH。版本检测以前已经从注册表补回了 PATH,所以显示工具已安装;但执行安装、升级命令时用的仍是残缺的 PATH,于是找不到 npm。现在执行命令时也用补全后的 PATH,卸载同样受益。
- Codex 分叉出来的会话每分钟被整份重读一遍(#8217、#8209)。子代理会话、「分支到新聊天」或回退产生的分叉会话,如果父会话还没写到分叉时刻,用量导入会先跳过、稍后再试。从 v3.18 起,每 60 秒一次的同步都会把这些会话整份重新读一遍,再在日志里写一条警告;分叉会话多的用户累计读盘可达数 TB,日志很快涨到轮转上限。现在会记下子会话和父会话文件的状态,文件没变就直接跳过,有变化才重试。计费规则不变:父会话一直没写到分叉时刻(例如闲置很久之后才分叉)的会话,用量仍不计入,这个口径还在讨论中(#5687)。
- Codex 桌面版长会话翻页后,分出的子代理用量全部丢失(#7084、#8210)。Codex 桌面版把长会话分页保存,第一页写满后续写到新文件,CC Switch 以前只找得到第一页,翻页之后分出的子代理就一直被判为「父会话还没写到分叉时刻」,用量从 v3.20.1 起一直没统计。现在会把同一会话的各页按顺序拼起来再判断。这些子代理会话以前没被导入过,升级后下一轮同步会自动补上,只要会话文件还在。分叉线程自己翻页之后的续写页仍然统计不到,会在后续版本处理(#8161)。
- Skills 和 MCP 批量启用、停用全部失败时仍提示成功。 现在全部失败时显示红色错误提示,部分失败时显示警告;撤销也按实际结果提示,不再总是显示「已撤销」。
- 工作区编辑器可能把上一个文件的内容存进当前文件。 打开一个文件再关掉、接着打开另一个文件时,如果后者读取失败,编辑页会在新文件名下继续显示前一个文件的内容,这时点保存就会覆盖新文件。现在读取失败会回到文件列表。
升级说明
数据库结构没有变化,仍然是 20。
- Codex 子代理用量的补导在升级后的下一轮同步中自动进行,只涉及以前因为父会话分页而一直跳过的子会话,不会重复计入已经导入过的用量。
- 套餐额度默认开启只影响新添加和新导入的供应商。已有的供应商要开启,在卡片上点「配置用量查询」选择 Token Plan 模板即可。
致谢
感谢 @funkpopo(「应用」页卸载、Windows 自动更新后找不到 npm)、@NestorRay(全屏页面闪烁、工作区编辑器读取)、@Carl723000(Codex 分叉会话每分钟重读)、@Lingbou(Codex 分页会话拼接,并报告了重读告警刷屏和分页索引缺失)、@jgwy(最早报告并实现了分页会话拼接)、@xue-ding-e(Skills 批量开关失败提示)、@mozzie49(批量撤销结果提示)的贡献。
感谢 @andyyxw、@syanle、@a790798959-hub、@imsquner、@loulanyue、@YiMore7 报告问题、提供复现信息和修复思路。
完整的技术细节请见 CHANGELOG。