# 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`              |
