跳转到内容

Select Model 菜单仍然显示切换前模型列表 - Codex

Quick fix

关闭现有 Codex 会话后运行 codex app-server daemon restart;升级 CC Switch 至 v4.0.7 以上可获得旧目录检测与重启提示。

报错原文
Select Model 菜单仍然显示切换前 provider(A)的模型列表,重开 TUI 窗口也无效。只有彻底杀掉所有 codex 进程后重开,才会显示新 provider 的模型。

Codex 的 `app-server daemon` 只在启动时读取一次 `config.toml` 和 `model_catalog_json`,随后由 TUI 通过 `model/list` 接口获取其缓存的模型目录。CC Switch 切换 provider、直连或路由模式时虽然会改写磁盘配置,但已运行的 daemon 不会重新读取,因此 `/model` 仍显示切换前的目录;仅重开 TUI 或终端窗口可能继续复用同一个 daemon。

该问题在 Windows 的 codex-cli 0.160.0、Windows 与 Linux 的 codex-cli 0.159.2 场景中得到复现。CC Switch v4.0.0 开始提供部分旧目录检测,v4.0.7 将检测与重启提示扩展到直连、路由和聚合模式;它仍不能让正在运行的 Codex 自动重新加载目录。

  1. 先关闭连接到共享 daemon 的现有 Codex 会话,避免重启时中断正在进行的工作。

  2. 运行 `codex app-server daemon restart`,然后重新启动 Codex;该命令已被用户、复现者和维护者确认可以让 daemon 重新读取当前模型目录。

  3. 将 CC Switch 升级到 v4.0.7 或更高版本;切换直连、路由或聚合模式后,按旧模型目录提示重启 Codex 后台服务。

  4. 如果只使用手动启动的 TUI,可临时通过 `codex --no-daemon` 绕过共享 daemon,使该会话直接读取当前配置;此参数不适用于 `codex exec`、桌面版或编辑器插件。

  5. 若无法执行 daemon restart,可在 Windows 上终止全部 Codex 进程后重新启动;这会中断现有会话,仅作为手动变通方法。

ToolCodex
Versioncodex-cli 0.159.2 - 0.160.0(已复现受影响版本)
PlatformsWindowsLinux
为什么切换 provider 后重开 Codex TUI,模型列表还是不更新?
重开的 TUI 仍会连接已经常驻的 `app-server daemon`;缓存位于 daemon 内存中,而不是 TUI 窗口中,因此需要运行 `codex app-server daemon restart`。
可以不用重启 daemon 吗?
手动使用 TUI 时可以运行 `codex --no-daemon`,让会话自行启动 server 并读取当前 `config.toml`;但 `codex exec` 没有这个开关,桌面版和编辑器插件也不受它影响。
升级 CC Switch 后,正在运行的 Codex 会自动重新读取模型目录吗?
不会。v4.0.7 起 CC Switch 会在直连、路由和聚合模式下检测旧目录并提示重启,但仍需按提示重启 Codex 后台服务。
为什么状态栏显示新模型,而 `/model` 仍显示旧模型?
状态栏可以读取新的 `config.toml`,而 `/model` 候选列表来自 daemon 缓存的 `model/list`;两者数据来源不同,所以切换模式后可能暂时不一致。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。