Skip to content

模型目录 codex-switch-model-catalog.json 在切换/编辑供应商组时被整体重新生成,覆盖手动修改的 per-model 字段 #23

Description

@xcchc

问题描述

手动编辑 %USERPROFILE%\.codex\codex-switch-model-catalog.json 中某些模型条目的自定义字段(例如 apply_patch_tool_typeshell_typebase_instructions)之后,只要在 Codex Switch 里切换/编辑供应商组或同步模型列表,整个目录文件就会被重新生成:

  • 条目顺序和 priority 重新排列;
  • 手动修改的字段被重置为默认值(如 apply_patch_tool_type 回到 nullshell_type 回到 shell_commandbase_instructions 恢复为默认一句话)。

影响

这些字段控制 Codex 客户端对具体模型的工具声明与提示词行为。被覆盖后相关行为直接回退,且不易察觉;用户每次调整供应商配置后都要手动重改一遍,容易忘记。

复现步骤

  1. 编辑 %USERPROFILE%\.codex\codex-switch-model-catalog.json,给某个模型条目设置 apply_patch_tool_type: "freeform"(或修改 base_instructionsshell_type);
  2. 在 Codex Switch 中切换/编辑一次供应商组;
  3. 重新打开目录文件,发现修改被还原,条目顺序和 priority 也被重排。

期望

任选其一即可大幅改善:

  1. 字段保留:重新生成时保留条目里 Codex Switch 未管理的字段(如 apply_patch_tool_typeshell_typebase_instructions 等),只更新它自己维护的字段(slugpriority、可见性等);
  2. 手动覆盖文件:支持一个不参与同步的 per-model 覆盖文件(类似 user overrides),生成目录时自动合并,优先级高于生成的值;
  3. 导出/导入模板:提供目录自定义字段的导出/导入,方便覆盖后快速恢复。

环境

  • Codex Switch 1.4.11(Windows)
  • Codex CLI 0.153.2

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions