Repository navigation
test: reconcile release regressions with shipped contracts - #7734
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>
…tbeat-regressions-20261030 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)
动机 / Motivation
发布维护者在全套检查中核对已经交付的控制面行为。旧测试把合法提示预算、自动等待和安全拒绝当作失败,或禁止无害的临时目录分配;修复后仍拒绝超限、错误身份和清理泄漏。六个原有回归继续验证真实 CLI、原状态和失败恢复,当前精确提交 125 项通过。本 PR 不改变生产行为、预算或超时,也不交付完整版本发布。缓存监督回退、技能资源引用及最终同源发布资格和渠道读回仍由现有发布工作完成。
这次只修复发布检查的错误信号。原先的提示上限、等待原因码和错误身份处理已被合入的控制面合同改变;另一个测试把“分配后正确清理”也当成失败。继续保留旧断言会反复阻断发布,直接删掉断言则会漏过真正的边界问题。
改动思路 / Approach
生产控制面和保存格式在基线与本提交之间字节相同。测试继续调用原来的 CLI、调度和运行时 owner,只把预期对齐已交付的合同;正常路径和拒绝路径都保留。目录是否最终移除才是清理义务,是否曾经分配目录属于实现顺序。没有新增控制面状态、兼容分支或测试框架。
| 合同 | 当前正确预期 | 保留的反例 |
|---|---|---|
| 提示预算 | thin 4900,显式 envelope 5300 | 四段合法长 scope 仍超限;正文、5400 Agent JSON 和 native 4000 边界保留 |
| 自动重试 | 可选人工通知不阻断同一 Todo 的等待 | 到期时间、不额外 spend、独立工作恢复继续校验 |
| 精确身份 | 显式错误 guard 抛出 typed rejection | 未选择 guard 仍为 None;错误码必须精确匹配 |
| 编码失败清理 | 允许预分配,所有实际目录和文件必须移除 | 原始异常及 cause、相同 server PID;故意漏清理必须失败 |
具体改动 / Changes
审阅 head:3aceceabf6f24bdabbe442f239b414ad84e4a0d9;基线:225698b313f3bcd5c967220013b4a2254c586792。六个既有测试文件,23 行新增、11 行删除,没有生产文件变化。
- 提示与 envelope:更新规范固定值,并将超限 fixture 从三段增至四段,确保它确实仍越界;没有把实现返回值作为自己的预期。
- 精确重规划身份:保留未选择身份的 None 路径;显式无关身份必须以
heartbeat_receipt_identity_conflict拒绝。 - 传输失败清理:检查实际目录消失,原始错误、cause、文件清理和 PID 断言均保留。隔离 fixture 中人为阻止清理,三个原有错误输入均在新断言处失败,证明它没有放过泄漏。
- registry 路由 fixture 的原始长路径仍超过新 allowance;真实 quota CLI 的自动等待仅更新原因码,其它状态与恢复验证保留。
规范依据:docs/development/good-smokes.md,spec_revision 225698b313f3bcd5c967220013b4a2254c586792。Start With The Contract:implemented,沿用既有真实 CLI/运行时边界;Prefer Semantic Pressure:implemented,以超限、错误身份和清理反转验证独立语义;Validate The Change:implemented,完成精确提交聚焦测试和仓库标准 premerge,保留历史失败及发布缺口。
对主干的风险 / Risks
主要风险是以“对齐预期”为名削弱测试。这里仍有真实超限输入、错误身份的精确诊断和清理反转实验;新增目录断言能够抓到“文件已删、空私有目录却残留”的反例。回滚只涉及六个测试,不迁移任何用户数据。
PASS:精确 head 聚焦 125 项,0 skip,源提交前后不变、清理无误;标准 premerge 5 个直接检查和 10 个风险选择检查全部通过。Ruff、mypy、语义 advisory、CLI 输出预算及公开边界扫描通过,扫描保留一个未改动的合成脱敏 fixture 警告。变更质量 receipt cqr_c4f12ba2f1dea35a81d7 有效。三项故意漏清理的 mutation 是预期失败的诊断实验,不能表述为产品测试通过。
历史全套在父提交 51702131ff72c26d5d4e72f4b04c55ce9d93ef08 为 20 failed / 30892 passed / 851 skipped,其中十八项对应本次陈旧断言。当前证据覆盖这些断言及原始负例,但不声称本 head 已跑完整全套。缓存监督回退与技能引用仍是发布阻塞;本 PR 未修复它们。遵守当前 review 契约,没有获取、轮询或等待 GitHub CI。
我的整体评价 / Verdict
APPROVE,交付判断为 justified_increment。long_horizon=preserved:生产等待、持久化与接续不变,保留无额外 spend 及独立工作恢复验证;user_experience=preserved:用户 CLI 和必需交互不变。六个测试文件不改变任何渲染入口,首屏截图不适用。未以本 PR 证明完整安装、外部模型或正式渠道交付。 这是已有回归的必要修正;完整发布资格仍须在后续最终同源提交重新完成。
English verdict: APPROVE the exact test-only head; shipped behavior is preserved, negative coverage remains effective, and final release qualification is separate.
Goal And Delivered Outcome
发布前的完整回归暴露了六个现有测试文件与已交付合同之间的偏差。本 PR 只修这些测试:薄提示预算采用已合并的 4,900/5,300 值;可选提醒沿真实 scoped-wait 分类;显式错误的结算身份须读回准确拒绝;序列化失败检查临时目录和文件已清理。
超限输入仍然失败:增加一个合法长度的 scope,并让原始长路径继续超过现有预算。提示正文、原生 4,000 字符传输上限、5,400 字符 Agent JSON 检查和所有产品预算均未修改。等待期限、原 Todo、零扣费、后续独立工作,以及原错误类型和服务身份检查全部保留。
依据是已合并的 #7701、#7689、#7624 和 #7688 的现有行为。目标为
main,基线225698b313f3bcd5c967220013b4a2254c586792;原始失败来自51702131ff72c26d5d4e72f4b04c55ce9d93ef08,上述六个测试及其直接合同 owner 在两者间未变。分支另已合入基线中的报告恢复修复 #7724,PR diff 仍仅含六个测试文件。Author Declaration
Written by: model_agent — OpenAI Codex (GPT-6 family).
Implemented against:
loopx/control_plane/heartbeat/budget.py、loopx/control_plane/work_items/interaction_contract.ts、loopx/control_plane/work_items/replan_semantics.ts、loopx/control_plane/effect_runtime.py,均以基线225698b313f3bcd5c967220013b4a2254c586792为准;同版docs/reference/protocols/goal-vision-replan-contract-v0.md的 Exact blocked-successor wait 与原 Turn 结算边界。heartbeat_receipt_identity_conflictValidation
Tested revision:
3aceceabf6f24bdabbe442f239b414ad84e4a0d9。Input classes: synthetic, public_fixture.cqr_c4f12ba2f1dea35a81d7有效。完整基线 collection 已结束:20 failed、30,892 passed、851 skipped。本 PR 对应其中六个文件的 18 个失败。其余缓存监督回退与打包技能资源引用问题继续由现有发布工作修复;原失败和对照均保留。完整发布资格另行验证。
Scope And Continuation
本次测试修复完成即可独立回滚和审阅。生产代码、模型调用、权限、存储和超时无改动。最终源码完整回归、模型/安装与正式渠道验证继续沿现有发布工作执行;不增加另一个发布或调度框架。
UI impact: none。没有界面、设置或首屏变更,截图不适用。六个路径均为现有回归;RFC 配对未修改,提交均有 DCO sign-off。未包含本地状态、原始日志、私有链接、路径或凭据。