拓冰建站拓冰建站
首页 / 资讯中心 / 正文

oh-my-codex 0.18.12 发布解析:发布工作流、自动化门禁与 Windows 钩子加固

oh-my-codex 0.18.12 发布解析发布工作流、自动化门禁与 Windows 钩子加固【免费下载链接】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-codexoh-my-codex 0.18.12 是紧随 0.18.11 之后的补丁版本patch release核心目标是对发布工作流进行对账reconciliation、收紧运行时自动化门禁、保留插件引导plugin guidance、加固 Windows 下的钩子与状态处理并提升 HUD/会话的清理可靠性。本篇文章基于 docs/release-notes-0.18.12.md 与对应的 docs/qa/release-readiness-0.18.12.md 发布就绪记录结合仓库源码逐项拆解这 17 个合并 PR 与一批直提 commit 背后的实现细节帮助读者理解每个修复为什么存在、改了什么、影响谁。版本定位与兼容性承诺0.18.12 保持既有 CLI/包契约不变是对 0.18.11 之后发现的一系列发布与运维边界问题的收口。按照发布说明与就绪记录docs/qa/release-readiness-0.18.12.md本版本对既有契约的兼容性承诺包括现有 CLI、插件plugin、原生 Agentnative-agent、HUD、state、hook 与包布局契约均与 0.18.11 保持兼容保持 npm/包布局兼容并同步更新根目录、插件与 Cargo 元数据至0.18.12版本与锁文件审计中根目录package.json/package-lock.json、根目录Cargo.toml工作区与Cargo.lock中的omx-api、omx-explore-harness、omx-mux、omx-runtime、omx-runtime-core、omx-sparkshell六个包以及plugins/oh-my-codex/.codex-plugin/plugin.json全部同步到0.18.12通过node dist/scripts/check-version-sync.js --tag v0.18.12校验package0.18.12 workspace0.18.12 tagv0.18.12。发布工作流对账本地 prep 与线上发布边界0.18.12 首先解决的是发布工作流历史问题。发布准备分支release prep branch将主分支上的人工 npm 发布工作流manual npm publish workflow与 npm 认证配置历史一并前移同时保持本地 prep 边界不变不打 tag、不合并 main、不在本地执行 npm publish。对应合并的 CI 相关 PR#2765 — ci: add manual npm publish workflow新增人工 npm 发布工作流#2766 — ci: configure npm auth for manual publish为人工发布配置 npm 认证这一设计的意图很清晰本地准备阶段只负责产出可验证的发布产物与证据线上 CI、tag 触发的发布工作流、GitHub release 证明与 npm 发布证明均属于 PR 后/发布后门禁post-PR/post-tag gates在docs/qa/release-readiness-0.18.12.md中这些项均被明确标注为 pending体现了本地证据与发布证明分离的证据生命周期管理。自动化与规划门禁收紧执行路径更安全0.18.12 一个重要的功能方向是收紧 Autopilot 终态门禁、best-practice-research 只读边界、ralplan 共识守卫、deep-interview 产物写入以及 Windows 安全的omx state输入处理。Autopilot 终态门禁强制化#2773PR #2773fix: enforce autopilot final gates在 src/autopilot/completion-gate.ts 中实现了完整的状态机校验。核心入口是validateAutopilotCompletionTransition它被注释明确标记为carrier invariant 的 CHOKE POINT六轮 review 各自发现了不同的 writer 在门禁之前洗白了畸形handoff_artifactscarrier因为校验被分散在各个合并点。与其等待第七个 writer不如在此处断言所有状态迁移都必须经过此函数无论哪个 writer 产生损坏的 carrier 都会 fail-closed。该函数通过ALLOWED_ACTIVE_TRANSITIONS定义了各阶段允许的相邻迁移当前阶段允许迁移deep-interviewdeep-interview, ralplanralplanralplan, ultragoalultragoalultragoal, team, code-reviewreworkrework, team, code-reviewteamteam, ultragoal, rework, code-reviewralphralph, code-reviewcode-reviewcode-review, rework, ralplan, ultraqaultraqaultraqa, ralplan门禁同时校验deep-interview → ralplan 必须存在持久化的面试完成证据与 handoff 产物specs/、context/、interviews/前缀且为仓库内 canonical 路径ralplan → ultragoal 需要持久化规划产物plans/前缀、Architect 与 Critic 的顺序审批sequence_index分别为 1 和 2、同 session 绑定的 execution handoff以及 ISO-8601 的authorized_at时间戳实现阶段ultragoal/rework/team/ralph不能直接终态化必须先经过 code-reviewcode-review 不能直接终态化必须先经过 ultraqa且 ultraqa 终态必须携带干净的 code-review 与 ultraqa verdict 证据hasCleanAutopilotReviewAndQaEvidence。特别值得注意的是assertNoForgedRalplanHandoffEvidence它区分证据缺失走 advisory 路径与证据存在但结构伪造fail-closed 判定为损坏。例如要求sequence_index必须是整数、authorized_at必须是 ISO-8601 时间戳——若用字符串或自由文本时间戳顶替就会被判定为伪造证据而拒绝推进。best-practice-research 只读边界#2800PR #2800fix(best-practice-research): enforce terminal read-only boundary与 skills/best-practice-research/SKILL.md 的Terminal By Default条款直接对应。该技能默认是终态且只读的只收集证据、产出带引用的建议并交接然后停止——即使问题有明显的实现含义也不得写文件、改提交、跑变更性命令或修改仓库状态需要实现时应在 handoff 中指名$ralplan规划或$ultragoal/$team/executor执行并等待用户显式切换工作流。这从技能契约层面杜绝了研究型技能顺手实现的危险路径。ralplan 共识守卫#2806 与直提 commitPR #2806Fix ralplan consensus iterate guard与直提 commit36db1846Fix ralplan consensus boxed state root lookup共同修复了共识门禁在迭代iterate场景与 boxed state 根查找下的缺陷。结合上述completion-gate.ts中的共识数据结构ralplan_consensus_gate、ralplan_architect_review、ralplan_critic_review、ralplan_execution_handoff可以理解共识推进需要Architect/Critic 双审批通过、同 session、同 review_cycle且execution.authorized true。deep-interview 产物写入收口#2810 与直提 commitPR #2810fix(hooks): allow deep-interview apply_patch artifact writes from freeform patch text允许 deep-interview 从自由格式 patch 文本中通过apply_patch写入产物直提 commit15bbe8b2fix: block autopilot deep-interview implementation writes反过来禁止 Autopilot 在 deep-interview 阶段进行实现性写入直提 commitd74816a5fix: allow ralplan planning artifact writes允许 ralplan 阶段写入规划产物。三者在 src/autopilot/completion-gate.ts 中的 canonical artifact path 校验assertCanonicalArtifactPath形成了按阶段限制可写前缀的对称设计deep-interview 只允许specs/、context/、interviews/ralplan 只允许plans/越界路径直接抛错 Cannot use out-of-scope artifact path。Windows 安全的 omx state 输入#2812PR #2812fix(cli): Windows-safe omx state input surface修复了 Windows 下omx state命令的输入表面input surface问题确保状态输入解析在 Windows 路径/换行环境下不会出错。插件引导Plugin Guidance保留加固0.18.12 对插件侧的一组修复集中在引导信息不能丢、不能错、不能被覆盖PR / commit内容要点#2798fix(plugin): require persistent AGENTS guidance要求插件必须携带持久化的 AGENTS 引导#2801Fix plugin AGENTS merge repair修复插件 AGENTS 合并损坏的修复逻辑#2802Fix plugin developer_instructions prompt policy修复developer_instructions提示词策略3e394380/76b01687infer plugin doctor mode from installed marketplace / fix doctor plugin mode inference插件 doctor 模式从已安装市场推断3ebf3c0afix plugin Stop hook JSON fallback修复 Stop 钩子的 JSON 回退e9c20905fix: preserve custom developer instructions on plugin cleanup插件清理时保留自定义 developer instructions这些修复与仓库内的插件镜像机制呼应npm run sync:plugin:check与npm run verify:plugin-bundle在发布门禁中均验证了 29 个 canonical skill 目录与插件元数据的一致性见docs/qa/release-readiness-0.18.12.md插件技能镜像位于 plugins/oh-my-codex/skills 下与根 skills 目录保持同步。另有直提 commit0d5d3a7cfix: resolve ambient OMX entry paths against startup cwd修复了环境变量形式的 OMX 入口路径应相对启动工作目录解析的问题。HUD / 会话可靠性修复HUD 与会话侧修复集中在可见性与陈旧状态清理#2768Fix dev version label and stale HUD cleanup修复开发版版本标签显示并清理陈旧 HUD#2771Fix terminal skill-active visibility修复终端中 skill 激活状态的可见性#2774Fix dev update baseline prompt loop修复开发版更新基线导致的提示循环#2776Fix HUD labels, owner matching, and consensus diagnostics修复 HUD 标签、owner 匹配与共识诊断输出#2805fix(cli): tolerate dead leader pane in detached history prune hook分离detached历史清理钩子中容忍已死亡的 leader pane48444187fix: cancel hook-visible run-dir state修复 cancel 时钩子可见 run-dir 状态的清理。其中 owner 匹配与陈旧锁清理可以在 src/hud/tests/authority.test.ts 的测试中找到印证HUD 会在 tick 前写入notify-fallback-authority-owner.json租约owner 为hud测试覆盖了不释放已被更新 owner 替换的锁stale releaser must not remove a newer lock owner与获取新锁前收割陈旧 authority 锁reaps a stale authority lock before acquiring a fresh lock两条不变量——这正是owner 匹配 陈旧状态清理的底层语义。Windows 钩子路径安全0.18.12 对 Windows 钩子做了系统性的路径安全加固由一组无独立 PR 的直提 commit 承载dce351fcfix(windows): preserve Path env, emit omx.cmd shim, absolute PowerShell hook (#2780)钩子 shim 保留Path环境变量、生成omx.cmd入口、使用绝对路径调用 PowerShell 钩子da00f144fix(windows): emit UTF-8 BOM in native-hook shim for non-ASCII install paths当安装路径含非 ASCII 字符时在 native-hook shim 中写入 UTF-8 BOM避免 Windows 下脚本编码被误判。这两项修复直接回应了 Windows 环境的两大痛点安装路径含中文等非 ASCII 字符时 cmd/PowerShell 的编码错乱以及 PATH 未保留导致omx.cmd在钩子进程内找不到可执行文件。在 src/scripts/codex-native-hook.ts 中可以看到 BOM/NBSP/Unicode 空白处理的既有传统——该文件多处如第 4869、6837、9624、10134、10503 行都在对命令字符串做 BOM/NBSP/CR 剥离与安全校验da00f144是在 shim 生成侧补齐了 BOM 写出逻辑。合并 PR 与直提 commit 完整清单合并 PR17 个PR内容#2760fix(mcp): cap post-traffic same-parent first-party MCP siblings#2762Bump types/node from 25.9.0 to 25.9.2#2765ci: add manual npm publish workflow#2766ci: configure npm auth for manual publish#2768Fix dev version label and stale HUD cleanup#2771Fix terminal skill-active visibility#2773fix: enforce autopilot final gates#2774Fix dev update baseline prompt loop#2776Fix HUD labels, owner matching, and consensus diagnostics#2798fix(plugin): require persistent AGENTS guidance#2800fix(best-practice-research): enforce terminal read-only boundary#2801Fix plugin AGENTS merge repair#2802Fix plugin developer_instructions prompt policy#2805fix(cli): tolerate dead leader pane in detached history prune hook#2806Fix ralplan consensus iterate guard#2810fix(hooks): allow deep-interview apply_patch artifact writes from freeform patch text#2812fix(cli): Windows-safe omx state input surface其中 #2760 与 #2762 分别是第一方 MCP 兄弟进程数量封顶的修复和依赖升级types/node25.9.0 → 25.9.2两者均无行为破坏。直提 commit无对应可解析合并 PRdce351fc— Windows: 保留Path、生成omx.cmdshim、绝对路径 PowerShell 钩子76b01687— 修复 doctor 插件模式推断da00f144— Windows: 非 ASCII 安装路径下 native-hook shim 输出 UTF-8 BOM3ebf3c0a— 修复插件 Stop 钩子 JSON 回退0d5d3a7c— 环境变量形式的 OMX 入口路径相对启动 cwd 解析15bbe8b2— 阻止 autopilot deep-interview 实现性写入d74816a5— 允许 ralplan 规划产物写入3e394380— 从已安装市场推断插件 doctor 模式48444187— 修复 cancel 时钩子可见 run-dir 状态e9c20905— 插件清理时保留自定义 developer instructions36db1846— 修复 ralplan 共识 boxed state 根查找8e81713f— 为 0.18.12 prep 对账主发布工作流历史发布验证门禁0.18.12 的本地发布就绪验证见docs/qa/release-readiness-0.18.12.md覆盖了完整的门禁链门禁结果关键输出npm ciPASSnpm audit 报告 3 个 moderate 漏洞prep 期间未改依赖npm run buildPASS—check-version-sync.js --tag v0.18.12PASSpackage0.18.12 workspace0.18.12 tagv0.18.12npm run lintPASSChecked 702 files未应用修复npm run check:no-unusedPASS—npm run verify:native-agentsPASS22 个可安装 native agent 37 个 setup prompt 资产npm run sync:plugin:checkPASS29 个 canonical skill 目录与插件元数据npm run verify:plugin-bundlePASS同上generate-catalog-docs.js --checkPASScatalog check okfocused hook/state testsPASS串行重跑通过首次并行尝试与npm pack --dry-run重建 dist 冲突npm pack --dry-runPASSoh-my-codex-0.18.12.tgz包大小 4.0 MB解包 24.6 MB3061 个文件git diff --checkPASS—值得注意的工程细节focused hook/state 测试首轮并行执行时与npm pack --dry-run重建dist发生文件竞争导致报告缺失编译后测试文件在 pack 完成后串行重跑退出码为 0。这从侧面印证了该仓库 CI 门禁对构建时序敏感性的处理方式。遗留门禁与发布状态按就绪记录发布准备分支release/0.18.12-prep的冻结候选为8e81713f对账主发布工作流历史并叠加未提交的版本元数据 bump。发布前的 open PR 与 open issue 清单均为空。以下发布后门禁在记录时仍为 pending属于 PR 合入后的线上证据发布准备 PR 的 CI 通过push/open PR 后dev/main 提升后的 CI 通过tag 触发发布工作流v0.18.12tag push 后GitHub release 证明npm 发布证明小结0.18.12 是一个典型的发布工作流 运维边界补丁版本它不引入破坏性变更而是把 0.18.11 之后暴露的自动化门禁缺口、插件引导保留问题、Windows 钩子路径隐患与 HUD 陈旧状态系统性收口。其中最具参考价值的是 src/autopilot/completion-gate.ts 中单一 choke point 强制 carrier 不变量的设计思路——把分散在各 writer 的校验收敛到一个所有迁移必经的入口从架构上杜绝了绕过校验的可能性。对于使用 oh-my-codex 的开发者理解这批修复有助于更准确地判断 Autopilot 阶段推进失败、Windows 钩子异常或插件引导丢失时的根因所在。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门