CC Switch v4.0.26
本版本让授权中心和官方供应商卡片显示每个账号的订阅计划,GitHub Copilot 账号会列出所有有上限的额度;一键导入链接现在也能导入 Claude Desktop、MiniMax Code、Kimi Code、DeepSeek Harness 和 Oh My Pi 的供应商。Codex 卡片可以选择保留 GPT 模型的官方 Fast 档;系统代理把 Codex、Grok Build 发往本地路由的请求接走时,CC Switch 会提醒你。DeepSeek Harness 可以设置配置目录,装在 WSL 里也能管理。这一版还做了一轮性能优化:供应商列表、主窗口加载、启动、会话读取和路由转发都更快,会话同步占着数据库时界面也不再卡住。另外修复了 IPv6 不通时经路由请求先卡两分多钟、需要登录的 MCP 服务器显示连接失败、Claude Desktop 路由卡片改了模型不生效、Codex 经路由转 Chat 时缓存命中率下降、GitHub Copilot 的 Grok 请求报 422 和回复重复显示、非 Retina 显示器上弹窗模糊等问题。4.0 完整的更新内容请见 v4.0 发布说明。
新增
账号订阅计划
以前授权中心里只有 Claude 账号会写订阅计划,其他账号只显示登录日期,同一个服务的 Max 账号和 Free 账号看起来一模一样。
现在 GitHub Copilot、ChatGPT、Kimi、Antigravity、xAI 账号的第二行开头也会写订阅计划。Codex、Kimi、Antigravity、Gemini CLI 的官方卡片,以及 Copilot、xAI 账号卡片,副标题后面也会加上「· 计划名」。
- 卡片上的计划名直接用额度查询的结果,不会多发请求(Kimi、Antigravity、xAI 查额度时会多一个并行请求取计划名);额度加载出来后计划名才出现,不查额度的卡片不显示。
- 计划名查不到时只是不显示,额度照常显示;刷新失败时保留上次查到的计划。
- 跟随 Grok CLI 登录的 Grok Build 卡片、没绑账号的 Antigravity 卡片暂时还没有计划名,它们查额度的方式拿不到这项信息。
GitHub Copilot 显示全部额度
Copilot 账号以前只显示高级请求的百分比。现在每一项有上限的额度各占一行,悬停可以看到「剩余 / 共」,Free 账号的代码补全和聊天次数也能看到了。
- 高级请求改叫 Credits,和 Codex 的叫法一致,托盘里也一样。
- Free 账号没有 Credits,以前会显示成「还剩 100%」,现在写「当前计划不含」,供应商卡片上不再显示这一项。
一键导入支持更多应用
以前 Claude Desktop、MiniMax Code、Kimi Code、DeepSeek Harness 和 Oh My Pi 的供应商链接会直接被拒绝。现在这些应用的链接也能导入了。
- Claude Desktop:链接是 Anthropic 格式、模型名都以
claude-开头(或没写模型)时,导入成直连卡片;其他情况导入成模型映射卡片,四个档位按链接里的模型填好。 - MiniMax Code、Kimi Code、DeepSeek Harness、Oh My Pi:和 Pi 一样导入成单个模型,链接里必须带模型。
- Oh My Pi 会把某些写法的 Key 当成环境变量名或命令来读,导入后可能把你本机的密钥发到链接里的地址。所以这类 Key(以
!开头、没有小写字母等)会被拒绝导入。
Codex 卡片保留官方 Fast 档
Codex 第三方卡片模型列表里的 GPT 模型以前一律去掉了官方的 Fast 速度档,选不了 Fast(#5234)。转发官方 ChatGPT 账号的中转(如 CPA)其实支持 Fast。
现在 Codex 供应商表单「高级选项」里,「上游格式」下面多了「保留官方 Fast 档」,默认关闭,只在上游格式为 Responses 时显示。打开后 Codex 选了 Fast 时请求会带 service_tier=priority。
- 只有转发官方 ChatGPT 账号的中转才认,会更快消耗额度;其他上游可能报错或按更高价格计费。
- 以前在官方卡片下选过 Fast 的,打开后会马上在这家生效。聚合模式下不生效,改完需要重启 Codex。
系统代理接走本地路由时提醒
开着 Clash 这类代理工具时,Codex 和 Grok Build 发往本地路由(http://127.0.0.1:<port>)的请求可能被系统代理接走,转到远程节点后返回一个空的 502(#9221)。Codex 只显示「502 Bad Gateway」,CC Switch 这边也收不到请求,没有任何日志,很难查。
现在 Codex 或 Grok Build 进入路由模式后,CC Switch 会在后台按客户端同样的代理规则给本地路由发一次请求。请求回不来时,日志里会记一条警告;如果是你手动进入路由模式,界面上也会弹出提示,说明怎么在代理工具里让本机地址直连(例如在 Clash 规则最前面加 IP-CIDR,127.0.0.0/8,DIRECT,no-resolve)。
DeepSeek Harness 配置目录
以前 DeepSeek Harness 只认 DSH_HOME 或 ~/.dsh,装在 WSL 里的 DSH 在 Windows 版 CC Switch 里管不了(#9239)。
现在「设置 → 应用配置」里多了 DeepSeek Harness 一栏,可以设置配置目录。供应商、Skills、指令文件、会话和用量导入都会跟着这个目录走。填 WSL 里的路径时,版本检测、安装和升级也会在那个 WSL 发行版里进行。
变更
- 性能优化:
- 会话同步时界面不再卡住(#9178):大会话文件同步时会占着数据库几十秒,这期间打开 Skills 页、切到 Pi 或 Oh My Pi、打开网络或数据设置、图标选择、统一供应商面板、测速等操作会让整个窗口和托盘卡住,直到同步结束。现在这些操作都在后台等待,界面照常响应。
- 会话阅读页的工具栏重新排版(#9109):第一行放路径和阅读工具,第二行放时间、会话统计、模型和用量;去掉了容易落在行首行尾的分隔点,模型名太长时换行显示,悬停可看完整名称。
- 预设: Grok Build 默认模型改为
grok-4.7,Kimi 预设(Codex 的除外)默认模型改为kimi-k3.1-pro,Hermes 的千问 Coding Plan 默认模型改为qwen3.7-plus(#9193);TeamoRouter 改用 teamorouter.com 域名;Claude Desktop 官方卡片的下载链接改为 claude.com/download。已添加的供应商不受影响。
修复
- IPv6 不通时,经路由的请求要先卡两分多钟才发出(#9212)。智谱 GLM、阿里云百炼等服务的域名会先解析出 IPv6 地址,在 IPv6 不通的网络里,本地路由要等系统把每个 IPv6 地址都超时一遍才改用 IPv4,macOS 上约 150 秒、Windows 上约 43 秒。现在 IPv6 地址 300 毫秒内连不上就同时尝试 IPv4,发出的请求内容不变。
- 需要登录的 MCP 服务器,连通性检查显示「连接失败」(#9190)。Notion、Sentry 这类服务器需要 OAuth 登录,客户端里登录后能正常用,但 CC Switch 检查时不带客户端的登录凭据,就被判成了失败。现在这种情况显示黄色圆点,悬停会说明服务器能连上、只是要求登录。CC Switch 仍然不读取客户端保存的登录凭据。
- Claude Desktop 路由卡片改了模型后,Claude Desktop 里还是旧模型,删掉重建才行(#9203)。保存时「菜单显示名」留空会自动填成模型名,之后只改模型时显示名还是旧的。现在显示名和旧模型名一样时会跟着新模型一起改,你自己起的名字保持不变。
- Codex 经路由转 Chat 时,对话中途改了设置后缓存命中率下降。比如中途切换
sandbox_mode后,Codex 会在这一轮开头插入一条说明,以前它被合并到对话最开头,改写了整段历史,上游缓存就全部失效了。现在这条说明留在原位,之前的历史保持不变。 - Codex 经路由转 Chat 时,可能把另一个会话的思考内容混进当前会话。上游给的工具调用 ID 容易重复(如
exec_command:0),本地路由重启或缓存被挤掉后,可能找到别的会话里同名的调用。现在按 Codex 会话区分,只在同一个会话里找。 - 路由请求失败时,请求日志里记的是客户端的模型名。比如 Claude Desktop 的后台任务用的是
claude-haiku-4-5-20251001,映射到这张卡片的模型后上游报 429,日志里却显示 Haiku,看起来像调用了一个你没配过的模型。现在失败的请求和成功的一样,会写成「claude-haiku-4-5-20251001→ 实际模型」。 - 跟随本机登录的 Claude 官方卡片,登录过期后一直显示「令牌待刷新」,要再跑一次 Claude Code 才恢复。现在登录过期时 CC Switch 会让 Claude Code 自己刷新登录,再读取额度。设置了 Claude 配置目录时跳过。
- Claude Code 和 Claude Desktop 自动模式的安全分类器不可用时,客户端会一直重试、持续消耗额度(#9201、#9199)。现在连续 3 轮工具结果都报告分类器不可用时,本地路由直接返回错误,不再发给上游;发一条新消息即可继续。
- Codex 通过 GitHub Copilot 用 Grok 模型时报 422(#7989、#7988)。现在 Copilot 的 Grok 请求和直连 xAI 一样做兼容处理。
- Codex 通过 GitHub Copilot 时,同一条回复显示两遍(#8025、#7977)。
- 安装或升级应用时撞上已有的同名文件,提示里只有 npm 建议的
--force(#9196、#9173)。这个文件多半来自另一种安装方式,用--force会直接覆盖它。现在提示会写出冲突的文件路径,建议先改名备份再重试。 - Skills 里有文件软链接时,WebDAV 自动同步失败(#9197)。比如
CLAUDE.md和GEMINI.md都链接到AGENTS.md时,打包会出现重名文件。现在每个文件保留自己的名字。 - Codex 子代理并发上限的两个问题(#9148):
config.toml里表头后面带注释时,改上限可能覆盖掉[features.multi_agent_v2];[agents]写成带引号的键名时,会多写一个 Codex 不认的重复字段。说明文字也补充了改动只对新会话生效。 - DeepSeek Harness 用 headless profile 时找不到 CC Switch 保存的 Key,报
MISSING_CREDENTIAL。现在写入 headless profile 时会按 DSH 文档开启凭据读取;你自己改过这一项的 profile 保持不变。 - 在 1x 显示器上,「选择模型」等弹窗显示模糊(#9238)。弹窗居中时可能落在半个像素上,非 Retina 显示器上文字和边框会发虚。
- macOS 上,在 MCP 表单、提示词编辑、Skills 仓库、会话搜索等输入框里打字时首字母被自动改成大写,环境变量名、请求头、命令、地址可能因此被存错。
- Linux AppImage 打包了旧版 libwayland-client(#9229、#8723),在 Intel 核显加 Wayland 的环境下可能打不开。
致谢
感谢 @YUZHEthefool(供应商列表、页面加载、启动和会话读取四项性能优化)、@allenxu09(路由转发性能、会话阅读页工具栏)、@thisTom(会话同步时界面卡住)、@EdwinDigital(GitHub Copilot 的 Grok 请求和重复回复)、@jasontospas(安全分类器重试循环)、@funkpopo(子代理并发上限修复)、@zydo(预设默认模型)、@Logic-Bin(npm 同名文件冲突提示)、@paigeman(Skills 软链接同步)、@nekoteai(Linux AppImage)的贡献。
感谢 @939zzz、@xybigdata、@codexvn、@Guns160、@Drteammangel、@icucuio、@48ytw4q7zg-sudo、@Cu-debug178、@Wulianmiao 报告问题、提供复现信息和修复思路。
完整的技术细节请见 CHANGELOG。