Skip to content

test: restore policy reads in wait and monitor closeout journeys - #8058

Merged
huangruiteng merged 1 commit into
mainfrom
codex/wait-monitor-policy-readers-20261104
Nov 4, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/wait-monitor-policy-readers-20261104

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

定时 Vision 等待与不可用 Monitor 结算测试把渐进式 quota should-run 导航响应当成内联决策,导致在触达语义断言前出现 KeyError。这两个模块现在复用既有 read_cli_policy_payload,读取经过摘要校验的当前 capture,同时保留失败命令和内联响应的原始结果。

改动仅涉及三个测试 CLI 读取位置。原有断言继续验证 File/SQLite 等待与结算、旧 Markdown authority 拒绝、真实用户门禁、worker 显式停止、原 Turn 身份、幂等重放、迟到观测拒绝,以及等待或不可用观测时零扣费。

验证(本分支验证基点 85d88e4394,提交 87bd6f3232):两个完整模块在基点为 29 failed / 8 passed,修改后为 37 passed。Ruff、公开边界扫描、双语 RFC 和 diff 检查通过。恢复了测试触达原有语义断言的能力;这不是执行效率或整体 Goal 验收结论。

必检仍有阻塞:声明的 17-source mypy 在 task_orchestration_admission.py:110 失败;完整邻接 first-read/read-reference 检查为 75 passed / 4 failed;premerge 的 5 项直接检查和 3 项 catalog smoke 通过,quota-plan-smoke.py 在节流 CLI 导航读取时出现 KeyError: quota;全仓 pytest 与完整 CI 尚未资格。CQR 按严格失败保存,这些限制保持阻塞,不作基线豁免。

PR 目标为 main,其在提交期间继续前进;上述结果对应验证基点和准确提交,更新后目标分支的集成尚未资格。

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

维护等待与 Monitor(持续观察任务)结算测试的贡献者,需要测试真正触达原有状态、身份和零扣费断言。此前测试把 quota should-run 的渐进式导航响应当内联业务决策,读取 decision、should_run 等字段时就抛 KeyError,后面的语义没有得到验证。

这次在原有三个测试 CLI 读取位置复用既有 read_cli_policy_payload,按当前 recovery 的摘要核验完整 capture,再执行原断言。独立同基线验证从29 failed / 8 passed恢复为37 passed,改善的是已有验收的可执行性。范围仅限两个测试模块的读取适配;没有产品行为、额度、断言、执行权限或模型保留声明的变更,也不宣称整体 Goal、长期效率或 installed App 已验收。

改动思路

不改动会持续失去有用的回归保护;复制一个导航 reader 或直接把预期值改成新输出都会制造第二份合同。这里选择同目录其他真实 CLI 测试已使用的共同 oracle,是可复用且更小的维护边界:成功 full/delta读取的是当前完整 recovery,失败命令、内联/off输出仍原样返回。

我核对了 helper的实际实现及9项现存独立契约用例:显式/引用 recovery、full/delta、误导的旧 baseline和 delta路径、失败命令保留、摘要损坏及物理 symlink拒绝,均通过。不是靠 fixture直接伪造本应验证的状态,也没有新增一组复制当前输出的断言。此改动不改变任何真实模型输入/采用逻辑;测试读取 capture 不等于模型已读或保留。

具体改动

首次评审完整PR:不可变基点 85d88e4394ee44dee9122c09dd883a35857deb2f → 精确head 87bd6f3232d436ae23913762c1b24a6b27189003,目标 main。完整diff仅两个原有测试文件,+5/-3:添加两处既有helper import,把三个 json.loads 返回替换为带原始 returncode 的helper调用;所有原断言保持不变。唯一commit有 DCO sign-off。main在作者工作期间前进并不改变此处明确的比较边界,未替作者资格未知集成状态。

  • tests/control_plane/test_dated_vision_wait_cli.py 的 cli wrapper:继续真实 subprocess、原参数、cwd、timeout及 return code;只恢复成功导航后的业务payload。
  • tests/control_plane/test_monitor_unavailable_closeout_cli.py 的两个 in-process CLI wrapper:仍保留实际执行状态、错误响应、原始Turn身份及持久读回。

依据是变更前 docs/reference/protocols/quota-blocked-causal-closeout-v0.md,spec_revision 85d88e4394ee44dee9122c09dd883a35857deb2f:Unavailable Monitor observation 要求冻结原绑定/观察字段且零扣费,完整模块通过;Admitted autonomous-replan closeout 要求原obligation/Turn、语义检查点与 durable writeback一致,blocked结算不造新Todo/时钟或扣费,同模块原断言已触达并通过。修复测试导航适配,不改写这些产品要求来匹配实现。

对主干的风险

未发现本PR引入的阻塞问题。最强反例是helper吞掉一个失败命令、跟随旧capture或忽略摘要/链接替换,让真正的失败看似通过;现存9项真实capture用例通过,三个caller均传原returncode。37项完整模块仍检查File/SQLite、旧Markdown authority拒绝、真实用户门禁、worker停止、原Turn/Agent fences、replay、迟到poll拒绝、capability恢复和独立后续工作,未删断言来获取绿灯。

保留必要检查的红灯并做相同命令的base/head归因:mypy17sources在task_orchestration_admission.py:110同样报 no-any-return;quota-plan-smoke在未改的quota_plan_fixtures.py:700读取节流导航的 quota时同样KeyError。两项base/head完整stdout+stderr分别逐字节一致,无需归一化。该PR只改测试decoder,不触碰这两个失败的因果路径,且变更不变量已有37+9独立通过,故它们不推翻本PR代码批准。

standard premerge在head是5项直接检查和3项catalog通过、quota-plan一项失败;不能写成整体通过。作者报告的邻接75passed/4failed、未完成的全仓/远端CI保留为诊断,未自行补造归因,未查询或等待CI。一次reviewer独立扫描因隐式runtime路由歧义先被拒绝;随后扫描私有保存位置被正确判定为local_private_state、实际扫描0文件,不是PR源文件泄露,也未当成通过。随后在精确head的两个原公开路径、显式registry/runtime下完成扫描:2文件、0错误、0警告。合并仍须维护者独立处理当前readiness和必要验证,未抹除作者严格CQR失败。

我的整体评价

APPROVE,限定于这次现存测试维护。两个完整模块在base为29failed/8passed、head37passed;既有reader oracle9passed、Ruff通过;前述必要红灯维持原始失败记录和独立归因。恢复语义验收有具体仓库价值,不能据此推断模型采用、性能收益或整个Goal完成。

现有覆盖搜索核对了共享helper、其9项契约断言、这两个模块的原始语义与当前同GitHub author队列中的8045/8039等测试适配。它们覆盖不同等待/因果结算/Monitor与JEV入口,本PR没有新增脚本、wrapper套娃或一次性fixture;同一GitHub登录不代表同一个实际Agent。无需为了减少行数合并不同的状态oracle,也没有证据支持贡献限制。复用共同reader已是本边界适当的维护改进。

视觉检查不适用:完整diff只有两个Python测试decoder,已检查产品CLI/前端/Lark消费者均未改;没有渲染展示变更。未验证范围:全仓完整pytest、作者报告的邻接4项失败原因、最新main集成和真实host/模型采用;这些没有被写成通过。额外机制或新后续任务对本次完成的测试维护没有必要。

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.
English verdict: APPROVE — restores existing semantic acceptance coverage; identical pre-existing mypy and quota-plan failures remain separate validation and merge holds.

@huangruiteng
huangruiteng merged commit f2412ff into main Nov 4, 2026
18 of 23 checks passed
@huangruiteng
huangruiteng deleted the codex/wait-monitor-policy-readers-20261104 branch November 4, 2026 18:50
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