Skip to content

test: restore Monitor and JEV lifecycle acceptance - #8039

Merged
huangruiteng merged 2 commits into
mainfrom
codex/monitor-evidence-readback-20261104
Nov 5, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/monitor-evidence-readback-20261104

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

修复两组可复现的验收缺口:SQLite 的有界 Todo 投影不再内联完整完成证据,旧 Monitor 测试因此错误失败;JEV 的身份与重复证据测试被继承的 Stride 决策门提前拦截,没有走到原定拒绝路径。

Monitor 改用既有 canonical Todo reader 核对完整证据、完成状态和 no_followup,并检查重开后仍是同一个 Todo。JEV 在隔离夹具中显式设置 Stride off,同时保留默认 Stride 开启时对缺失决策的拒绝与历史字节不变检查。原来的投影、身份冲突、重复证据和真实 status/writeback 断言保留。

  • Observable before → after: Monitor 模块从 2 failed / 12 passed、JEV 全包从 6 failed / 87 passed,变为同一组完整模块及包共 107 passed。
  • Intended base: main,实施基线 53374543abfd7dcfe72d63bfdf2c60bb3ce17786。独立维护缺口,无需新建协调 issue。

Author Declaration

  • Written by: model_agent · Codex (GPT-6 family) · OpenAI.
  • Specification and revision: 下列既有合同,均按基线 53374543abfd7dcfe72d63bfdf2c60bb3ce17786 阅读。
Criterion Disposition Symbol / path Decisive validation
Projection Sink Machine §7:投影不成为状态 authority implemented docs/product/core-control-plane/state-machine.md;test_issue_fix_grouped_monitor_materialization.py File/SQLite,soft/hard lease;完成证据与同一 Todo 重开读回
Progress-Review Sentinel:Receipts / Discharge 的身份与重复证据约束 implemented loopx/capabilities/progress_review/README.md;JEV test_closed_loop.py / test_identity_binding.py 原始身份冲突、已用证据拒绝、完整 history 不变断言;全包回归
Vision/Replan 合同:默认 Stride 的结构化决策门与显式 off 含义 implemented docs/reference/protocols/goal-vision-replan-contract-v0.md 三种缺失身份场景先验证默认决策门拒绝,再验证独立的身份拒绝

Scope And Continuation

本 PR 完成本范围内的验收修复,仅修改测试。复用 _monitor_todos 和 configure_goal,没有新增 wrapper、生产策略、默认值或权限。两个提交分别对应 Monitor 和 JEV,便于独立审阅与回滚。

整体质量工作继续:原始基线的完整第 1 分片仍失败,其他回归沿既有维护工作推进。本 PR 不替代完整 CI、独立审阅或合并资格。

Validation

  • Tested revision: 966fe6f764fafbfeda0b762ff3ff2f87bc7ef2cf;下面明确标注旧基线的诊断。
  • Run state: finished.
  • Input classes: synthetic, public_fixture.
  • Environment: macOS / Python 3.14.8 / Node.js 24.21.0;Linux/Windows 完整 CI 尚未完成。
Check kind Result Public-safe evidence / limitation
regression_parity passed 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 个失败
real_backend passed Monitor 使用隔离的 File 与 SQLite authority,覆盖 soft/hard lease、退役、重开及完整证据读回;JEV 使用隔离 File runtime 与真实 status/refresh-state 入口;未调用模型
manual passed 向原生完成 writer 注入错误 bucket 证据:File/SQLite 均在新的精确证据断言处失败,且完成状态及 no_followup 已真实提交;不是通过删除断言恢复通过
static passed CONTRIBUTING 的 Ruff 检查及两个 JEV 改动文件;mypy 的 17 个配置源文件;改动文件 public-boundary scan 零错误/警告;git diff --check
real_entrypoint passed uv run --extra test python examples/control_plane/cli-output-budget-regression-smoke.py
integration passed premerge 的 5 个直接检查、4 个 Monitor/quota canary 执行通过;总体 gate 仍因验证资格未满足而 hold
regression_parity failed 修改前、源码始终未改的 53374543...:按原 CI 命令执行第 1/6 分片,双 worker、原 deadline 与 coverage;91 failed / 5479 passed / 163 skipped,另 62 subtests passed,2074.08s。保留这些失败,未声称本补丁消除了全部失败
integration not_run 当前 head 的全部 6 个 pytest 分片及完整必需 CI 尚未合格;不以局部通过或基线失败豁免这些门槛
  • Coverage and gaps: 两个被改变的验收边界已完整回归并保留负例;完整 CI、其他已发现的基线回归、独立 review 与合并资格仍待满足。局部通过不证明实际 Host/model 采用或长程效果收益。

Visual Evidence

  • UI impact: none.
  • First viewport and preview / states: N/A,未修改界面。
  • Source data: synthetic.

Type of Change / LoopX Area

  • Test update
  • Capability or extension
  • Control plane acceptance tests

Shared-authority RFC fixture impact

N/A:未声称运行时迁移、provider promotion 或 RFC 阶段完成。

Boundary Checklist

  • Diff 与正文不包含私有状态、凭据、原始日志、内部链接或本机路径。
  • 未运行或复制 maintainer-owned benchmark。
  • 两个边界来自实际失败,既有断言和未完成验证已保留。
  • 无 RFC pair 改动;premerge bilingual diff check 通过。
  • UI impact 为 none。
  • 两个提交均有 DCO Signed-off-by。

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 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.

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 或改全局默认都更差。

具体改动

关键代码讲解

  1. Monitor 生命周期 case 保留投影有 done 的检查,改从现有 canonical reader 验证唯一 monitor 的 done、no_followup is True 和精确 bucket evidence;新观察进入后要求同一 Todo ID 重开、清除 no_followup。
  2. sequence 与 repeated-turn fixture 使用既有 configure_goal,只为各自隔离 Goal 显式选 Stride off。observer transport/credential 都是注入夹具,没有模型调用。
  3. 身份 case 对缺 Agent、Todo、ACK Agent 三种输入,先验证缺结构化决策的默认拒绝和 index bytes 不变;再 off 后验证原 already claimed 拒绝和 index bytes 不变。
  4. 原 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.

@huangruiteng
huangruiteng merged commit cb46d62 into main Nov 5, 2026
26 of 37 checks passed
@huangruiteng
huangruiteng deleted the codex/monitor-evidence-readback-20261104 branch November 5, 2026 03:22
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