中文 | English
修复 Codex CLI 桌面端在同一会话内「中途 cc switch 从 DeepSeek 切回 OpenAI 模型」后回退回传报错的问题——清理 ~/.codex/sessions 下的 transcript 脏数据。
Invalid 'input[x].id'要求以msg开头- reasoning content 数组超长
rs_resp_item 404 not found- 裸 UUID item id
问题最初由同一条会话里用 cc switch 切换 config 触发——从 OpenAI 切到 DeepSeek、再切回 OpenAI 继续对话时,DeepSeek 适配层写入与 OpenAI Responses API 不兼容的数据;切回后整段历史作为 input[] 回传即报错。
把 SKILL.md 当作技能/提示词加载,按其步骤逐个修复三类污染:
- 畸形 message id
resp_<uuid>_msg→msg_<uuid> - 畸形/裸 UUID 的 reasoning 项 → 删除
- 裸 UUID item id(message / function_call / custom_tool_call)→ 按类型前缀化
msg_/fc_/ctc_
每轮修复后用内置校验脚本检查(坏行=0、无 rs_resp_/裸 UUID、reasoning 无明文 content 等),然后完全退出并重启 Codex 桌面端。
详细规则见
SKILL.md。通用化后不再依赖任何本机个人路径。
- transcript 位于
~/.codex/sessions/<年>/<月>/<日>/rollout-<session>.jsonl - 用
python3逐行json.loads处理,先备份再加cp -p。 - 只做结构化改写
item["id"],不做全局字符串替换以免误伤正文。
- 适配系统:macOS / Windows / Linux —— 只要是 Codex CLI 桌面端能跑的系统均可;用
python3(Windows 用python)逐行处理。 - Windows 注意:transcript 路径是
%USERPROFILE%\.codex\sessions\...(而非~/.codex/sessions);备份命令cp -p在 Windows 上需要在 Git Bash / WSL 里执行。
MIT © TOBYCAI