fix(ci): restore full public smoke contracts - #4860
huangruiteng merged 2 commits into
Conversation
Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
|
Exact-head CI triage for |
huangruiteng
left a comment
There was a problem hiding this comment.
评审 exact head:62fcebc85fe8d338690700c9dd5511e828cd96ed
动机
PR 的方向是合理的:把已发布的 Todo priority、configuration catalog、Goal vision 文案同步到 durable public smokes;避免 full-public 在本机恰好装有 Codex 时隐式发起真实 Agent 调用;并把已存在的 external-evidence 命令补进 canonical help/manpage。同时补记经 tag、release 与 stable 一致性验证的 v1.1.0 release timeline。
但 PR 的核心交付声明是“恢复完整 full-public 合同,521/521 通过”。我在 exact head 上执行 PR 正文中的完整命令,结果是 521 executed、519 passed、2 failed、0 timeout、0 tracked-side-effect failure。因此这个目标当前只能判为 not_yet_proven,不能用定向 smoke 或较窄的 premerge canary 替代。
改动思路
改动总体复用了正确 owner:
- Todo priority、configuration catalog 与 vision threshold 仍由生产/shared contract 决定,smoke 只更新当前期望;
- native MCP smoke 采用仓库已有的
--real-codex-cli显式 opt-in 模式;默认在 binary lookup、临时 runtime 和 Agent 调用之前返回结构化 skip; loopx/help_surface.py仍是帮助面的唯一来源,man/loopx.1由它生成,而不是另建一套命令清单;external-evidence的运行时语义没有改变,只补 discoverability。
我分别验证了 default-off、显式缺失 binary 与真实 opt-in 三条路径。默认路径返回 ok/skipped/reason 且无 live side effect;缺失 binary 在显式 opt-in 时明确失败;真实 Codex/MCP 路径成功返回 validated_progress 和 native tool proof。
具体改动
关键代码讲解
examples/codex-cli-native-mcp-materialization-smoke.py::main:新增--real-codex-cli,未设置时在shutil.which和临时资源创建前退出;设置时继续执行原有 read-only synthetic MCP proof。loopx/help_surface.py::COMMAND_GROUPS:在 maintainer commands 中加入既有loopx external-evidence;checked-in manpage 同步生成结果。examples/control_plane/todo-projection-shared-helper-smoke.py:embeddedP0prose 现在与 shared prefix/typed priority owner 对齐为(50, index),避免 substring priority 复活。examples/project/configure-goal-smoke.py与goal-vision-replan-contract-smoke.py:分别同步已发布的coordination_runtime_shadowcatalog 项,以及“当前 Agent lane 拥有 15 个 open advancement Todos”的精确触发语义。docs/product/release-readiness.md:v1.1.0 时间、commit、tag/release 和stable已独立核对一致。
对主干的风险
[P1] exact head 没有满足它声明恢复的 full-public 套件
触发方式是 PR 正文中的完整命令:
uv run --no-project --python 3.11 --with 'jsonschema>=4.23,<5' python examples/run-smokes.py --suite full-public --timeout-seconds 360 --jobs 4 --json
实际结果为 519/521;失败项是:
examples/issue-fix-validated-memory-writeback-smoke.pyexamples/loopx-turn-managed-executor-binding-smoke.py
两项都能在当前 main 原样复现,所以我没有把它们误归因成这 36 行 diff 引入的回归;但是 baseline attribution 只解释来源,不能把必需本地失败改写成通过。尤其这个 PR 的标题、正文与 acceptance 本身就是恢复完整 public suite,当前 exact head 仍红时不能批准。
最小修复:rebase/集成这两个 retained public contract 的实际修复(或等价修复),在最终不变 head 上重新跑完整 521 项为零失败/超时/side effect,并更新 PR 的 validation receipt。不要删检查、缩小 suite 或把 baseline failure 标成成功。
语义与 CI 对齐
变更本身与当前 typed/prefix Todo semantics、configuration catalog、vision contract、显式 live-test 约定和 canonical help owner 对齐;问题不是语义方向,而是完整 CI outcome 尚未闭合。当前 branch 也落后于 main,最终证据必须绑定 rebase 后的新 exact head。
其他验证结果:变更涉及的定向 smokes、help/manpage、Ruff、diff hygiene、真实 Codex native-MCP proof,以及 risk-based premerge 19/19 均通过;当前-main merge-tree无冲突。它们证明 diff 的局部质量,但不能覆盖上述完整套件 blocker。
我的整体评价
实现边界很克制,default-off 隔离、authority 命名、domain-neutral wording 和 generated help ownership 都处理正确;没有发现需要重写设计的代码 blocker。唯一但必须解决的阻塞是交付结论与 exact-head 证据不一致:一个“restore full public smoke contracts”的 PR 不能以 519/521 完成。
结论:REQUEST_CHANGES。修复/集成剩余两个 public smoke、rebase,并在新 head 提供完整绿色回执后可复审;合并权限保持不变。
English verdict: REQUEST_CHANGES - head 62fcebc has sound targeted changes and passes live Codex proof plus 19/19 premerge canaries, but its required full-public run is 519/521; integrate the two retained contract fixes, rebase, and rerun all 521 checks green.
Summary
external-evidencein generated CLI helpVerification
uv run --no-project --python 3.11 --with 'jsonschema>=4.23,<5' python examples/run-smokes.py --suite full-public --timeout-seconds 360 --jobs 4 --json(521/521 passed; 0 failures, timeouts, or tracked side effects)python scripts/run_premerge_checks.py(19/19 passed)