ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

oh-my-codex 0.20.2 补丁发布深度解析:认证 Ralplan 引导、Native 子代理契约与状态安全加固

oh-my-codex 0.20.2 补丁发布深度解析:认证 Ralplan 引导、Native 子代理契约与状态安全加固 oh-my-codex 0.20.2 补丁发布深度解析认证 Ralplan 引导、Native 子代理契约与状态安全加固【免费下载链接】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-codex0.20.2 是 oh-my-codexOmX在 2026-07-16 发布的一个补丁版本聚焦于「让 Codex 不再孤军奋战」这一核心叙事中的两条主线认证后的 App Leader 首次回合即可写入 Ralplan 角色意图#3184以及App 原生子代理native subagents与 hooks 的 surface-aware 角色契约#3152、#3166。同时该版本还覆盖了提示词会话来源隔离、跨进程通知去重、Team worker 策略校验、AGENTS.md合并策略持久化等十余项正确性与状态安全修复。读完本文你将掌握 0.20.2 全部 20 个合并 PR 的内容与提交级证据理解认证 Ralplan 引导为何「fail closed」如unsupported_documented_leader_proof、原生子代理证据如何在事务中绑定并崩溃恢复以及如何通过官方 QA 记录与源码定位这些行为的实现细节。发布概览与版本范围0.20.2 是一个 patch 发布覆盖精确冻结的提交范围v0.20.1..f5e4753135ebc86342e7353300ac3ec5d9ae3d8d。该范围内共包含22 个提交、20 个合并 PR、1 个发布开发准备提交以及 #3129 发布附带物release collateral的 branch-plus-merge 提交。完整验证证据记录在 docs/qa/release-readiness-0.20.2.md。与相邻版本一致本次发布的变更同时触及 TypeScript 主仓src/与 Rust 工作区Cargo.toml但无任何有意的 CLI 或包布局破坏性变更。Highlights 一认证 Ralplan 引导#3184能力首回合写入角色意图此前一个刚通过认证authenticated的 App Leader 无法在首个回合first turn内声明自己的 Ralplan 角色。0.20.2 通过 PR #3184issue #3181改变了这一点fresh authenticated App leader 可以在第一回合就写入 Ralplan role intent。该能力由一组保障性设计支撑持久化 Leader 认证durable leader attestation角色意图不是一次性的进程内状态而是以可恢复的方式落盘重启后依然有效。原子化 tracker 锁定意图发布atomic tracker-locked intent publication角色意图的发布与 tracker 的锁绑定要么全部成功要么全部回滚避免出现意图已写入但 tracker 状态不匹配的半完成态。单飞行为single-flight behavior同一时刻只允许一个引导流程执行防止并发引导互相覆盖。重启恢复restart recovery引导中途崩溃后重启可基于已落盘的证据续跑。子代理/来源排除subagent/provenance exclusion在存在歧义时 fail closed——无法确证身份的写入一律拒绝绝不猜测。源码级实现文档化 Leader 证明的 preflight 拒绝上述fail closed语义在 src/ralplan/documented-leader-preflight.ts 中有直接实现。该文件定义了两个关键常量第 11-13 行UNSUPPORTED_DOCUMENTED_LEADER_PROOF unsupported_documented_leader_proofUNKNOWN_RALPLAN_ROLE_PRE_TOOL_USE当 Ralplan role-intent 指向未知角色时返回deny理由是Ralplan role-intent denied: unknown_role.其核心判定函数evaluateCodex01445PreToolUse第 19 行会解析形如omx ralplan role-intent write --role role --parent-thread $CODEX_THREAD_ID --json的 Bash 命令parseCodex01445AdaptedRoleIntentCommand第 18 行然后通过resolveInstalledRoleName判断角色是否已安装若已安装返回unsupported_documented_leader_proof并 deny若未安装则返回unknown_roledeny。也就是说在缺少可验证根身份的前提下Adapted Ralplan 权威性尝试一律在 PreToolUse 阶段被拦截。这一设计与仓库中的两份 ADR 一脉相承docs/adr/3194-codex-01445-documented-leader-proof.md 定义了 Codex hooks 不暴露文档化、非用户可伪造的根身份这一约束docs/adr/3212-same-user-native-child-auth-boundary.md 则确立了同用户原生子代理的认证边界见下文超驰说明。重要超驰ADR 3212 对权威性声明的限制发布说明明确给出了当前状态/被替代supersession声明适用于上述所有权威性主张authority claims必须在理解 0.20.2 时一并阅读ADR 3212适用于上述权威性声明本地 Leader 认证与 adapted 角色意图不再授权任何操作。类型化路由/tracker 证据仅作生命周期与诊断用途。在role_routing_unavailable条件下尝试 adapted Ralplan 权威时已安装的角色意图/preflight 以unsupported_documented_leader_proof失败关闭在缺少官方 host 回执receipt时共识不可用对应错误为documented_host_consensus_receipt_unavailable。换句话说#3184 提供的是在认证 Surface 上引导角色意图的机制而本地/adapted 身份本身并不能跨过权威性门槛需要官方 host 回执才能达成完整共识。这与 src/config/generator.ts 中生成的 AGENTS.md 引导文本一致当 surface 报告role_routing_unavailable且请求 adapted Ralplan 权威时指令要求不要伪造agent_type运行omx ralplan preflight --json并在unsupported_documented_leader_proof处停止第 95-97 行。与共识运行时的衔接在运行时侧src/ralplan/runtime.ts 的runRalplanConsensus第 284 行实现了 architect→critic 的串行评审共识门buildRalplanConsensusGate第 155 行会为 architect/critic 评审盖权威的review_cycle与sequence_index戳并通过reviewBlocker判定architect_review_missing_or_not_approved、critic_review_missing_or_not_approved或native_subagent_consensus_evidence_missing。共识完成后才授权执行交接ralplan_execution_handoff否则在达到maxIterations默认 5后以ralplan_consensus_not_reached_after_${maxIterations}_iterations失败。可见引导bootstrap只是第一步后续每一步评审都仍受共识门约束。Highlights 二Native 子代理与 hooks#3152、#3166、#3180surface-aware 角色契约与事务绑定0.20.2 让 App 的spawn_agent路由遵循surface-aware 角色契约PR #3152issue #3118adapted-role tracker 证据与路由标记routing markers事务性绑定PR #3166子代理的证据与路由标记要么一起提交、要么一起回滚崩溃后恢复绑定过程若因进程崩溃中断可基于已落盘证据恢复清理被遗弃的跨进程锁工件lock artifacts此前崩溃可能遗留孤儿锁文件本次一并清理。配套修复 PR #3180 允许已识别的recognizednative 子代在**无自动 nudgeauto-nudge**的情况下正常停止避免对已确认身份的合法子代做多余干预。源码证据leaf guard 与 TOML 生成Native 子代理的指令合成逻辑在 src/agents/native-config.tsNATIVE_SUBAGENT_LEAF_GUARD第 110-117 行为叶子原生子代理注入硬约束不得调用 Task、spawn_agent或再派生 native 子代理只能使用本地工具并把缺失的专业覆盖上报给 LeadercomposeRoleInstructions第 215 行在options.nativeAgent true且该角色的nativeSubagentDelegation ! allowed时追加该 guard同时写入## OMX Agent Metadatarole / posture / model_class / routing_role / native_subagent_delegation / resolved_model作为可追踪的路由标记generateStandaloneAgentToml第 316 行生成 Codex CLI 可识别的独立 TOML写入~/.codex/agents/或./.codex/agents/包含model、model_provider、model_reasoning_effort与developer_instructions等字段。测试侧src/team/tests/tmux-session.test.ts 对internal_mixed_codex_worker_policy_argv等混合策略错误做了回归断言src/team/tests/repo-aware-decomposition.test.ts 则覆盖了worker_policy的plan-suggested计数来源路径。Highlights 三来源与通知正确性#3168、#3165、#3158并发会话间的提示词会话来源隔离#3168PR #3168 确保prompt session provenance 在并发聊天concurrent chats之间相互隔离。其实现核心在 src/hooks/prompt-session-provenance.ts文件定义了完整的拒绝原因枚举第 4-12 行包括payload_session_invalid、owner_env_unbound、foreign_child、ambiguous_child等以及线程分类模型第 19-24 行root-or-drifttarget-child带proof: spawn | transcript | trackerforeign-childambiguous-child存在多个候选根会话时unknownEvaluateResolvedPromptTurnInput依据这些事实决定授权、抑制suppressed-target-child或拒绝rejected。测试见 src/hooks/tests/prompt-session-provenance.test.ts 与 src/hooks/tests/notify-hook-session-scope.test.ts。跨进程回退通知去重#3165PR #3165issue #3162修复了回退通知投递fallback notification delivery在多进程并发时的重复问题多个进程同时对同一事件做回退投递时现在会去重只投递一次。这属于src/notifications/见 notify-dispatcher 等脚本与 hooks 会话范围协作的一部分。规范 Ralplan 所有权与歧义别名拒绝#3158PR #3158 让Ralplan 终止状态terminal state保持在规范会话canonical session上并拒绝歧义会话别名ambiguous session aliases。当多个别名无法唯一指向规范会话时写入被拒绝而不是随意落盘避免状态被写入错误的会话目录。Highlights 四Setup、Team 与状态安全#3164、#3136、#3172AGENTS.md合并策略显式持久化#3164PR #3164issue #3163让 setup 在**根级root-localAGENTS.md合并策略merge policy**上显式持久化用户明确选择的合并策略会跨 setup 刷新保留不再因重新运行 setup 而被隐式重置或静默覆盖。相关回归覆盖见 src/cli/tests/setup-scope.test.ts含omx-setup-merge-policy场景与 src/cli/tests/setup-install-mode.test.ts。Team 启动前校验并遵循显式 worker 策略#3136PR #3136 让 Team 在tmux 启动之前就校验并遵循显式 worker 策略。其模式定义与解析位于 src/team/dag-schema.tsparseWorkerPolicy第 79 行解析worker_policy对象字段包括requested_count期望 worker 数正整数count_source取值cli-explicitCLI 显式指定、plan-suggested计划建议或default-derived默认派生非法值直接抛错max_count上限reserve_verification_lane是否预留验证 lane布尔strict_max_count是否严格限制最大值布尔。src/team/repo-aware-decomposition.ts第 178-242 行在分解 DAG 时消费该策略requested_count、reserve_verification_lane等。src/team/tmux-session.ts第 1797 行在检测到混合的 Codex worker 策略 argv时抛出internal_mixed_codex_worker_policy_argv即在启动前拒绝自相矛盾的配置。忽略外来过期转换镜像#3172PR #3172 让外来的过期工作流转换镜像foreign stale transition mirrors无法改写当前工作流状态如果某个镜像不属于当前会话/工作流且已过期状态写入被忽略防止陈旧镜像污染当前状态。其他修复工作流显式调用要求#3140issue #3133工作流激活现在要求显式的、位于提示词开头的调用prompt-leading invocation。被引号包裹quoted、否定negated、文档化提及documented、格式错误malformed、代码块内fenced或其他非调用文本non-invocation text均不会意外触发激活杜绝文本里提到$plan就误激活工作流的问题。认证 deep-interview 终止态写入被接受#3179issue #3177修复此前认证会话的 deep-interview 终止状态写入被拒绝的问题。保留外来 Codex hook 坐标#3151在 setup / refresh / doctor / uninstall 流程中外部foreignCodex hook 坐标保持不变不会被覆写。接受 BOM 前缀状态输入#3169带 UTF-8 BOM 前缀的状态输入文件可被正确解析。保留 tmux 所属分离窗格环境#3183issue #3175detached panes 保留 tmux 拥有的终端环境变量值如 tmux 注入的环境不再被外部默认值覆盖。依赖与发布附带物actions/setup-node6 → 7#3154TypeScript6.0.3 → 7.0.2#3155types/node26.1.0 → 26.1.1#3156biomejs/biome2.5.2 → 2.5.3#3157此外PR #3129 对 0.20.1 发布后的证据进行了对账post-publish evidence reconciliation其直接分支提交与合并提交都被纳入版本范围做完整记账但不是 0.20.2 的产品头条版本开发提交同样仅属发布准备。提交清单Range Inventory0.20.2 范围内全部 22 个提交如下提交分类摘要c628486896ffa8b9188335b91a76192571e32c9dPR #3129 直接分支提交发布附带物对账 0.20.1 证据。fce27bfd6c17c7665a6f1505b6b8384cc2c8edd5PR #3129 合并提交发布附带物提升 0.20.1 发布后证据对账。29bdeb5c5670c133d9f2feda7512ee01e80a63d5直接提交发布准备启动 0.20.2 开发并同步版本元数据。93eda27d9ec2a52ba0f563f75073c248357ad0c8PR #3136在 tmux 启动前校验并遵循显式 Team worker 策略。2a633a3939e63be2d356dd65016890bb7b0995eaPR #3158将 Ralplan 终止状态保留在规范会话并拒绝歧义别名。90601c96fca7a69bd65c25e0b66316e188672eb0PR #3155依赖升级 TypeScript 6.0.3 → 7.0.2。c5f03c3498186bee4d6a97099a43435889ede428PR #3154依赖升级actions/setup-node6 → 7。d6e0349f5aed7ce4702c6c1dbb22190f16862fdfPR #3157依赖升级biomejs/biome2.5.2 → 2.5.3。9f4f8f09bd2f098c4cbe56ae4798dfbfb7085666PR #3156依赖升级types/node26.1.0 → 26.1.1。24a991d6bbe3b7e02eac3fb947d8f585d19aeac8PR #3164issue #3163跨 setup 刷新持久化显式AGENTS.md合并策略。e87d05a8037c9a6fef32b2a1aee307d57383e75cPR #3165issue #3162跨进程去重回退通知投递。bb37005b4a0a4a12c8b6d48db6fc704debb9506fPR #3152issue #3118增加 surface-aware App 原生子代理角色契约。e6b0509533039e4467f53699b7ad4e74492e7f59PR #3168隔离并发聊天间的提示词会话来源。e8e9467804a73cba0c982b3ed99a0ce8b6843d2cPR #3169接受带 BOM 前缀的状态输入文件。4e57bf33bf97e0c03c6ecf57ba4b504b633df33dPR #3172忽略外来过期工作流转换镜像。91289b2eedb2d3eea77e23e0411137d4a7bb418fPR #3151保留外来 Codex hook 坐标。8a997dc0bcdb6820e24f967f33867887ede38322PR #3166issue #3118使 adapted tracker/标记绑定事务化并清理锁工件。3532caacbe3e24e2c529709b806b6d200766ac85PR #3179issue #3177允许认证 deep-interview 终止状态写入。1ee7fb6b022a049ec08eb40d31e792c125124768PR #3140issue #3133要求显式工作流调用。69707f9cd6791b19d955b96a5dd91a48557e83e9PR #3180让原生子代理无需自动 nudge 即可停止。ce358f99c0ec54b96dbf5adcededb11620e42b24PR #3183issue #3175保留 tmux 所属分离窗格环境。f5e4753135ebc86342e7353300ac3ec5d9ae3d8dPR #3184issue #3181冻结基线为 App Ralplan 角色意图增加认证的回合内 Leader 引导。范围内共22 个提交、恰好 20 个合并 PR#3129、#3136、#3140、#3151、#3152、#3154、#3155、#3156、#3157、#3158、#3164、#3165、#3166、#3168、#3169、#3172、#3179、#3180、#3183、#3184。关联 issue 为#3118、#3133、#3162、#3163、#3175、#3177、#3181——它们是关联问题不额外计为 PR。兼容性本补丁发布无有意的 CLI 或包布局破坏性变更。升级时可沿用既有安装/更新路径如omx update见 src/cli/update.ts无需迁移配置或命令。验证状态发布说明列出的验证矩阵覆盖本地构建、lint、类型检查、完整 Node/Rust 测试、packed-install 冒烟、独立评审、dev与main候选 CI、全部七种原生构建native builds、原生资源验证、GitHub 发布发布、npm 来源发布provenance publication以及隔离的公网 registry 安装 CLI 启动。packed 冒烟测试使用精确的 Codex CLI 0.142.5 边界。完整证据见 docs/qa/release-readiness-0.20.2.md。若需按版本追踪历史验证模式可参考 docs/qa/release-readiness-0.20.1.md 等相邻版本记录。贡献者提交证据显示本版本贡献者包括 BellmanYeachan-Heo、cristph、terwox 与 dependabot[bot]。进一步阅读docs/adr/3194-codex-01445-documented-leader-proof.md文档化 Leader 证明约束的来龙去脉。docs/adr/3212-same-user-native-child-auth-boundary.md同用户原生子代理认证边界与权威性超驰。docs/contracts/ralplan-consensus-gate.mdarchitect→critic 共识门契约。docs/qa/release-readiness-0.20.2.md本版本的完整 QA 证据。src/ralplan/documented-leader-preflight.ts 与 src/ralplan/runtime.ts认证引导与共识运行时源码。src/agents/native-config.ts原生子代理 TOML 生成与 leaf guard。src/team/dag-schema.ts 与 src/team/tmux-session.tsTeam worker 策略解析与启动前校验。【免费下载链接】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),仅供参考
返回列表