Repository navigation
CC Switch v4.0.31
本版本新增受管应用腾讯 WorkBuddy:自定义模型写进 WorkBuddy 自己的模型配置,在 WorkBuddy 里直接就能选;还能在多个 WorkBuddy 账号之间切换,切换前先看到每个号的套餐、剩余积分和到期时间。界面新增德语,README 也有了全部八种界面语言的版本。
另外修复了 Claude Code 经路由连 OpenAI Responses 格式的中转时,会话被同一个中转分到不同 Azure 资源后每一轮都报 400、再也继续不了;经路由连 Gemini Native 格式上游时,并行工具调用报 400、缓存命中率很低;macOS 托盘悬停提示一直挂在屏幕上;Codex 续接的旧对话用量从不导入等问题。
新增
WorkBuddy
腾讯 WorkBuddy 成为新的受管应用(#8757,需求见 #4802、#5802、#7419、#7076)。和 OpenCode 一样是多个供应商同时生效:
- 自定义模型:点「添加」后,供应商的模型写进 WorkBuddy 自己的
models.json,在 WorkBuddy 的模型选择里显示为「名称:模型 ID」,名称留空时用「厂商标签」。WorkBuddy 里自己添加的模型原样保留。WorkBuddy 的自定义模型只支持 OpenAI Chat Completions 格式。- 预设里的模型在 WorkBuddy 的模型选择里可以选思考强度(例如 Kimi K3.1 Pro 的 low / high / max)。
- WorkBuddy 暂时不支持同一个模型 ID 出现两次。选预设时会跳过已被别的卡片用掉的模型并说明是哪张卡;手动填了重复的模型 ID 会标出来,不能保存。
- 官方账号:在 WorkBuddy 里登录过的账号会自动收录到「授权中心」,显示昵称、套餐、剩余积分和积分到期时间(三天内到期标橙)。切换账号有两个入口:添加绑定了这个账号的「WorkBuddy 官方登录」卡片,或者在授权中心这个账号的菜单里点「切换 WorkBuddy 到这个账号」。
- 切换前要先完全退出 WorkBuddy(包括菜单栏 / 托盘),否则它会把当前登录写回去。
- 「登录另一个账号」只在本机让 WorkBuddy 停在登录页,不会在服务端登出当前账号,已收录的账号仍然可以切回去。
- 套餐和积分要在 WorkBuddy 正在运行、并且登录着这个账号时才能查到,查到后会缓存显示。
- MCP、Skills、提示词:同步到 WorkBuddy 的
mcp.json、Skills 目录和全局提示词CODEBUDDY.md。WorkBuddy 连接器管理的 MCP 条目不会被改动。 - 会话管理和用量统计:列出 WorkBuddy 会话,从会话日志导入用量。会话不能在终端里恢复。
德语界面,README 八种语言
- 德语:首次启动按系统语言自动选择,托盘菜单和快捷面板也已翻译。隐私过滤器的占位符在德语界面下和韩语、俄语一样暂用英文。
- README 新增繁体中文、韩语、土耳其语和俄语版本,和界面的八种语言一一对应。
其他
- Skills 页面右上角的「⋯」菜单里直接有「立即重新同步」(#9417):不用再进「存储与同步」里找。
- 会话管理「按项目」分组时,Codex 桌面版不属于任何项目的对话归到一组「Codex 聊天」(#9415):不再每个对话各占一组。
- 请求日志的状态码筛选新增 403、404、502、503、504、520、529(#9425)。
变更
- 隐私过滤器改在请求发出前的最后一步过滤(#9460):以前在请求刚进入路由时过滤,故障转移重试、CC Switch 自己生成的压缩摘要等后来加进请求的内容不会被处理。现在每一次发往上游前都会过滤,覆盖更全;工具的说明文字不处理。检测也更快,结果和以前一致。
- Codex 用量导入更快(#9400):读取 Codex 会话日志时少做重复的解析和内存分配。
修复
- Claude Code / Claude Desktop 经路由连 OpenAI Responses 格式的中转时,偶尔报 400「The requested item was created under a different Azure OpenAI resource」,之后同一会话每一轮都报错(#9424)。中转把同一个会话分到了不同的 Azure OpenAI 资源,会话历史里带着另一个资源生成的思考记录;会话中途换供应商也会报类似的
invalid_encrypted_content。现在上游这样拒绝时,会去掉这些思考记录后自动重试一次,会话可以继续。正常的请求不受影响。 - Claude Code 经路由连 Gemini Native 格式上游时,并行工具调用后报 400「number of function response parts」(#9453):分散在几条消息里的工具结果现在会合并到一起再发出。
- Claude Code 经路由连 Gemini Native 格式上游时,长会话缓存命中率只有两成左右(#9450):Claude Code 每一轮都会追加一条剩余 Token 提示,以前被挪到整段历史的最前面,导致每一轮的开头都不一样。现在留在原来的位置,前面的历史每一轮保持不变,可以命中缓存。
- Claude Code 经路由连 Gemini Native 格式上游时,流式请求记录的用量偏少,缓存读取常常记成 0(#9464)。
- macOS 上托盘图标的「CC Switch」悬停提示一直挂在屏幕上,只能退出应用(#9445、#9329、#9446):macOS 上不再显示这个提示,出问题时图标上的圆点和快捷面板照常提醒。
- macOS 上其他应用全屏时,点菜单栏图标弹不出快捷面板(#9331)。
- Claude Code 路由模式下,供应商里设置的
CLAUDE_CODE_SUBAGENT_MODEL_FORCE写不进settings.json(#9451、#9455):现在和供应商的其他专属设置一样随供应商写入,你自己在全局设置的值也不会被切换清掉。 - Codex 续接已结束的旧对话后,新产生的用量一直没有导入(#9420)。
- Codex 直连第三方供应商时,关掉「非接管切换时保留官方登录」不会立即生效,要切回官方卡再切回来(#9367):现在改完设置就会重写当前供应商的配置。
- Codex 第三方供应商里与官方同名的 GPT 模型,模型选择里显示的不是你设置的显示名(#9380)。
- macOS 上卸载 Claude Desktop 后,「应用」页仍把它列为已安装(#9383):现在只认
Claude.app,残留的数据目录不再算。 - Linux KDE Wayland 上复制按钮提示成功,但剪贴板是空的或还是旧内容(#9384)。
- Copilot CLI 官方卡的账号下拉里,不绑定账号的选项写着「使用默认账号」,实际用的是 Copilot CLI 自己的 GitHub 登录(#9408):现在写成「跟随 Copilot CLI 自己的登录」。
- DeepSeek Harness 手动添加的模型没法设置兼容选项(#9330):现在也显示兼容性编辑器,可以为百炼兼容模式这类不接受
developer角色的接口关掉这个角色。 - 启用 Skill 时提示符号链接创建失败,看不出具体原因(#9439):报错里现在带上系统给出的错误码(例如 Windows 的
os error 5),方便判断是权限问题还是别的原因。 - 侧栏底部的「应用」和「设置」,德语、土耳其语、俄语界面下文字被截断。
升级说明
数据库版本从 25 升到 26,为 MCP 和 Skills 增加 WorkBuddy 的开关。升级前会自动备份数据库;升级后再退回旧版本,旧版本会提示数据库版本过新,打不开。
致谢
感谢 @Owlbay(WorkBuddy)、@allenxu09(隐私过滤器改在出口过滤、Codex 用量导入提速)、@jinyule(macOS 托盘悬停提示)、@zhjyz2(CLAUDE_CODE_SUBAGENT_MODEL_FORCE)的贡献。
感谢 @CookieCN、@yanglei9491-hue、@pankejia2000、@wengdongyang、@cooper1x、@lemonight、@qmy-it、@SunflowerNocturne、@WuFan-sl、@Ax-For、@2489055825、@njwangcn、@hjingsuper、@IT-coder-Yy、@hqing8156-prog、@CrazyFigure、@declandragon、@zhengzp2019、@TOBYmiz、@JiangHe12 提出需求、报告问题和提供复现信息。
完整的技术细节请见 CHANGELOG。