CC Switch v3.14.1 版本解析:托盘用量可视化、Codex OAuth 稳定性修复与 FAST 模式详解
2026/9/6 16:11:34 网站建设 项目流程

CC Switch v3.14.1 版本解析:托盘用量可视化、Codex OAuth 稳定性修复与 FAST 模式详解

【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch

本文基于 CC Switch v3.14.1 官方发布说明(docs/release-notes/v3.14.1-en.md)撰写,并结合仓库源码对每项变更的实现细节进行佐证。读完后你将了解:系统托盘如何展示当前 Claude / Codex / Gemini 供应商的缓存用量、Kimi / Zhipu / MiniMax 等编码套餐的双窗口用量布局(🟢 h12% w80%)如何生成、Codex OAuth 反向代理在本版本修复的四类稳定性问题(缓存路由、Responses SSE 聚合、Stream Check 一致性、模型字段提取),以及 Hermes 配置健康扫描器为何被移除。

版本概览

CC Switch v3.14.1 是紧随 v3.14.0 之后的补丁版本(发布日期:2026-04-23),更新规模为13 commits | 48 个文件变更 | +1,883 / -808 行。版本聚焦五个方向:

  • Codex OAuth 反向代理稳定性:修复缓存身份抖动、SSE 聚合与 Stream Check 探测不一致;
  • 托盘用量可视化:首次把缓存用量直接渲染进系统托盘子菜单;
  • Skills 导入 / 安装可靠性:去重、防重复点击、根级SKILL.md仓库支持;
  • Gemini 会话恢复路径:读取.project_root元数据还原原始项目目录;
  • Hermes 配置健康处理简化:移除内置健康扫描器。

托盘用量可视化(Tray Usage Visibility)

本版本最显著的新增能力是:Claude / Codex / Gemini 的系统托盘子菜单现在会直接展示当前供应商的缓存用量(issue #2184),包括两类摘要:

  • 订阅配额摘要(subscription quota summary)——如 ChatGPT / 官方订阅的用量百分比;
  • 用量脚本摘要(usage-script summary)——基于meta.usage_script配置拉取并计算的用量,带颜色编码的利用率标记

行为上有三点约束,源码层面可以印证:

  1. 刷新被限流(throttled),避免托盘高频触发上游 API 调用;
  2. **仅限当前可见应用(visible apps)**刷新,其他应用不受托盘刷新影响;
  3. 刷新结果会同步回 React Query,主窗口与托盘共享同一份用量缓存。

托盘侧的摘要拼装逻辑位于 src-tauri/src/tray.rs,其中包含了窗口摘要的格式化与单元测试(例如断言摘要字符串中包含h12%w80%w95%等窗口片段)。

编码套餐双窗口展示(Kimi / Zhipu / MiniMax)

针对 Kimi / Zhipu / MiniMax 等中国编码套餐供应商,托盘渲染**"5 小时窗口 + 周窗口"**双档用量,采用与官方订阅徽章完全一致的🟢 h12% w80%布局:取两个窗口中利用率最差的一档来决定 emoji 颜色(语义与主界面的订阅徽章相同)。h为 5 小时窗口利用率,w为周窗口利用率;火山方舟等月窗口套餐还会额外携带m(月)窗口,从 src-tauri/src/tray.rs 顶部注释与测试用例(script_summary_token_plan_weekly_only等)可以确认该布局规则。

更关键的自动化行为是:

  • 自动注入用量脚本:创建 Claude 供应商时,如果ANTHROPIC_BASE_URL匹配已知编码套餐主机(如api.kimi.com/codingapi.minimaxi.com等),CC Switch 会自动注入meta.usage_script,托盘无需打开 Usage Script 弹窗即可直接"点亮"。已知主机的正则匹配定义在前端 src/config/codingPlanProviders.ts 中,例如 Kimi 的匹配模式为api\.kimi\.com\/coding,MiniMax 为api\.minimaxi?\.com|api\.minimax\.io,并通过detectCodingPlanProvider做首匹配路由(Zhipu 个人版排在zhipu_team前面);
  • 保留用户自定义:更新供应商时,已存在的usage_script值会被保留,绝不会被自动注入覆盖,用户自定义脚本不受影响。

用量脚本的执行链路在 src-tauri/src/services/provider/usage.rs:脚本需enabled为真才会执行,timeout未设置时默认10 秒template_typeapi_keybase_urlaccess_tokenuser_id等字段都会透传给脚本运行时;校验逻辑(如interval_too_large报错)由validate_usage_script负责。弹窗界面见 src/components/UsageScriptModal.tsx。

Codex OAuth FAST 模式(新增开关)

本版本为Codex OAuth 支撑的 Claude 供应商新增了显式的FAST 模式开关(issue #2210):

  • 开启后,经过格式转换发往 ChatGPT Codex 上游的 Responses 请求会携带service_tier="priority",用更低的延迟换取更高的 ChatGPT 配额消耗;
  • 默认关闭,避免用户无感知地增加配额消耗。

源码层面该开关的实现非常直接:

  • src-tauri/src/provider.rs 中,ProviderMeta新增字段codex_fast_mode: Option<bool>,其语义注释明确写着"注入service_tier = "priority"用于 ChatGPT Codex 请求";访问器codex_fast_mode_enabled()使用unwrap_or(false),从源码结构看即"缺省视为关闭";
  • 转换入口在 src-tauri/src/proxy/providers/claude.rs:构造请求转换上下文时读取provider.codex_fast_mode_enabled()并传入;
  • 实际注入点在 src-tauri/src/proxy/providers/transform_responses.rs:仅当codex_fast_mode为真时才写入result["service_tier"] = "priority"。对应的单元测试覆盖了开/关两种状态——开启时断言service_tier == "priority"(约 L4907),关闭或默认时断言该字段不存在(约 L4926、L4972),保证"默认不注入"这一默认值契约。

Codex OAuth 稳定性修复

本版本集中修复了反向代理的四类问题,逐一说明:

1. 缓存路由(Cache Routing,#2218)

问题:代理之前会为请求生成新的 UUID,导致 Codex 上游的缓存身份(cache identity)不断抖动——同一个逻辑会话在上游被当成无数个不同会话,缓存命中率被摧毁。

修复:现在客户端提供的 session ID 同时用作prompt_cache_key与 Codex 会话头,保留显式缓存键,不再生成临时 UUID。prompt_cache_key的读取与传递贯穿 src-tauri/src/proxy/providers/transform_responses.rs、src-tauri/src/proxy/providers/codex.rs 与 src-tauri/src/proxy/session.rs 等模块。

2. Responses SSE 聚合(#2235)

问题:ChatGPT Codex 上游会强制以 OpenAI Responses SSE(流式事件流)返回,即使客户端请求的是非流式响应。此前非流式的 Anthropic 客户端(例如期望一次性 JSON 的 Claude Code 客户端)在这种场景下拿不到合法的 JSON。

修复:CC Switch 现在会先聚合上游的完整 SSE 事件流,再对聚合结果执行非流式格式转换,最终向 Anthropic 客户端返回正确的 JSON。这属于典型的"协议适配"逻辑:上游协议形态不可控时,代理承担聚合-转换职责。

3. Stream Check 与生产请求对齐(#2210)

问题:Stream Check(流连通性检测)此前构造的 Codex OAuth 探测请求与生产代理流量不一致,导致"检测失败但实际能用"(check fails but it actually works)的误报。

修复:Stream Check 现在以与生产代理流量完全相同的参数构造探测请求:

  • store: false(不持久化对话);
  • 加密推理内容包含(encrypted reasoning include);
  • 供应商的FAST 模式设置同样参与探测(即 FAST 开关开启时,探测也会带service_tier="priority")。

前端探测入口见 src/hooks/useStreamCheck.ts。

4. 模型字段提取改用 TOML 解析(#2227)

读取 Codex 配置中的model字段,从"首行正则匹配"改为标准 TOML 解析,多行 TOML 结构(如跨行的model = "..."或嵌套表)现在可以被正确解析。解析主体位于 src-tauri/src/codex_config.rs。

Skills 导入 / 安装可靠性

  • 导入对话框防重复:Skills 导入对话框在导入进行中会禁用操作按钮(#2211),防止连击;
  • 缓存按 ID 去重:已安装 Skills 缓存对导入结果按 ID 去重(#2139),双击不会追加重复的安装条目;
  • 根级SKILL.md仓库:Skill 安装与更新流程现在稳定地解析三种来源形态——直接嵌套路径、按 install-name 的递归搜索、以及仓库根目录的SKILL.md来源(#2231)。相关交互逻辑分布在 src/components/skills/RepoManagerPanel.tsx 与 src/hooks/useSkills.ts。
  • 模型快捷设置(Model Quick-Set)修复:模型一键配置现在基于最新的供应商表单状态应用(#2249),修复了旧表单状态(stale form state)导致一键配置失败的问题。

Gemini 会话恢复路径(#2240)

Gemini 会话扫描现在会读取会话条目中的.project_root元数据文件,恢复流程在可用时把原始项目目录传回给恢复操作,解决会话恢复到错误工作目录的问题。实现位于 src-tauri/src/session_manager/providers/gemini.rs,直接以entry.path().join(".project_root")读取元数据。

其他小修复还包括:

  • 供应商悬停名称(#2237):供应商图标在 inline SVG、图片 URL 与兜底首字母三种渲染路径下,悬停时都会暴露供应商名称(见 src/components/ProviderIcon.tsx);
  • 布局打磨(#2201):滚动区视口增加宽度约束,修复水平溢出;收紧应用底部与设置页脚间距,长会话 / 长设置页面显示更整洁。

移除:Hermes 配置健康扫描器

v3.14.1移除了内置的 Hermes 配置健康扫描器及其警告横幅,同时移除:

  • scan_hermes_config_health命令;
  • HermesHealthWarning类型;
  • HermesWriteOutcome.warnings载荷。

在仓库中搜索scan_hermes_config_health目前只能命中 CHANGELOG.md 与三语发布说明,说明该命令确实已从代码中删除。移除后,CC Switch 的 Hermes 面板聚焦其核心职责:当前供应商展示、默认供应商切换、Memory 编辑、启动 Hermes Web UI。深度 YAML 配置健康问题交给 Hermes 自身的 Web UI 面板处理。

迁移建议(官方 Notes):如果你之前依赖 CC Switch 暴露 Hermes 深度配置问题,请改用工具栏的 "Launch Hermes Web UI" 按钮,在 Hermes 自己的面板中排查;日常供应商管理、切换、Memory 编辑与 MCP / Skills 同步仍由 CC Switch 负责。

注意事项(Notes & Caveats)

  • FAST 模式默认关闭:只有在接受"以更高 ChatGPT 配额消耗换更低延迟"时才开启;
  • 托盘缓存用量:刷新被限流且仅限当前可见应用,避免不必要的上游 API 调用;数值同步进 React Query,保证主窗口与托盘一致。

下载与安装

到项目 Releases 页面(ccswitch.io 官网亦提供入口)下载对应版本。

系统要求

系统最低版本架构
WindowsWindows 10 及以上x64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64

Windows

文件说明
CC-Switch-v3.14.1-Windows.msi推荐- MSI 安装包,支持自动更新
CC-Switch-v3.14.1-Windows-Portable.zip绿色版,解压即用,不写注册表

macOS

文件说明
CC-Switch-v3.14.1-macOS.dmg推荐- DMG 安装包,拖入 Applications
CC-Switch-v3.14.1-macOS.zip解压拖入 Applications,通用二进制
CC-Switch-v3.14.1-macOS.tar.gz用于 Homebrew 安装与自动更新

macOS 构建已经 Apple 代码签名与公证(notarized),可直接安装。

Homebrew 方式:

brew tap farion1231/ccswitch brew install --cask cc-switch

升级:

brew upgrade --cask cc-switch

Linux

发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage

小结

v3.14.1 是一次以"代理正确性"和"用量可见性"为主题的补丁版本:Codex OAuth 反向代理的缓存身份、SSE 聚合与探测一致性修复,直接决定了 ChatGPT 配额场景下的稳定性与成本;托盘用量与h/w双窗口布局让用量管理无需进入主界面;FAST 模式则以一个显式开关把"延迟—配额"的权衡交还给用户。若你在使用 Codex OAuth 支撑的 Claude 供应商,本版本的缓存路由修复值得优先升级。

【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询