CC Switch v4.0.28
本版本主要应对 Codex 11 月 8 日的不兼容更新。
⚠️ Codex 桌面版 26.1103、CLI 0.167 起,官方订阅和第三方供应商的会话彻底分开了。 直连模式下在两者之间切换,以前只是两边的会话分开显示,现在另一边的会话直接变成只读:能查看,不能继续,继续时提示「模型提供商不匹配」。要来回切换并继续旧会话,有两个办法:
- 改用路由或聚合模式:本版本起,路由或聚合模式下切到第三方,会话和官方订阅留在同一组,来回切换都能继续。
- 打开「统一 Codex 会话历史」(「设置 → 应用配置 → Codex」):官方和第三方的会话归到同一组,直连模式下也能来回切换。
此外,直连切换让会话变成只读时会提示数量;开启「统一 Codex 会话历史」并勾选迁入现有会话后,会持续把官方会话迁进来。官方额度用完、Codex 锁住发送键时,可以在路由或聚合设置里打开「暂停使用官方登录」,继续用第三方模型;官方额度保护改为默认开启。应用页的安装和升级会显示排队状态和实时进度。另外修复了 Codex 故障转移到别家时仍带着上一家的模型名、Kimi For Coding 上压缩失败、在 Kimi 或 DeepSeek 上续接工具调用后会话一直报 400 等问题。
新增
适配新版 Codex 的会话分组
Codex 按供应商标识记录会话:官方订阅记在内置的 openai 下,CC Switch 写入的第三方供应商记在 custom 下。新版 Codex 只能继续与当前供应商同一组的会话,另一组只读(#7974)。本版本围绕这一点做了以下改动:
- 路由或聚合模式下切到第三方,会话不再分成两组:本机登录了 ChatGPT、且没有开「统一 Codex 会话历史」时,路由到第三方也和官方一样写成内置的
openai,请求照常经本地路由发往第三方,所有会话都在openai这一组。第三方的 Key 由本地路由替换,ChatGPT 的账号 ID、组织等请求头会被去掉,第三方收不到你的账号信息。- 以下情况仍写成
custom:本机没有 ChatGPT 登录、开着统一会话历史、打开了「暂停使用官方登录」,或者供应商配置里写了请求重试、流重试、流空闲超时、远程压缩这些内置openai表达不了的设置。 - 已经在用路由模式的不用操作,CC Switch 下次接上路由时会自动改写一次。直连模式不变。
- 以下情况仍写成
- 直连切换后提示有多少会话只能查看:没开统一会话历史时,直连模式下在官方订阅和第三方之间切换,切换成功的提示里会多一行,例如「之前在官方订阅下的 12 个会话现在只能查看」。从托盘切换不提示。
- 统一 Codex 会话历史(「设置 → 应用配置 → Codex」):开启后官方订阅也改用
custom标识,两边的会话在同一组,新版 Codex 里都能继续。经常在官方和第三方之间切换时建议开启。- 「同时迁入现有官方会话历史」改为默认勾选。勾选后,之后每次启动 CC Switch 都会把又出现在官方组的会话迁进来,比如关掉再打开过这个开关,或者不经 CC Switch 用过 Codex。
- 迁移和还原前都要备份 Codex 的会话数据库,以前 42 MB 的数据库要备份约 90 秒,现在不到 1 秒。
- 后台迁移完成后会提示迁入了多少个会话,重启 Codex 后就能继续。
暂停使用官方登录(Codex)
官方 ChatGPT 额度用完后,Codex 会自己查额度,锁住模型选择和发送键,选了第三方模型也发不出去(#7974、#7962)。这一步在 Codex 客户端里,本地路由管不到;以前手动把 requires_openai_auth 改成 false 的办法,现在切换一次就会被覆盖。
现在 Codex 的「路由设置」和「聚合设置」(路由或聚合模式生效时,模式标签栏右端的齿轮按钮)最上面多了「暂停使用官方登录」开关:
- 打开后 Codex 不再使用官方登录,不会因为官方额度锁住发送键,聚合和路由里的第三方模型可以继续用。官方登录仍保存在本机,不会退出。
- 打开期间,官方模型发不出去,会提示改用第三方模型;Codex 里不显示账号和用量信息,第一次打开可能弹出新手问卷;侧栏「项目」里原来的会话暂时看不到,关掉开关后会回来;新会话记在
custom组,切回官方后只能查看。 - 打开期间 Codex 页面顶部会一直有提示,官方额度恢复后点「恢复官方登录」即可。
- 打开和关闭后都要彻底退出并重新打开 Codex。只在路由和聚合模式下生效,直连不受影响。
应用页显示安装进度
应用页的安装、升级和卸载一次只跑一个,以前慢的时候每一行都在转圈,分不清是在下载、在排队还是卡住了(MiniMax Code 的安装包约 100 MB,网络慢时要十几分钟)。现在排队的那一行会写「排队中,等前一个应用完成」,正在跑的那一行显示已用时间和命令输出的最新一行。离开应用页再回来,进度还在。
变更
- 官方额度保护改为默认开启:经本地路由的 Codex 官方请求,在五小时使用率达到 95% 或每周使用率达到 98% 时就会暂停,第三方模型照常可用,避免走到 Codex 锁住发送键那一步。升级后会自动打开一次;之后手动关掉,不会再被打开。阈值在「设置 → 应用配置 → Codex → 官方额度保护」里改。
- 不再写入
disable_response_storage(#7524):新版 Codex 删掉了这个设置,每次启动都会提示有一个无法识别的配置项。预设、模板、统一供应商和一键导入链接都不再写它,已有config.toml里的这一行在下次切换时清掉。 - Antigravity 显示 Argon 每周额度(#8913):Pro 套餐的 Argon 每周额度以前不显示。现在卡片上把它并进 Gemini 那一行,下拉菜单和授权中心单独列出。
- Windows 上第一次启动更快:新建数据库时建表和写入内置模型价格各合成一次提交,第一次启动快了约 6 秒。
修复
- Codex 故障转移到别家时,仍带着上一家的模型名,备用供应商报模型不存在(#7547)。现在开着故障转移时,换到备用供应商前会先看它认不认请求里的模型(是它自己的模型,或在它的模型列表里),不认就换成它自己的模型;同一个模型的中转队列照原样发。图片生成、图片编辑和搜索请求不换模型。
- Codex 经路由连 Kimi For Coding 时,压缩上下文总是失败(HTTP 400)。Kimi 不接受压缩请求里的
tool_choice: "none";现在第三方原生 Responses 上游拒绝压缩请求时,会去掉tool_choice再试一次。 - Codex 在 Kimi 或 DeepSeek 的原生 Responses 上续接工具调用后,这个会话之后每一轮都报 400。工具调用和它的结果之间夹了一条助手消息,Kimi 和 DeepSeek 都会拒绝整段历史;Kimi 还会拒绝空的助手消息。现在只对 Kimi(Moonshot)和 DeepSeek 的地址整理这类历史,其他请求原样发出。
- Windows 上 Codex 目录在 WSL 里(
\\wsl.localhost)时,分叉出来的会话用量一直不导入。
致谢
感谢 @allen546(Antigravity Argon 每周额度)、@fisHarly0(SSE 分隔符说明)的贡献。
特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@SailingLoong(Codex 故障转移时更换模型,本版的修复参考了这个 PR 的思路)、@xiajiahang(聚合模式拖动排序后重排聚合模型)。
感谢 @erickksun、@Juddd、@EMnian、@shidao-ap5、@LeenixP 报告问题、提供复现信息和修复思路。
完整的技术细节请见 CHANGELOG。