news 2026/9/10 5:21:36

oh-my-codex 0.20.0 发布就绪评估:GPT-5.6 模型契约迁移的验证、门禁与发布全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
oh-my-codex 0.20.0 发布就绪评估:GPT-5.6 模型契约迁移的验证、门禁与发布全记录

oh-my-codex 0.20.0 发布就绪评估:GPT-5.6 模型契约迁移的验证、门禁与发布全记录

【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex

本指南基于 oh-my-codex 仓库中 docs/qa/release-readiness-0.20.0.md 这份发布就绪评估文档,逐节解析 0.20.0 版本的验证方法、门禁命令、CI 证据链与已知缺口。读者既能复现这套「本地门禁 + CI 证据 + 发布证明」的发布流程,也能理解 GPT-5.6(Sol/Terra/Luna)模型契约迁移的落地细节与它如何被测试锁定。

一、为什么需要「发布就绪评估」文档

oh-my-codex 是一个为 OpenAI Codex CLI 提供多 Agent 编排能力的开源项目(TypeScript 主体 + Rust 工作区),每个版本发布前都必须在 docs/qa/ 目录下沉淀一份release-readiness-<version>.md。这份文档不是形式主义,而是 RELEASE_PROTOCOL.md 强制要求的发布证据:

  • 冻结发布范围:明确上一版本 tag 与候选 ref,并用git merge-base --is-ancestor验证祖先关系;
  • 依据证据而非记忆撰写发布说明:要求生成CHANGELOG.mddocs/release-notes-<version>.mddocs/qa/release-readiness-<version>.mdRELEASE_BODY.md四份发布物料;
  • 发布就绪门禁(第 4 节):本地门禁通过、devCI 绿、就绪文档记录 compare range / PR 清单 / 本地门禁 / CI run ID / 已知缺口、发布说明对照git log全量核对。

0.20.0 这份就绪文档正是一个标准样本:它用 21 个提交的 compare range、15 个 PR、全套门禁输出和 8 条 CI run ID,把「可以发布」这个结论变成了可审计的证据。

二、Compare range:冻结发布范围

0.20.0 的 compare range 事实(来自就绪文档):

  • 上一发布 tag:v0.19.1
  • 发布 tag:v0.20.0-> commit456effa2afcb7967e8ba7130ee15b2835c235d72
  • 血缘:v0.19.1v0.20.0的祖先;v0.20.0同时位于maindev分支
  • 完整对比范围:v0.19.1...v0.20.0(21 个提交)

Compare range 是发布证据的骨架。按 RELEASE_PROTOCOL.md 第 1 节的命令模板,可用如下命令重建该范围:

git merge-base --is-ancestor v0.19.1 v0.20.0 # 验证祖先关系,退出码 0 表示成立 git log --oneline --decorate v0.19.1..v0.20.0 # 21 个提交的全量清单 git log --format='%h %s' v0.19.1..v0.20.0 | grep -Eo '#[0-9]+' | sort -u # 提取 PR 编号

21 个提交中,除 15 个 PR 的合并提交外,还包含 3 个直接落在分支上的 GPT-5.6 迁移提交(未单独建 PR):3e579633(feat: migrate model contract to GPT-5.6 sol/terra/luna)、0ac484e0(fix: resolve migration review blockers)、51ee0c28(fix: doctor spark source labeling + alias docs),以及 3 个发布物料提交1ef0b8ce5f5150d2456effa2。这提醒我们:发布范围必须同时覆盖 PR 提交与直接提交,仅数 PR 会低估范围——这也是 0.20.0 在发布后需要修正 changelog 的根源(见下文「已知缺口」)。

三、PR 清单与「未列 PR 的迁移提交」

0.20.0 共 15 个 PR:#3079、#3080、#3082、#3085、#3086、#3087、#3088、#3091、#3092、#3094、#3097、#3099、#3100、#3102、#3104。对照 CHANGELOG.md 的 0.20.0 条目,可以看清每个 PR 的落点:

类别PR内容
稳定性修复#3079无原生子 Agent 时防止 conductor 死锁
#3080resume--sort updated保留 transcript mtime
#3082插件 Stop hook 兼容 launcher 噪声后的末行 JSON
插件与项目设置#3085项目 setup 默认插件模式 + 插件缓存
#3086插件 hooks 仅在 omx 启动的会话中生效
#3088resume 插件 preflight 改为 opt-in
能力清单#3087新增omx capabilities lock/checkCLI
深度访谈状态#3091 / #3092运行时状态 allowlist / 终端状态归一化
Ralplan/Ultragoal#3094 / #3097 / #3100审批 handoff 与车道复用 / 目标派生守卫 / steering 清理
会话与上下文#3099SessionStart 时重开持久化子 Agent
#3102规范化 worktree 工具上下文
模型别名#3104GPT-5.6 模型别名(terra/luna/sol)

PR 清单的意义在于「双向可核」:每个合并提交都能在清单中找到对应 PR,每个 PR 都能在 release notes 中找到说明或被明确标注为内部事项。

四、本地门禁:发布前的第一道关卡

0.20.0 就绪文档记录的本地门禁全部通过,下面逐条说明命令、输出与它们在代码中的落点。

1. TypeScript 构建

npm run build

npm run build(见 package.json)执行「清空dist/->tsc编译 -> 为dist/cli/omx.js加可执行权限」三步,产出发布用的编译产物。0.20.0 门禁结果为 pass。

2. 版本同步检查

node src/scripts/check-version-sync.ts

输出package=0.20.0 workspace=0.20.0。这个脚本(src/scripts/check-version-sync.ts)是版本一致性的守护者,它校验:

  • package.jsonversionCargo.toml[workspace.package].version一致;
  • 6 个 Rust crate(omx-apiomx-exploreomx-runtime-coreomx-muxomx-runtimeomx-sparkshell)的版本均声明version.workspace = true,不允许独立漂移;
  • 若传入--tag,还校验 tag 与package.json版本匹配。

因此 0.20.0 的版本号0.20.0被同步到了package.jsonpackage-lock.jsonCargo.toml [workspace.package]Cargo.lock以及plugins/oh-my-codex/.codex-plugin/plugin.json五处。

3. 插件镜像同步检查

node dist/scripts/sync-plugin-mirror.js --check

校验 29 个规范 skill 目录与插件元数据一致。该命令对应 src/scripts/sync-plugin-mirror.ts 的--check模式:它依据plugins/oh-my-codex/下的插件清单,比对skills/prompts/等目录的镜像内容,任何漂移都会以plugin_bundle_metadata_out_of_sync之类的错误中断。0.20.0 时 29 个目录全部通过。

4. Node 测试套件:370/371

npm test

0.20.0 结果是 370/371 个测试文件通过。唯一失败的是dist/cli/__tests__/resume.test.js("preserves transcript mtimes while materializing runtime history for updated sort"),就绪文档给出了完整的定性:

  • 它是预先存在(pre-existing)的 macOS-only 环境问题:测试内的假 codex 使用了 GNUstat -c,在 BSD/macOS 上不可用;
  • 已在迁移前的提交5a6c454b上复现出完全相同的结果,证明与本次迁移无关;
  • 在 Linux CI 上通过。

这种「先复现基线、再定性、再证明与本次改动无关」的处置方式,是就绪评估中处理环境性失败的规范动作。

5. Rust 工作区测试:237/237

cargo test

0.20.0 的 Rust 工作区(omx-apiomx-exploreomx-muxomx-runtime-coreomx-runtimeomx-sparkshell,见 Cargo.toml)237 个测试全部通过。Rust 侧同样被纳入 GPT-5.6 迁移范围:sparkshell/explore/api 的默认模型与文档均同步迁移。

6. 迁移质量门禁:三轮架构评审 + 三轮红队

0.20.0 的迁移质量门禁记录了完整的评审轨迹:

  • 架构评审三轮:BLOCK -> COMMENT -> CLEAR/APPROVE;
  • 执行者 QA/红队(red-team)三轮;
  • 证据产物存放在artifacts/qa-gpt56/artifacts/qa-gpt56-r2/artifacts/qa-gpt56-r3/,发布 QA 在artifacts/qa-release-0200/

这说明模型契约迁移不是「改几个默认值」就完事,而是经历了「架构阻断 -> 提意见 -> 放行」的完整评审链与对抗性验证。

五、CI 证据链:从迁移到发布的全过程

0.20.0 就绪文档用 8 条 CI run ID 串起了「迁移 -> 发布准备 -> 发布 commit -> 双分支验证 -> tag 触发发布」的完整证据链:

阶段提交CI run ID结果
dev(迁移 + 修复)51ee0c2829066232940成功
dev(发布准备)1ef0b8ce29066522175失败(插件 manifest 版本陈旧),由5f5150d2修复
dev5f5150d229066777285成功
dev(发布 commit)456effa229068579015成功
main5f5150d229067030836成功
main(发布 commit)456effa229068657404成功
tag v0.20.0 发布工作流456effa229068946855成功
tag 尝试(早期,5f5150d229067574902失败(release body 缺少## Contributors节),tag 在456effa2重建

这组数据还原了真实的发布曲线:CI 失败不是终点,而是证据——1ef0b8ce的失败定位到「插件 manifest 版本陈旧」,由5f5150d2修复;tag 工作流第一次失败是因为 release body 模板缺少## Contributors节(这正是 RELEASE_PROTOCOL.md 第 3 节硬性要求的模板内容),于是 tag 在456effa2重建并成功。就绪文档不粉饰失败,反而把失败与修复一一对应记录,这是它可信的关键。

六、发布证明:GitHub release 与 npm 双通道

  • GitHub releasev0.20.0已发布(非 draft),并附带 native assets 与 manifest;
  • npmoh-my-codex@0.20.0已发布,npm view oh-my-codex version返回0.20.0gitHead指向456effa2(与发布 commit 一致)。

按 RELEASE_PROTOCOL.md 第 5 节,发布后还应将dev快进到已发布的maincommit 并在dev上立即把版本号 bump 到下一个开发基线(如 0.20.1-dev),避免 dev 安装与已发布版本混同。仓库当前的 package.json 与 Cargo.toml 中版本为0.21.2,正是该机制持续运转的体现。

七、已知缺口:发布后的修正轨迹

就绪文档的「Known gaps」记录了一个诚实的问题:最初发布的 changelog/release-notes 低估了完整 compare range(主要是未把未列 PR 的直接迁移提交计入),发布后通过 collateral-accuracy follow-up 提交修正,并用gh release edit更新了 GitHub release 正文。

这条记录对应 RELEASE_PROTOCOL.md 第 6 节的「发布后修正」流程:不移动已发布的 npm provenance tag,而是把修正后的发布物料提交到dev,经正常 CI 路径提升到main,重新生成 release body 后执行gh release edit,并在就绪文档中记录修正。版本发布是允许修正的,前提是修正本身留痕

八、0.20.0 的技术主体:GPT-5.6 模型契约迁移

就绪文档验证的对象,本质上是这次「把整个模型契约迁到 OpenAI GPT-5.6 代(Sol/Terra/Luna,2026-07-09 公开)」的变更。结合 docs/release-notes-0.20.0.md 与源码,迁移的内容可以精确展开。

1. 三条车道默认模型全面替换

frontier(前沿) : gpt-5.5 -> gpt-5.6-sol standard(标准) : gpt-5.4-mini -> gpt-5.6-terra spark(快速) : gpt-5.3-codex-spark -> gpt-5.6-luna

落点覆盖:运行时默认值、Codex Agent 默认值、Rust crates、文档、prompts、skills 与插件镜像。核心常量定义在 src/config/models.ts:

export const DEFAULT_FRONTIER_MODEL = 'gpt-5.6-sol'; export const DEFAULT_STANDARD_MODEL = 'gpt-5.6-terra'; export const DEFAULT_SPARK_MODEL = 'gpt-5.6-luna'; export const GPT_5_6_MODEL_ALIASES = [DEFAULT_STANDARD_MODEL, DEFAULT_SPARK_MODEL, DEFAULT_FRONTIER_MODEL] as const; export const KNOWN_CODEX_MODEL_ALIASES = GPT_5_6_MODEL_ALIASES;

isKnownCodexModelAlias()即 #3104 引入的「已知 Codex 模型别名」判定函数,用于识别这三个别名。

2. 子 Agent 角色分配

  • planner:精确固定gpt-5.6-sol(medium 推理)
  • architect:精确固定gpt-5.6-sol(xhigh 推理)
  • researcher:精确固定gpt-5.6-terra
  • 标准 worker / review 角色:gpt-5.6-terra
  • explore / style-reviewer 与团队低复杂度 worker:gpt-5.6-luna

3. 精确模型组合缝(exact-model composition seam)

EXACT_GPT_5_4_MINI_MODEL更名为EXACT_GPT_5_6_TERRA_MODEL:指引以「trim 后最终解析模型」与gpt-5.6-terra大小写敏感精确相等匹配,且优先于角色的exactModel固定 pin

4. 兼容性边界(来自 release notes 与源码)

  • 已有显式模型覆盖(包括旧代模型名)仍作为不透明字符串正常工作,不强制封闭 allow-list;
  • 新配置gpt-5.6-sol会保留model_context_window = 250000/model_auto_compact_token_limit = 200000的种子建议;
  • 模型解析优先级(见 src/config/models.ts 的getMainDefaultModel/getSparkDefaultModel/getTeamChildModel):
    • 主模型:OMX_DEFAULT_FRONTIER_MODEL>config.toml model>gpt-5.6-sol
    • spark 模型:OMX_DEFAULT_SPARK_MODEL>OMX_SPARK_MODEL>.omx-config.json models.team_low_complexity(及别名键)>gpt-5.6-luna
    • 团队子模型:OMX_TEAM_CHILD_MODEL>.omx-config.json env配置 >gpt-5.6-terra

5. 迁移附带的行为修正

  • Autopilot 将规范的gpt-5.6-terra/gpt-5.6-luna分类为廉价车道,主模型为 Terra 时重型规划路由给专职 planner;
  • setup 对gpt-5.3-codexgpt-5.5根模型提供 prompt 门控升级到gpt-5.6-sol,拒绝或非交互运行则保留原模型;
  • Doctor 准确报告 Spark 模型来源,包括.omx-config.json models.team_low_complexity
  • 团队委派子模型回退改为经getTeamChildModel()解析(尊重OMX_TEAM_CHILD_MODEL),不再依赖硬编码缝常量。

九、配套新能力:omx capabilities lock/check

#3087 为本版本带来omx capabilitiesCLI(实现见 src/cli/capabilities.ts),命令行为:

omx capabilities lock [--lockfile <path>] [--json] omx capabilities check [--lockfile <path>] [--observations <path>] [--require-observations] [--strict-external-schemas] [--json]
  • lock:构建并写出能力锁文件,默认路径为工作目录下的omx-capabilities.lock.json(常量见 src/capabilities/lockfile.ts),并输出configured_tools/skills/agents/fixtures四个表面的摘要 digest,以及外部 MCP server 缺 schema 快照的告警;
  • check:对照锁文件做发布前预检(preflight),可要求必须携带观测数据(--require-observations)或对外部 schema 严格化(--strict-external-schemas),失败时以非零退出码结束。

仓库根目录的 omx-capabilities.lock.json 就是该命令产物的实例,npm test中的verify:capabilities-lock也用它做生成物一致性校验。

十、如何把这份就绪评估当作「可复用的发布清单」

对于想在自己的 fork 或 CI 流水线中复用 0.20.0 发布流程的读者,核心清单如下:

  1. 冻结范围:确认上一 tag 是候选 ref 的祖先,用git loggh pr list建立 commit + PR 双份清单;
  2. 跑全部门禁npm run build、版本同步检查、插件镜像--checknpm testcargo test,以及新增的omx capabilities lock/check
  3. 环境性失败要复现基线:在改动前的提交上复现,证明与本次变更无关,并在就绪文档中记录;
  4. 记录 CI 证据链:dev/main 双分支、发布 commit、tag 触发工作流的 run ID 逐一对应,失败也要记录修复路径;
  5. 发布证明双通道:GitHub release 非 draft 且带 native assets 与 manifest,npm view oh-my-codex version返回发布版本且gitHead与发布 commit 一致;
  6. 修正留痕:若发布后才发现 collateral 低估范围,按协议在dev修正、走 CI 提升、gh release edit更新正文,并把修正记录进就绪文档。

这套证据驱动的发布方法,正是 RELEASE_PROTOCOL.md 想要固化的工程纪律:把「我觉得可以发布」变成「证据表明可以发布」,并让任何后来者都能沿文档、源码与测试路径复核每一次结论。

【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 5:20:33

Ruffle Flash 模拟器:从0到1完整上手,10分钟让SWF重获新生

Ruffle Flash 模拟器&#xff1a;从0到1完整上手&#xff0c;10分钟让SWF重获新生 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle Ruffle 是一个用 Rust 编写的开源 Adobe Flash Player 模…

作者头像 李华
网站建设 2026/9/10 5:17:13

Firefox自动化僵死诊断与瑞数反爬七层穿透实战

1. CamoFox Browser&#xff1a;一个被误读的命名陷阱与真实技术图谱“CamoFox Browser”——这个词组最近在开发者社区、爬虫论坛和自动化测试群组里频繁闪现&#xff0c;但它既不是Mozilla官方发布的火狐变体&#xff0c;也不是某个知名开源组织维护的浏览器项目。我第一次在…

作者头像 李华
网站建设 2026/9/10 5:17:06

MCU语音唤醒实战:ML-KWS-for-MCU源码架构与TFLM移植全解析

最近在评估边缘端语音唤醒方案时&#xff0c;我把 ARM 官方开源的 ML-KWS-for-MCU 整个仓库拉下来&#xff0c;做了一次完整的源码静态评测和工程架构拆解。这个项目在 TinyML 圈子里名气不小&#xff0c;不光是 ARM 官方的关键词唤醒参考实现&#xff0c;更是 TensorFlow Lite…

作者头像 李华
网站建设 2026/9/10 5:16:41

EMD-PCA-LSTM组合模型:光伏功率预测的Matlab实现与调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华