mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-24 10:12:46 +08:00
297 lines
13 KiB
Markdown
297 lines
13 KiB
Markdown
# CC Switch v3.12.3
|
||
|
||
> GitHub Copilot 反向代理、macOS 代码签名与公证、Reasoning Effort 映射、Tool Search 环境变量开关、Skill 备份/恢复生命周期
|
||
|
||
**[English →](v3.12.3-en.md) | [日本語版 →](v3.12.3-ja.md)**
|
||
|
||
---
|
||
|
||
## 概览
|
||
|
||
CC Switch v3.12.3 新增了 **GitHub Copilot 反向代理** 支持和 **Copilot Auth Center** 认证管理,引入了 **Reasoning Effort 映射** 实现跨供应商推理强度控制,通过 Claude 2.1.76+ 原生 `ENABLE_TOOL_SEARCH` 环境变量实现了 **Tool Search 开关**,新增了 **OpenCode SQLite 后端** 支持,并完成了 **macOS 代码签名与 Apple 公证**。同时引入了完整的 Skill 备份/恢复生命周期,改进了代理对 OpenAI o 系列模型的兼容性和 gzip 压缩支持,优化了 Skills 缓存策略,更新了 Claude 4.6 上下文窗口、MiniMax M2.7 和小米 MiMo 模型预设,并修复了 WebDAV 密码、工具消息解析、暗色模式和 Copilot 请求指纹等方面的问题。
|
||
|
||
**发布日期**:2026-03-24
|
||
|
||
**更新规模**:36 commits | 107 files changed | +9,124 / -802 lines
|
||
|
||
---
|
||
|
||
## 重点内容
|
||
|
||
- **GitHub Copilot 反向代理**:新增 Copilot 反向代理支持,通过 Copilot Auth Center 管理 GitHub Token 认证,实现 Copilot 模型在 Claude Code 中的无缝使用([⚠️ 风险提示](#️-风险提示))
|
||
- **macOS 代码签名与公证**:macOS 版本已通过 Apple 代码签名和公证,新增 DMG 安装格式,无需再手动绕过"未知开发者"警告
|
||
- **Reasoning Effort 映射**:代理层自动映射 — 显式 `output_config.effort` 优先,回退到 `budget_tokens` 阈值(<4000→low, 4000–16000→medium, ≥16000→high),支持 o 系列和 GPT-5+ 模型
|
||
- **Tool Search 环境变量开关**:利用 Claude 2.1.76+ 原生 `ENABLE_TOOL_SEARCH` 环境变量,在通用配置编辑器中一键启用 Tool Search
|
||
- **Skill 备份/恢复生命周期**:卸载前自动备份 Skill 文件;新增备份列表、恢复和删除管理
|
||
- **OpenCode SQLite 后端**:为 OpenCode 新增 SQLite 会话存储(与现有 JSON 后端并存),ID 冲突时 SQLite 优先的双后端扫描
|
||
- **Codex 1M 上下文窗口开关**:配置编辑器中一键设置 `model_context_window = 1000000`,自动填充 `model_auto_compact_token_limit`
|
||
- **禁用自动升级开关**:通用配置编辑器中新增 `DISABLE_AUTOUPDATER` 环境变量复选框,防止 Claude Code 自动升级
|
||
- **代理 Gzip 压缩**:非流式代理请求自动协商 gzip 压缩,减少带宽消耗
|
||
- **o 系列模型兼容性**:Chat Completions 代理正确使用 `max_completion_tokens` 处理 o1/o3/o4-mini 模型
|
||
- **Skills 导入重构**:将基于文件系统的隐式应用推断替换为显式的 `ImportSkillSelection`,防止多应用错误激活
|
||
|
||
---
|
||
|
||
## 新功能
|
||
|
||
### GitHub Copilot 反向代理
|
||
|
||
新增完整的 GitHub Copilot 集成,作为 Claude Code 供应商使用。
|
||
|
||
- 通过 OAuth Device Code 流程进行 GitHub 认证
|
||
- 支持多账号管理和自动 Token 刷新
|
||
- Anthropic ↔ OpenAI 格式自动转换
|
||
- 实时获取可用模型列表和用量统计 (#930,感谢 @Mason-mengze)
|
||
|
||
### Copilot Auth Center
|
||
|
||
在设置中新增认证中心面板,全局管理 GitHub 账号。
|
||
|
||
- 支持按供应商绑定账号(通过 `meta.authBinding`)
|
||
- 统一的 Token 管理和刷新机制
|
||
|
||
### Tool Search 开关
|
||
|
||
利用 Claude 2.1.76+ 原生 `ENABLE_TOOL_SEARCH` 环境变量控制 Tool Search 功能。
|
||
|
||
- 在供应商通用配置编辑器中以复选框形式暴露
|
||
- 替代了之前的二进制补丁方案,更简洁可靠 (#930,感谢 @Mason-mengze)
|
||
|
||
### Reasoning Effort 映射
|
||
|
||
新增代理层自动推理强度映射,支持 OpenAI o 系列和 GPT-5+ 模型。
|
||
|
||
- 两级解析:显式 `output_config.effort` 优先,回退到 `budget_tokens` 阈值(<4000→low, 4000–16000→medium, ≥16000→high)
|
||
- 覆盖 Chat Completions 和 Responses API 两条路径,含 17 个单元测试
|
||
|
||
### OpenCode SQLite 后端
|
||
|
||
为 OpenCode 新增 SQLite 会话存储支持(与现有 JSON 后端并存)。
|
||
|
||
- 双后端扫描,ID 冲突时 SQLite 优先
|
||
- 原子会话删除和路径校验
|
||
- JSON 后端保持向后兼容
|
||
|
||
### Codex 1M 上下文窗口开关
|
||
|
||
在配置编辑器中新增 Codex 1M 上下文窗口一键开关。
|
||
|
||
- 复选框设置 `config.toml` 中的 `model_context_window = 1000000`
|
||
- 启用时自动填充 `model_auto_compact_token_limit = 900000`
|
||
- 关闭时干净移除两个字段
|
||
|
||
### 禁用自动升级开关
|
||
|
||
在 Claude 通用配置编辑器中新增禁用自动升级的复选框。
|
||
|
||
- 勾选后设置 `DISABLE_AUTOUPDATER=1` 环境变量,阻止 Claude Code 自动升级
|
||
- 与 Teammates 模式、Tool Search、高强度思考等开关同一排显示
|
||
|
||
### Skill 卸载自动备份
|
||
|
||
卸载 Skill 前自动备份文件,防止数据意外丢失。
|
||
|
||
- 备份存储在 `~/.cc-switch/skill-backups/`,包含所有 skill 文件和记录原始元数据的 `meta.json`
|
||
- 旧备份自动清理,最多保留 20 个
|
||
- 备份路径返回前端并在成功提示中显示
|
||
|
||
### Skill 备份恢复与删除
|
||
|
||
新增卸载时创建的 Skill 备份的管理功能。
|
||
|
||
- 列出所有可用的 skill 备份及元数据
|
||
- 恢复操作将文件拷回 SSOT,保存数据库记录,并同步到当前应用,失败时自动回滚
|
||
- 删除操作在确认对话框后移除备份目录
|
||
|
||
### macOS 代码签名与 Apple 公证
|
||
|
||
CI 流程新增完整的 macOS 代码签名和 Apple 公证支持。
|
||
|
||
- 导入 Apple Developer ID 证书,签名 Universal Binary
|
||
- 提交 Apple 公证并将票据装订到 `.app` 和 `.dmg`
|
||
- 硬性验证步骤(`codesign --verify` + `spctl -a` + `stapler validate`)把关发布
|
||
|
||
---
|
||
|
||
## 变更
|
||
|
||
### Skills 缓存策略优化
|
||
|
||
- 将 `invalidateQueries` 替换为直接 `setQueryData` 更新,用于 skill 安装/卸载/导入操作
|
||
- 新增 `staleTime: Infinity` 和 `keepPreviousData`,消除加载闪烁 (#1573,感谢 @TangZhiZzz)
|
||
|
||
### 代理 Gzip 压缩
|
||
|
||
- 非流式请求允许 reqwest 自动协商 gzip 并透明解压响应
|
||
- 流式请求保守地保持 `Accept-Encoding: identity`,避免中断的 SSE 流解压出错
|
||
|
||
### o1/o3 模型兼容性
|
||
|
||
- Chat Completions 路径对 o1/o3/o4-mini 模型使用 `max_completion_tokens` 替代 `max_tokens` (#1451,感谢 @Hemilt0n)
|
||
- Responses API 路径保持使用正确的 `max_output_tokens` 字段
|
||
|
||
### OpenCode 模型变体
|
||
|
||
- 将 OpenCode 的模型变体放在预设顶层而非嵌套在 options 内部,提升可发现性 (#1317)
|
||
|
||
### Skills 导入流程
|
||
|
||
- 将基于文件系统的隐式应用推断替换为显式的 `ImportSkillSelection`,防止同一 skill 目录存在于多个应用路径下时错误激活多个应用
|
||
- 为 `sync_to_app` 增加协调逻辑,移除已禁用/孤立的符号链接
|
||
- MCP `sync_all_enabled` 现在会从 live 配置中移除已禁用的服务器
|
||
|
||
### Claude 4.6 上下文窗口
|
||
|
||
- Claude Opus 4.6 和 Sonnet 4.6 上下文窗口从 200K 更新至 1M(GA 发布)
|
||
|
||
### MiniMax 模型升级
|
||
|
||
- MiniMax 预设从 M2.5 升级至 M2.7,更新三语合作伙伴描述
|
||
|
||
### 小米 MiMo 模型升级
|
||
|
||
- MiMo 预设从 mimo-v2-flash 升级至 mimo-v2-pro
|
||
|
||
### 添加供应商对话框简化
|
||
|
||
- 移除冗余的 OAuth 标签页,对话框从 3 个标签页减少到 2 个(应用专属 + 通用)
|
||
|
||
### 供应商表单高级选项折叠
|
||
|
||
- Claude 供应商表单中的模型映射、API 格式等高级字段在未填写时默认折叠
|
||
- 预设填充值后自动展开,手动清空不会自动折叠
|
||
|
||
---
|
||
|
||
## Bug 修复
|
||
|
||
### WebDAV 密码被静默清除
|
||
|
||
- 修复 ProviderList 或 UsageScriptModal 保存设置时 WebDAV 密码被静默清除的问题
|
||
- 前端 payload 中剥离 `webdavSync`,后端 `merge_settings_for_save()` 增加回填逻辑保护现有密码
|
||
|
||
### 工具消息解析
|
||
|
||
- 修复 Claude(tool_result content blocks)、Codex(function_call/function_call_output payloads)和 Gemini(array content + toolCalls extraction)的 tool_use/tool_result 消息分类 (#1401,感谢 @BlueOcean223)
|
||
|
||
### 暗色模式选择器
|
||
|
||
- 将 Tailwind `darkMode` 从 `["selector", "class"]` 改为 `["selector", ".dark"]`,确保暗色模式正确激活 (#1596,感谢 @qinxiandiqi)
|
||
|
||
### Copilot 请求指纹
|
||
|
||
- 统一所有 Copilot API 调用点的请求指纹头,防止 User-Agent 泄漏和 Stream Check 不匹配
|
||
|
||
### 供应商表单防重复提交
|
||
|
||
- 修复快速连续点击按钮时供应商添加/编辑表单重复提交的问题 (#1352,感谢 @Hexi1997)
|
||
|
||
### Ghostty 终端会话恢复
|
||
|
||
- 修复在 Ghostty 终端中恢复 Claude 会话失败的问题 (#1506,感谢 @canyonsehun)
|
||
|
||
### Skill ZIP 导入扩展名
|
||
|
||
- ZIP 导入对话框现在支持 `.skill` 文件扩展名 (#1240, #1455,感谢 @yovinchen)
|
||
|
||
### Skill ZIP 安装目标应用
|
||
|
||
- ZIP 方式安装的 skill 现在使用当前活跃应用,而非始终默认为 Claude
|
||
|
||
### OpenClaw 活跃供应商高亮
|
||
|
||
- 修复 OpenClaw 当前激活的供应商卡片未高亮显示的问题 (#1419,感谢 @funnytime75)
|
||
|
||
### 响应式布局与 TOC
|
||
|
||
- 改善存在 TOC 标题时的响应式布局 (#1491,感谢 @West-Pavilion)
|
||
|
||
### Skills 导入对话框白屏
|
||
|
||
- 在 ImportSkillsDialog 中补充缺失的 TooltipProvider,修复打开对话框时的运行时崩溃
|
||
|
||
### 面板底部空白区域
|
||
|
||
- 将所有内容面板的硬编码 `h-[calc(100vh-8rem)]` 替换为 `flex-1 min-h-0`,消除因不同平台偏移量不匹配导致的底部空白
|
||
|
||
---
|
||
|
||
## 文档
|
||
|
||
### 定价模型 ID 归一化
|
||
|
||
- 在中英日三语用户手册中新增模型 ID 归一化规则说明(前缀剥离、后缀修剪、`@`→`-` 替换)(#1591,感谢 @makoMakoGo)
|
||
|
||
### macOS 签名与公证说明
|
||
|
||
- 移除 README、安装指南和 FAQ 中所有 `xattr` 变通方案和"未知开发者"警告
|
||
- 替换为"已通过 Apple 代码签名和公证"的说明
|
||
|
||
---
|
||
|
||
## ⚠️ 风险提示
|
||
|
||
**GitHub Copilot 反向代理免责声明**
|
||
|
||
本版本新增的 Copilot 反向代理功能通过逆向工程的非官方 API 访问 GitHub Copilot 服务。启用此功能前,请注意以下风险:
|
||
|
||
1. **违反服务条款**:此功能可能违反 [GitHub 可接受使用政策](https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies)和[附加产品条款](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features),其中禁止过度自动化批量活动、未经授权的服务复制以及通过自动化手段对服务器施加不当负担。
|
||
2. **账号风险**:已有类似工具的用户收到 GitHub 官方警告邮件,指出其存在"脚本化交互或其他刻意的异常或高强度使用"行为。收到警告后继续使用可能导致 Copilot 访问权限被暂停甚至永久封禁。
|
||
3. **无法保证长期可用**:GitHub 可能随时更新其检测机制,当前可用的使用方式未来可能被标记。
|
||
|
||
用户启用此功能即表示**自行承担所有风险**。CC Switch 不对因使用此功能而导致的任何账号限制、警告或服务暂停承担责任。
|
||
|
||
---
|
||
|
||
## 下载与安装
|
||
|
||
访问 [Releases](https://github.com/farion1231/cc-switch/releases/latest) 下载对应版本。
|
||
|
||
### 系统要求
|
||
|
||
| 系统 | 最低版本 | 架构 |
|
||
| ------- | ----------------------------- | ----------------------------------- |
|
||
| Windows | Windows 10 及以上 | x64 |
|
||
| macOS | macOS 12 (Monterey) 及以上 | Intel (x64) / Apple Silicon (arm64) |
|
||
| Linux | 见下表 | x64 |
|
||
|
||
### Windows
|
||
|
||
| 文件 | 说明 |
|
||
| ------------------------------------------ | ----------------------------------- |
|
||
| `CC-Switch-v3.12.3-Windows.msi` | **推荐** - MSI 安装包,支持自动更新 |
|
||
| `CC-Switch-v3.12.3-Windows-Portable.zip` | 便携版,解压即用,不写入注册表 |
|
||
|
||
### macOS
|
||
|
||
| 文件 | 说明 |
|
||
| ---------------------------------- | --------------------------------------------------------- |
|
||
| `CC-Switch-v3.12.3-macOS.dmg` | **推荐** - DMG 安装包,拖入 Applications 即可 |
|
||
| `CC-Switch-v3.12.3-macOS.zip` | 解压后拖入 Applications,Universal Binary |
|
||
| `CC-Switch-v3.12.3-macOS.tar.gz` | 用于 Homebrew 安装和自动更新 |
|
||
|
||
> macOS 版本已通过 Apple 代码签名和公证,可直接安装使用。
|
||
|
||
### Homebrew(macOS)
|
||
|
||
```bash
|
||
brew tap farion1231/ccswitch
|
||
brew install --cask cc-switch
|
||
```
|
||
|
||
更新:
|
||
|
||
```bash
|
||
brew upgrade --cask cc-switch
|
||
```
|
||
|
||
### Linux
|
||
|
||
| 发行版 | 推荐格式 | 安装方式 |
|
||
| --------------------------------------- | ----------- | ---------------------------------------------------------------------- |
|
||
| Ubuntu / Debian / Linux Mint / Pop!\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` 或 `sudo apt install ./CC-Switch-*.deb` |
|
||
| Fedora / RHEL / CentOS / Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` 或 `sudo dnf install ./CC-Switch-*.rpm` |
|
||
| openSUSE | `.rpm` | `sudo zypper install ./CC-Switch-*.rpm` |
|
||
| Arch Linux / Manjaro | `.AppImage` | 添加执行权限后直接运行,或使用 AUR |
|
||
| 其他发行版 / 不确定 | `.AppImage` | `chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage` |
|