Repository navigation
test: restore policy reads in wait and monitor closeout journeys - #8058
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
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.
定时 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,其在提交期间继续前进;上述结果对应验证基点和准确提交,更新后目标分支的集成尚未资格。