web_search 字段已被删除:cc-switch 重写 Codex 配置导致手动修改丢失
Quick fix
cc-switch 切换或启动时会用数据库整体重写 Codex 的 config.toml/auth.json,清掉未托管的手动字段;请升级到最新版,并用「通用配置」或 AGENTS.md 固定插件与自定义设置。
Symptom
Section titled “Symptom”检查配置文件,**发现 web_search 字段已被删除**。cc-switch 在每次切换供应商、或通过它完整启动 Codex 时,都会用自身数据库中保存的配置整体重写 ~/.codex/config.toml 和 auth.json,而不是与用户手动修改的内容做合并。因此用户在配置文件中手动添加的顶层字段(如 web_search = "disabled")会被当作无效配置清掉(#5910,维护者确认与 #3824 为同一问题并归并跟踪),Codex 自带插件面板里的启用/禁用状态也会被重置为默认值,即使 provider 没有发生任何切换(#5891,报告时仍 open)。同一重写机制的变体还有:旧版本 3.16.0 保存 API key 后实际未写入 auth.json,界面仍显示旧 key(#3620,3.16.1 起修复多条 takeover 写入路径);OAuth 与 API Key 两种登录方式混切时切不回去,必须手动改 auth.json(#5345,v3.17.0 加入官方登录接管后改善,剩余行为为维护者说明的「Codex 应用增强」中保留官方登录的能力,可关闭);以及切换 config.toml 中的 model_provider 后,Codex 侧边栏只展示与当前 provider 匹配的线程,旧对话被隐藏(#4071,v3.16.3 的「统一 Codex 会话历史」开关解决)。
先把 cc-switch 升级到最新版本:3.16.1 修复了编辑保存后未正确写入 auth.json 的多条 takeover 写入路径(解决 #3620 的 API key 不生效);v3.17.0 加入 Codex 官方登录接管,完善了官方 OAuth/API Key 与第三方供应商之间的切换(#5345)。
如果升级 v3.17.0 后 OAuth 登录仍切不回 API Key:这是「Codex 应用增强」中保留官方登录的能力导致的,在设置里关闭该增强即可;仍不行则按原 issue 的办法手动修改 auth.json。
~/.codex/auth.json (手动编辑此文件,将登录凭据改回 API key 形式;issue 未给出具体字段示例)web_search 等手动顶层字段被删除:该问题已被维护者归并到 #3824 集中跟踪,修复前每次通过 cc-switch 切换或更新配置后,需要手动把字段补回 config.toml。
~/.codex/config.toml web_search = "disabled"Codex 插件面板状态被重置(#5891,仍 open):临时方案是在 AGENTS.md 中写明各插件的使用限制;或按用户反馈使用最新版本新增的「通用配置」,让多个 provider 共用插件状态。
切换 model_provider 后历史会话在侧边栏被隐藏(#4071):升级到 ≥3.16.3,在「设置 → Codex 应用增强」中开启「统一 Codex 会话历史」,官方与第三方会话将共用一个 resume 历史桶;开启时的对话框还提供勾选项,可把已有的官方历史会话一并迁移(带逐次备份)。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 5 个真实 issue
- #3620修改API key保存后重新进入依旧显示为旧的sk-xxxxxxxxxxxxxxxxx
- #4071你用 cc-switch 切换模型时,实际上是修改了 config.toml 里的 model_provider 和 model 字段(比如从 openai / gpt-5.5 切到 custom / qwen3.7-max)。Codex 客户端重启后,侧边栏只展示与当前 model_provider 匹配的线程,所以你之前用 GPT 创建的对话就被"隐藏"了——数据还在磁盘上,只是界面上看不到了。
- #5345codex的oauth和api的切换不能用
- #5891重启ccswitch后启动codex,里面插件技能状态被重置
- #5910Issue: web_search = "disabled" 配置被意外删除,导致依赖该配置的功能失效
- web_search 字段被删后,能否提供一个配置项让 cc-switch 不代理/不清理这个字段?
- 有用户在 #5910 中提出同样需求,维护者未直接答复,而是将该 issue 标记为 #3824 的重复并归并跟踪;修复前只能每次切换后手动补回字段。
- 升级到 v3.17.0 后 OAuth 切 API key 仍然不生效怎么办?
- 维护者说明这是「Codex 应用增强」里保留官方登录的能力,属于正常行为,关闭该增强即可;也可以手动修改 ~/.codex/auth.json。
- 插件状态被重置的问题解决了吗?
- #5891 仍为 open。用户给出的临时办法是在 AGENTS.md 里限制各插件的使用,另有用户指出最新版本有「通用配置」,可以让多个 provider 共用插件状态。
- 切换模型后之前用 GPT 创建的对话不见了,数据丢了吗?
- 没有丢。Codex 侧边栏只展示与当前 model_provider 匹配的线程,数据仍在磁盘上;升级到 ≥3.16.3 并开启「统一 Codex 会话历史」后,官方与第三方会话共用同一个历史桶,切换后不再互相隐藏。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。