# 恢复前先做不暴露凭据的环境快照

真实执行配置文件存在性、覆盖变量是否设置、应用版本检查；保留原文件，未替用户切换当前供应商或关闭正在用的路由。

## 实测范围

只读系统检查已执行；供应商切换、原文件备份与恢复未操作。

## 运行环境

- node v24.14.0
- ollama 0.40.9

## 操作步骤

### 1. 确认安装版本与文档代际

只读检查发现 CC Switch 3.18.0 与 CCSwitchMulti 3.16.4-2；本练习引用3.18.0标签手册，最新版4.x按钮名称另行核对。

```bash
python3 readonly-check.py
```

### 2. 记录来源而不输出 Key

只报告目标配置文件是否存在和指定环境变量是否设置，既不读配置正文，也不读取 token 数据库。

### 3. 先保留需要恢复的状态

实际切换前关闭目标工具并保存自己的原件/备份；含凭据的备份只留私有位置，不能上传。本次不执行备份或覆盖。

### 4. 按所用版本退出路由并启用官方

3.18.0 供应商卡片使用“启用”；先处理对应应用路由再切目标官方供应商。别用删除 .claude/.codex/.cc-switch 整个目录代替恢复。

### 5. 回到客户端核对认证和下一次请求

重新进入目标工具，检查实际认证来源、地址和模型；新旧版本生效方式不同，不仅凭卡片颜色宣布恢复成功。

## 实际观察

- 应用版本：{"Cursor": {"installed": false}, "CC Switch": {"installed": true, "version": "3.18.0"}, "CCSwitchMulti": {"installed": true, "version": "3.16.4-2"}, "Claude": {"installed": true, "version": "2.2553.1"}}
- 只读文件检查：[{"path": "~/.claude/settings.json", "exists": true, "contentsRead": false, "modified": false, "unchangedStat": true}, {"path": "~/.claude/settings.local.json", "exists": false, "contentsRead": false, "modified": false}, {"path": "~/.codex/config.toml", "exists": true, "contentsRead": false, "modified": false, "unchangedStat": true}, {"path": "~/.cc-switch/cc-switch.db", "exists": true, "contentsRead": false, "modified": false, "unchangedStat": true}]
- 执行不输出环境变量值；未修改既有配置或数据库。

## 未验证与限制

- 本次仅只读核对，尚未执行供应商恢复或验证恢复后的真实请求。
- 最新手册适用于4.x，不能将其“直连/路由/聚合”界面视为3.18.0实测截图。

## 官方来源

- [CC Switch 3.18.0 官方：切换与配置](https://raw.githubusercontent.com/farion1231/cc-switch/v3.18.0/docs/user-manual/zh/2-providers/2.2-switch.md)
- [CC Switch 官方：环境覆盖来源](https://raw.githubusercontent.com/farion1231/cc-switch/main/docs/user-manual/zh/5-faq/5.4-env-conflict.md)

截图若展示本页执行记录，是结果日志视图，不是产品原生界面。
