Skip to content

fix(ci): restore full public smoke contracts - #4860

Merged
huangruiteng merged 2 commits into
loopx-project:mainfrom
Duang777:codex/repair-full-public-smoke-drift
Sep 22, 2026
Merged

huangruiteng merged 2 commits into
loopx-project:mainfrom
Duang777:codex/repair-full-public-smoke-drift

Conversation

@Duang777

Copy link
Copy Markdown
Contributor

Summary

  • align full-public smoke expectations with the shipped todo priority, project feature catalog, and Goal vision wording
  • make the live Codex MCP smoke explicitly opt in and expose external-evidence in generated CLI help
  • record the verified v1.1.0 release timeline

Verification

  • 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)
  • generated manpage check passed

Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
@Duang777

Copy link
Copy Markdown
Contributor Author

Exact-head CI triage for 62fcebc85fe8d338690700c9dd5511e828cd96ed: node-minimum-compatibility fails only the two SQLite rows in task_lease_inspection.test.ts on Node 22.18.0 / SQLite 3.50.2. This is inherited from current main and independently reproduces on #4859; #4857 contains the isolated provider-qualification fix and its Node minimum lane passes. The stage2c (mutants 0) lane passes here, and the local full-public sweep remains 521/521. No #4860 code change is indicated.

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

评审 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:embedded P0 prose 现在与 shared prefix/typed priority owner 对齐为 (50, index),避免 substring priority 复活。
  • examples/project/configure-goal-smoke.pygoal-vision-replan-contract-smoke.py:分别同步已发布的 coordination_runtime_shadow catalog 项,以及“当前 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;失败项是:

  1. examples/issue-fix-validated-memory-writeback-smoke.py
  2. examples/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.

@huangruiteng
huangruiteng merged commit e64fdbe into loopx-project:main Sep 22, 2026
23 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants