From f2c24015b09cd393db70fcc4a7286ae4ae07b582 Mon Sep 17 00:00:00 2001 From: weichen Date: Sun, 18 Oct 2026 12:52:11 +0000 Subject: [PATCH] Record U2 review fixes and governance tests Why: Preserve the closed-task and remote-target rewind corrections with their regression and governance test evidence. Evidence: 71 focused tests and all 482 governance tests passed; the previous exact-head CI failed in an unrelated backend runtime test and requires a fresh run. Impact: Review findings are fixed in scope; independent final review and current-head CI remain required. Refs: U2 / PR #618 --- .task/archive/feature-norm-remediation-u2.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.task/archive/feature-norm-remediation-u2.md b/.task/archive/feature-norm-remediation-u2.md index 4f7ef8a2..e534f5ba 100644 --- a/.task/archive/feature-norm-remediation-u2.md +++ b/.task/archive/feature-norm-remediation-u2.md @@ -38,6 +38,8 @@ | U2 offline-capture test | capture LOCAL_READY without tracking ref | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | eb6be71cfc34 | 0 | /tmp/norm-remediation-u2-no-tracking-capture-test-receipt.json | | U2 offline-capture fix | capture and resume without tracking ref | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | d2986f1f5fee | 0 | /tmp/norm-remediation-u2-offline-capture-fix-receipt.json | | U2 offline-recovery docs | clarify missing-ref local recovery | caefcb72 | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 74e4b06e5e8b | 0 | /tmp/norm-remediation-u2-offline-doc-receipt.json | +| U2 review regression tests | closed task, reachable rewind, reappearing target | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | d5b8e74c4306 | 0 | /tmp/norm-remediation-u2-review-fix-tests-receipt.json | +| U2 review fixes | reject closed task and known target rewind/divergence | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 05a9a3bc89b6 | 0 | /tmp/norm-remediation-u2-review-fixes-receipt.json | ## 同步记录 @@ -53,12 +55,16 @@ | 2026-10-18T11:24Z | `python3 -m unittest tests.test_evidence tests.test_task_recovery` | 210bb031d4acc5b9bde6cde66e7fa0f735bcf9f8 | 0 | SELF | d196e73da7f33421 | | 2026-10-18T12:07Z | `python3 -m unittest tests.test_evidence tests.test_task_recovery` | d2986f1f5fee0e0ad151fd813b9306873131c805 | 0 | SELF | 85197f351f8458a8 | | 2026-10-18T12:03Z | `python3 -m unittest tests.test_task tests.test_task_recovery tests.test_evidence` | d2986f1f5fee0e0ad151fd813b9306873131c805 | 1 | SELF | 9d19d33489e15d4d | +| 2026-10-18T12:42Z | `python3 -m unittest tests.test_evidence tests.test_task_recovery` | 05a9a3bc89b65eebd92cac6f82c3e4f28e13ab71 | 0 | SELF | 2d19085b0725fc46 | +| 2026-10-18T12:43Z | `make test-governance` | 05a9a3bc89b65eebd92cac6f82c3e4f28e13ab71 | 0 | SELF | 018194c0a804d1b9 | ## 结果与验证 -- 结果:U2 两个实现切片与一项 test-only 切片均已通过成功 transport 集成;回归测试确认仅既有、登记且安全的任务可取得 `LOCAL_READY` 并续作,正式交付仍要求 `READY` 与最新目标同步。 -- 验证:最终改动后 host `python3 -m unittest tests.test_evidence tests.test_task_recovery` 68/68 通过(SELF,HEAD `d2986f1f5fee0e0ad151fd813b9306873131c805`);worker 自检 evidence 50/50 通过。扩展套件 `tests.test_task tests.test_task_recovery tests.test_evidence` 共 162 项中 160 项通过,`tests.test_task` 的两项 planned-child 启动测试失败;同两项在干净父基线 `74bd05a876136ed8506332c76d535a6eb6356433` 上复现,判为既有基线失败,与本次 local-only 改动无关。PR #618 旧 head `e022948747c92d907cc11bfe412089055feb8599` 的 GATE `ci / test` 已通过;后续提交会改变 head,最终 candidate CI 必须重跑。独立 Review 与合入仍 NOT_RUN。 +- 结果:U2 允许既有安全任务在真正远端不可用或目标跟踪 ref 缺失时继续有界本地工作;闭合任务和已证实的远端 target 回退/分叉均拒绝 `LOCAL_READY`。新任务和正式交付仍要求严格 READY/权威同步。 +- 验证:最终修复后 host `python3 -m unittest tests.test_evidence tests.test_task_recovery` 71/71 通过(SELF,HEAD `05a9a3bc89b65eebd92cac6f82c3e4f28e13ab71`);worker evidence 自检 51/51、task recovery 20/20;`make test-governance` 482 项通过、18 项 skip。先前 PR CI run 3884/job 6150 在 `make test` 的 Go 后端测试 `TestToolCallDeltaBeforeExecution` 失败(`modules/backend/internal/runtime/llm_test.go:1084`,事件顺序为 `[tool.call.delta tool.call tool.result]`);该文件不在变更范围,旧 head `e022948...` GATE 曾通过。当前 head 已不同,须在最终提交上重跑 CI。 +- Review 发现与闭合:正确性审阅指出闭合任务曾能在 precheck 收到 LOCAL_READY;可靠性审阅指出可达远端回退可能被当作离线。已分别加入红灯回归并修复。测试审阅提出的目标 ref 重现和 receipt target branch 错配边界也已覆盖。最终候选独立 Review 待完成。 - 执行偏差:原 U2 Cursor attempt 对 `tests/test_task_recovery.py` 的两个 edit 调用重叠约 449 ms,并被 fail-stop;新的 evidence 单元明确要求串行编辑,但 worker 仍在同一批次向 `scripts/evidence.py` 发出两次编辑调用(未重叠,最终 diff 已审阅且验证通过)。不能据此声称提示已强制串行;后续规范计划须区分提示、可观测证据与工具级并发防护。 +- 新增执行偏差:修复闭合任务与目标回退时,worker 在同一批次向 `scripts/evidence.py` 和 `scripts/task.sh` 发出两次互不重叠编辑,违反了任务包的串行编辑要求;最终 diff 已逐项审阅,定向与完整治理测试均通过,但该结果不能证明提示具备工具级强制力。 - 验收补充:对照计划 U2 的“remote-tracking ref 不存在但 R0 对象本地可用”场景,host Review 发现首个修复只覆盖 receipt 捕获后 ref 消失,未覆盖离线 precheck 捕获时 ref 已缺失;随后新增 test-first 回归覆盖两种时序,并修复 `--local-context` 与 `resume-local` 的有界验证。`start` 与 `resume-delivery` 继续要求当前权威目标。 - 影响与剩余项:原失败 receipt `/tmp/norm-remediation-u2-receipt.json`,run_id `af20482c3e24cc32f3873d1451043481`;其 worktree 保留为诊断证据。该 run `blocked`、`transport_ref=null`、`host_fallback_authorizations=0`。Development-Manager PR #26 已合入 `b178dec`;Dev gitlink adoption 仍待 initiative 集成,不在本 U2 单元内。