Repository navigation
test: restore Monitor and JEV lifecycle acceptance - #8039
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
未发现阻塞性问题。head 966fe6f764fafbfeda0b762ff3ff2f87bc7ef2cf,基线 53374543abfd7dcfe72d63bfdf2c60bb3ce17786。GitHub 登录账号与作者相同,因此用完整 COMMENTED review 承载结论;不把它称为平台 formal approval。
- 受影响调用者:维护 grouped Monitor 退役/重开与 JEV 身份、重复证据拒绝验收的贡献者和评审者。
- 前后场景:基线因 SQLite 有界投影不内联完成证据而误报两项失败,另六项在 Stride 缺决策门提前失败;head 读取 canonical Todo,并在先验证默认门后用隔离 Goal 的显式 off 抵达原身份拒绝路径。
- 可观察结果:恢复这两组真实验收:107项全过,错误 canonical bucket 证据仍被拒绝,默认 Stride 与原身份/重放拒绝分别验证且失败不改 history。
- 非目标:不改变生产默认、权限或全局配置,不豁免其他失败,不声称完整 CI、实际 Host/model 采用或长程效益已合格。
先按不可变基线 53374543abfd7dcfe72d63bfdf2c60bb3ce17786 读取并逐项对照:docs/product/core-control-plane/state-machine.md 的 7. Projection Sink Machine;loopx/capabilities/progress_review/README.md 的 Receipts / Discharge;以及 docs/reference/protocols/goal-vision-replan-contract-v0.md 的 Default review cadence 和显式 off 配置合同。目标是把原断言放回正确 authority/决策门后,不是让任何失败都变绿。
改动思路
复用 canonical Todo reader 与现有 configure_goal,在三个原测试内明确 authority 和夹具策略;生产 TS 决策 owner、默认策略及权限均不变。当前 PR 完成交付的是 Monitor/JEV 验收修复;真实 Host/model 采用、其他失败和完整 CI 仍由原边界验收。
Monitor 的显示文本可以省略完整证据,但 canonical Todo 不应丢失它;因此复用已有 _monitor_todos。JEV 的默认 Stride 门与重复证据/身份门是两个独立约束:先明确验证默认门仍拒绝并保持 history,再在临时 Goal 显式 off 后验证原身份门。删除断言、接受任意 ValueError 或改全局默认都更差。
具体改动
关键代码讲解
- Monitor 生命周期 case 保留投影有 done 的检查,改从现有 canonical reader 验证唯一 monitor 的 done、
no_followup is True和精确 bucket evidence;新观察进入后要求同一 Todo ID 重开、清除 no_followup。 sequence与 repeated-turn fixture 使用既有configure_goal,只为各自隔离 Goal 显式选 Stride off。observer transport/credential 都是注入夹具,没有模型调用。- 身份 case 对缺 Agent、Todo、ACK Agent 三种输入,先验证缺结构化决策的默认拒绝和 index bytes 不变;再 off 后验证原
already claimed拒绝和 index bytes 不变。 - 原 repeated-claim 测试 仍拒绝窗口内旧 claim/旧 blocker,并允许真实新 evidence;完整包还保留 failed/pending evaluation 的 obligation 持续及 fresh Vision discharge/re-arm。
独立执行:同一原生命令 uv run --extra test python -m pytest -q tests/capabilities/test_issue_fix_grouped_monitor_materialization.py packages/loopx-jev/tests --tb=short,基线 99 passed / 8 failed,head 107 passed / 0 skipped。八个失败身份精确对应两项 SQLite 投影假设和六项 Stride 提前报错;不是只比较总数。全部改动文件 Ruff 通过,两提交 DCO trailer 已核对。
反向压力验证:
- 向真正的 completion writer 注入错误 bucket,File/SQLite × soft/hard lease 四种场景均实际提交 done/no_followup 与错误 canonical evidence,然后在新的精确证据断言处产生 四个预期失败。没有用假 reader 提供结果。
- 三个身份 case 的实际 refresh trace 均先报 Stride 缺决策、再在显式 off 后报重复 claim,六次 history bytes 完全不变。
- 故意把 off 改成仅 preview:三个 case 都在第二阶段因错误的 Stride 原因而失败,说明修复没有宽松接受任意异常。
原生 standard premerge 5 direct+4 selected 全过,含 Monitor scheduler/poll-writeback、quota plan/work-lane;精确 scope CQR通过。首次独立后台包装没有输出可用结果,保留为未完成尝试,之后在托管会话执行同一只读验证取得上述结果;不将空文件当通过。
对主干的风险
最强风险是用 off 掩盖默认门回归,或 canonical 改读只剩 status 检查。默认门的独立断言、no-off mutation 和真实错误证据 writer 已分别验证这两个方向。生产源文件、配置默认、策略 owner、权限与持久 schema 均未改;新增的是测试断言和隔离夹具意图,不存在并行 Python 决策 owner。
作者报告的旧完整分片91 failed / 5479 passed / 163 skipped仍只是已提供的历史诊断,本评审没有复现其全部原因,也没有运行当前六分片、查询/轮询/等待远端 CI。Linux/Windows、PostgreSQL、真实 Host/model 和长程收益未认证。这里实际验证的是临时 File/SQLite authority 与真实 status/refresh,JEV observer payload 是合成的;局部通过不替代那些独立资格。
我的整体评价
同意此 exact head 的完整验收修复。107项正常结果与错误证据、错误 gate 的独立反例共同说明原验收仍有区分度;不能只从测试数、写回或 ACK 推断实际 Agent 采用或长期效益。
视觉评审不适用:仅 tests/capabilities/test_issue_fix_grouped_monitor_materialization.py、packages/loopx-jev/tests/test_closed_loop.py、packages/loopx-jev/tests/test_identity_binding.py 改动,没有 rendered presentation 变化。未验证范围:实际安装 Host/model、原生 Linux/Windows、PostgreSQL、完整 CI 和整页视觉。原产品任务的额外必需交互轮数为零。合并资格和合并授权单独判断,本 COMMENTED 结论不授予合并权。
English verdict: APPROVE — canonical Monitor evidence and independent Stride/identity acceptance are restored at 966fe6f764fafbfeda0b762ff3ff2f87bc7ef2cf; 107 native cases and discriminating failure probes passed. This is a COMMENTED author-account conclusion; full CI and deployed adoption remain unverified.
Goal And Delivered Outcome
修复两组可复现的验收缺口:SQLite 的有界 Todo 投影不再内联完整完成证据,旧 Monitor 测试因此错误失败;JEV 的身份与重复证据测试被继承的 Stride 决策门提前拦截,没有走到原定拒绝路径。
Monitor 改用既有 canonical Todo reader 核对完整证据、完成状态和
no_followup,并检查重开后仍是同一个 Todo。JEV 在隔离夹具中显式设置 Strideoff,同时保留默认 Stride 开启时对缺失决策的拒绝与历史字节不变检查。原来的投影、身份冲突、重复证据和真实 status/writeback 断言保留。main,实施基线53374543abfd7dcfe72d63bfdf2c60bb3ce17786。独立维护缺口,无需新建协调 issue。Author Declaration
53374543abfd7dcfe72d63bfdf2c60bb3ce17786阅读。docs/product/core-control-plane/state-machine.md;test_issue_fix_grouped_monitor_materialization.pyloopx/capabilities/progress_review/README.md;JEVtest_closed_loop.py/test_identity_binding.pydocs/reference/protocols/goal-vision-replan-contract-v0.mdScope And Continuation
本 PR 完成本范围内的验收修复,仅修改测试。复用
_monitor_todos和configure_goal,没有新增 wrapper、生产策略、默认值或权限。两个提交分别对应 Monitor 和 JEV,便于独立审阅与回滚。整体质量工作继续:原始基线的完整第 1 分片仍失败,其他回归沿既有维护工作推进。本 PR 不替代完整 CI、独立审阅或合并资格。
Validation
966fe6f764fafbfeda0b762ff3ff2f87bc7ef2cf;下面明确标注旧基线的诊断。uv run --extra test python -m pytest -q tests/capabilities/test_issue_fix_grouped_monitor_materialization.py packages/loopx-jev/tests --tb=short:107 passed,106.56s;旧基线分别为 2 与 6 个失败no_followup已真实提交;不是通过删除断言恢复通过git diff --checkuv run --extra test python examples/control_plane/cli-output-budget-regression-smoke.py53374543...:按原 CI 命令执行第 1/6 分片,双 worker、原 deadline 与 coverage;91 failed / 5479 passed / 163 skipped,另 62 subtests passed,2074.08s。保留这些失败,未声称本补丁消除了全部失败Visual Evidence
Type of Change / LoopX Area
Shared-authority RFC fixture impact
N/A:未声称运行时迁移、provider promotion 或 RFC 阶段完成。
Boundary Checklist
Signed-off-by。