Allow safe local task continuation (U2) #618

Merged
weichen merged 40 commits from feature/norm-remediation-u2 into feature/norm-remediation 2026-10-18 16:43:37 +00:00
Owner

feature/norm-remediation-u2 任务卡

任务主记录:PR #618 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/618;状态:已完成(合入前闭合);owner:weichen

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= b5e23daed2

  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2(worktree);分支:feature/norm-remediation-u2

  • 分支类型:child;initiative_id:feature-norm-remediation;root_target:main;immediate_target:feature/norm-remediation;accepting_requirements:false;parent_branch:feature/norm-remediation;parent_head_sha:01d9f50ee8aba1c40cb9b1769598698c91c30c4b;parent_pr:无;parent_source:origin

  • 需求分流:免(父 initiative 子任务登记已列出 feature/norm-remediation-u2;parent_head_sha=01d9f50ee8aba1c40cb9b1769598698c91c30c4b)

  • 授权与交付终点:用户于 2026-10-18 授权按规范整改计划实施 U2。仅允许安全既有任务的本地续作,并保留新任务启动及正式交付门禁。未授权扩展:改平台保护、host fallback、worker 权限、凭据轮换或其他 U-ID。

  • 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)

  • 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)

  • 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)

  • 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)

目标与非目标

目标:当远端暂时不可用或落后时,已有且仍获授权的任务只有在身份、记录基线、本地工作区和请求范围均可核验时,才能进入 LOCAL_READY 继续有界本地工作;本地收据不得被解释为远端新鲜或正式交付证据。

范围:scripts/task.sh、scripts/evidence.py、policy/governance.md、tests/test_task.py、tests/test_task_recovery.py、tests/test_evidence.py。测试可按现有代码模式作必要的最小补充,但不得改动 task-pr-check、task-sync、CI 或平台准入语义。

硬停止:关闭/放弃任务、授权或身份缺失/冲突、请求超范围、R0 本地对象缺失、dirty/共享工作区状态不安全、活动 Git 操作、未知外部副作用或未对账状态均拒绝续作。

验收:有效既有任务可在远端失败时继续本地工作;新任务仍需新鲜远端 triage;LOCAL_READY 不能成为 READY、REPLAY、GATE 或 merge check 的依据;远端恢复后 Review/merge 仍需同步权威当前目标。

Agent 实施收据

路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。

单元 ID 预期范围 配置摘要 角色 候选顺序 attempt CLI/模型 终态 transport fallback 源码外收据路径
U2 original local recovery behavior caefcb72 implementation cursor, agy, pi 1 cursor-agent-stable / auto blocked none 0 /tmp/norm-remediation-u2-receipt.json
U2 test-only offline local precheck regression caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 30a582372b 0 /tmp/norm-remediation-u2-offline-test-receipt.json
U2 task precheck local precheck fallback caefcb72 implementation cursor, agy, pi 1 cursor-agent-stable / auto success d6df427e39 0 /tmp/norm-remediation-u2-precheck-impl-receipt.json
U2 local receipt resume-local receipt validation caefcb72 implementation cursor, agy, pi 1 cursor-agent-stable / auto success 210bb031d4 0 /tmp/norm-remediation-u2-evidence-receipt-2.json
U2 missing-ref test resume-local with missing tracking ref caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success dcbd36656b 0 /tmp/norm-remediation-u2-no-tracking-test-receipt.json
U2 missing-ref fix local receipt with missing tracking ref caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success a43aa171ea 0 /tmp/norm-remediation-u2-no-tracking-fix-receipt.json
U2 offline-capture test capture LOCAL_READY without tracking ref caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success eb6be71cfc 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 d2986f1f5f 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 74e4b06e5e 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 d5b8e74c43 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 05a9a3bc89 0 /tmp/norm-remediation-u2-review-fixes-receipt.json
U2 final edge tests target divergence and receipt target branch mismatch caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 2e0da0dadb 0 /tmp/norm-remediation-u2-final-edge-tests-receipt.json
U2 uncomparable-target test reachable advertised SHA missing locally caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 95d1718858 0 /tmp/norm-remediation-u2-uncomparable-target-test-receipt.json
U2 target-history fix block known but locally uncomparable history caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success 9c0e765708 0 /tmp/norm-remediation-u2-uncomparable-target-fix-receipt.json
U2 no-cache target tests target reachable/missing or forward with no tracking ref caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success fbb2aacb71 0 /tmp/norm-remediation-u2-no-cache-history-tests-receipt.json
U2 offline resume tests standalone/child local resume during origin outage caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 8d8585afec 0 /tmp/norm-remediation-u2-offline-resume-tests-receipt.json
U2 offline resume fix local-only receipt resume with target history and parent R0 checks caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success f81326bd08 0 /tmp/norm-remediation-u2-offline-resume-fix-receipt.json
U2 no-cache R0 fix compare reachable targets to registered R0 without cached ref caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success 1ff6444d33 0 /tmp/norm-remediation-u2-precheck-r0-fix-receipt.json
U2 reachable-missing-parent test reject known-absent remote child target caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 5b5537aa0f 0 /tmp/norm-remediation-u2-child-missing-parent-test-receipt-2.json
U2 reachable-missing-parent fix local child resume only falls back on remote outage caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success 1059015958 0 /tmp/norm-remediation-u2-child-missing-parent-fix-receipt.json
U2 offline resume tests root/child receipt import during origin outage caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success 8d8585afec 0 /tmp/norm-remediation-u2-offline-resume-tests-receipt.json
U2 offline resume fix local resume on R0/local registered parent caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success f81326bd08 0 /tmp/norm-remediation-u2-offline-resume-fix-receipt.json
U2 review-proof tests no-ref paths, auth failure, and parent identity caefcb72 test pi, agy, cursor 1 pi / MiniMax-M3 success bc304111a4 0 /tmp/norm-remediation-u2-final-review-tests-receipt.json
U2 final offline guards missing cache, auth failures, and parent SHA checks caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success 471948c59c 0 /tmp/norm-remediation-u2-final-guards-receipt.json
U2 precheck R0 implementation compare remote advertisement without cached tracking ref caefcb72 repair cursor, agy, pi 1 cursor-agent-stable / auto success 1ff6444d33 0 /tmp/norm-remediation-u2-precheck-r0-fix-receipt.json

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 b5e23daed2 01d9f50ee8 2026-10-18T09:51:35Z

证据(Evidence)

时间(UTC) 命令 被测HEAD exit 来源 sha256(16)
2026-10-18T11:24Z python3 -m unittest tests.test_evidence tests.test_task_recovery 210bb031d4 0 SELF d196e73da7f33421
2026-10-18T12:07Z python3 -m unittest tests.test_evidence tests.test_task_recovery d2986f1f5f 0 SELF 85197f351f8458a8
2026-10-18T12:03Z python3 -m unittest tests.test_task tests.test_task_recovery tests.test_evidence d2986f1f5f 1 SELF 9d19d33489e15d4d
2026-10-18T12:42Z python3 -m unittest tests.test_evidence tests.test_task_recovery 05a9a3bc89 0 SELF 2d19085b0725fc46
2026-10-18T12:43Z make test-governance 05a9a3bc89 0 SELF 018194c0a804d1b9
2026-10-18T13:01Z make test-governance 2e0da0dadb 0 SELF a44db826c4be80fb
2026-10-18T13:40Z bash -n scripts/task.sh && make test-governance 9c0e765708 0 SELF 872bbc3437ae83e3
2026-10-18T14:41Z python3 -m unittest tests.test_evidence tests.test_task_recovery 1ff6444d33 0 SELF bf12f030894e1530
2026-10-18T14:40Z bash -n scripts/task.sh && make test-governance 1ff6444d33 0 SELF 8e81c5353849fbd5
2026-10-18T15:47Z python3 -m unittest tests.test_evidence tests.test_task_recovery 471948c59c 0 SELF 7620bd82fed319e7
2026-10-18T15:48Z bash -n scripts/task.sh && make test-governance 471948c59c 0 SELF 5a3346fd73b80243

结果与验证

  • 结果:U2 允许既有安全任务在真正远端不可用或目标跟踪 ref 缺失时继续有界本地工作;闭合任务和已证实的远端 target 回退/分叉均拒绝 LOCAL_READY。新任务和正式交付仍要求严格 READY/权威同步。
  • 验证:host python3 -m unittest tests.test_evidence tests.test_task_recovery 79/79 通过(SELF,HEAD 1ff6444d3352c7e13c2b75cefe7d65c631181454),覆盖 root/child 离线 task-resume 与严格 delivery 拒绝;host bash -n scripts/task.sh && make test-governance 490 项通过、18 项 skip(SELF,同 HEAD)。不含后续主脚本改动的 transport。local precheck no-cache 的 2 个红灯回归已由紧随其后的 1ff6444d 修复,三条 no-cache 状态单测 3/3 通过;最终候选完整测试仍待重跑。
  • Review 发现与闭合:正确性 reviewer 发现闭合任务仍可在 precheck 收到 LOCAL_READY、以及可达但不可比较的 target 仍被当作离线;可靠性 reviewer 发现缓存 target 回退/分叉问题。已分别加入 test-first 回归并修复。测试 reviewer 建议的目标 ref 重现、receipt target branch 错配、远端分叉和不可比较 target 场景均已覆盖;项目规范/可维护性审阅无 finding。旧 CI run 3884 曾因变更外 Go 测试 TestToolCallDeltaBeforeExecution 失败,后续 b492bea... CI 通过;当前最终 head 的 GATE 与新候选完整 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 已逐项审阅,定向与完整治理测试均通过,但该结果不能证明提示具备工具级强制力。
  • Review 路由记录:第一次 PR 对抗性 cross-model job 因 orchestrator 使用了不匹配的约束文件名,在 provider egress 前跳过,未把代码发送给外部模型;job 目录已清理。该审阅不计入 Review 覆盖,最终 head 使用本地 adversarial reviewer。
  • 后续 Review 补充(覆盖前述状态):关闭任务 precheck、reachable-but-uncomparable/缺失 target、无 tracking ref 时需查询 advertised target、以及离线 cmd_resume 的 fetch-first 缺口,均已补 test-first 回归与修复。root 离线 resume 使用登记 R0;child resume 仅使用已登记、包含 parent_head_sha 的本地 parent 作为局部参考,delivery 仍 fetch-first。最终候选完整 Review 与 exact-head CI 待完成。
  • 最新 child 边界修复:origin 可达但已登记 parent ref 缺失时,local resume 不再回退本地 parent;origin 确实不可查询时仍可使用本地 parent,并验证 parent_head_sha。
  • 最新代码验证:host tests.test_evidence tests.test_task_recovery 80/80 通过,bash -n scripts/task.sh && make test-governance 491 项通过、18 项 skip,测试对象为 105901595805cc5fa5ce19f1a6d48317b950d6af。此前 CI green head 尚早于这些离线恢复修复,须以最终 PR head 重跑 GATE。
  • 最新验证覆盖 80 个 evidence/recovery 测试与 491 项治理测试(18 项 skip),以上命令都成功;测试对象为当前实现代码 105901595805cc5fa5ce19f1a6d48317b950d6af。若后续只改任务卡,代码测试可复用但 CI head 会变,须在最终提交 head 重新等待 GATE。
  • child 父目标补充:若 origin 可达但已登记 parent branch 不存在,local resume 返回 REMOTE_UNVERIFIED,不再使用本地 parent;只有远端确实不可查询时才回退本地 parent,并仍核验 parent_head_sha。delivery 仍保持 fetch-first。
  • 最终边界修复及验证:target_history 仅将已识别的 DNS/连接类传输错误视为 outage;认证/权限/未知错误不再降级。无 tracking ref 时 precheck 以 active task R0 比较 advertised target;reachable target/parent 缺失或不可比均拒绝。child local resume 要求有效且本地可用的 parent_head_sha。去掉了无 tracking-ref 时会触发 strict-shell 退出的 merged-branch 查询。
  • 最终已测生产代码 head 471948c59cfabff36c018f219998139fea3757fe:host evidence+recovery 83/83 通过;bash -n scripts/task.sh && make test-governance 494 项通过、18 项 skip。随后 105901595805cc5fa5ce19f1a6d48317b950d6af 又通过 targeted unreachable-vs-reachable missing-parent 对照测试;其后未再改生产逻辑。exact final-head CI 与当前候选 Review 尚待重跑。
  • 离线 resume 已端到端验证:root 与 child 任务在捕获有效 LOCAL_READY 收据后、origin 不可达时可用 TASK_WORK_MODE=local make task-resume 导入;child 仅使用本地已登记 parent 并核对 parent_head_sha。同一环境下 delivery resume 仍以 REMOTE_UNVERIFIED 拒绝。
  • 验收补充:对照计划 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 单元内。

合入与清理

  • Review 记录:NOT_RUN(审阅智能体/平台身份、base/head、结论、问题闭合及重放依据)
  • 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
  • CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
  • 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
  • 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-18T09:51:00.301997+00:00",
  "command": "make precheck",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev",
  "before_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9",
  "after_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9",
  "branch": "main",
  "target_branch": "main",
  "target_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9",
  "root_target": "main",
  "immediate_target": "main",
  "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "output_tail": [
    "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'",
    "[repo]   branch=main head=b5e23daed2",
    "[remote] origin/main=b5e23daed2 ahead=0 behind=0",
    "[tree]   clean submodules_drift=0 uninit=3",
    "[warn] 3 个子模块未初始化——构建/测试前需物化(不阻断写入)",
    "[worktrees] linked=11",
    "[recycle] merged un-recycled branches: feature/layered-python-env",
    "[initiatives] local cards (not authoritative): none",
    "[hooks]   core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
    "[facts]   policy/facts.md 6 条事实均在有效期内",
    "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
    "[R0] b5e23daed2(完整:b5e23daed2f0ea46261979de1d62e4de0cfa88f9)",
    "[worktree] before-sync: recursive component checks passed",
    "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch",
    "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'"
  ],
  "output_sha256": "d33d43216a047c642360e2afa99b4d72781f81698ca933e8687cc8127afde332",
  "receipt_sha256": "57db39b3f66caf60040427f50f45423bb2be546f4930be3696b8218f1c29f148",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/57db39b3f66caf60040427f50f45423bb2be546f4930be3696b8218f1c29f148.json"
}

| 同步(记录前对象) | 74bd05a876 | f65d0169f6 | 2026-10-18T10:58:22Z |

{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-18T11:14:41.060001+00:00",
  "command": "make precheck",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2",
  "before_head": "d6df427e39e2dd8f57d51d04318dedffff96523a",
  "after_head": "d6df427e39e2dd8f57d51d04318dedffff96523a",
  "branch": "feature/norm-remediation-u2",
  "target_branch": "main",
  "target_head": "ba81d638a6c845d0acde6896f4001bed096ba26c",
  "root_target": "main",
  "immediate_target": "feature/norm-remediation",
  "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "output_tail": [
    "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2'",
    "[repo]   branch=feature/norm-remediation-u2 head=d6df427e39",
    "[remote] origin/main=ba81d638a6 ahead=10 behind=12",
    "[tree]   clean submodules_drift=0 uninit=0",
    "[worktrees] linked=11",
    "[recycle] merged un-recycled branches: feature/layered-python-env",
    "[initiatives] local cards (not authoritative): none",
    "[hooks]   core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
    "[facts]   policy/facts.md 6 条事实均在有效期内",
    "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
    "[target] ba81d638a6c845d0acde6896f4001bed096ba26c(observed; task initial baseline is reported separately)",
    "[task-state] registered=/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2 initial_base=b5e23daed2f0ea46261979de1d62e4de0cfa88f9",
    "[verdict] LOCAL_READY — existing task may continue authorized local work; final delivery still requires latest-target sync and checks",
    "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2'"
  ],
  "output_sha256": "9875968d327058ec22a07453a7c748f5c7b3557fdc8d05355b907b8458d8fa6d",
  "receipt_sha256": "00e543451c4435f6669c74d51a6a678db2cd40a0498a56ae377447044adce7f8",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/00e543451c4435f6669c74d51a6a678db2cd40a0498a56ae377447044adce7f8.json"
}
{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-18T11:39:55.756192+00:00",
  "command": "python3 -m unittest tests.test_evidence tests.test_task_recovery",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2",
  "before_head": "1e26b1cccdcfe8ac83a004915cad591d27eed91c",
  "after_head": "1e26b1cccdcfe8ac83a004915cad591d27eed91c",
  "branch": "feature/norm-remediation-u2",
  "target_branch": "main",
  "target_head": "ba81d638a6c845d0acde6896f4001bed096ba26c",
  "root_target": "main",
  "immediate_target": "feature/norm-remediation",
  "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "output_tail": [
    "..................................................................",
    "----------------------------------------------------------------------",
    "Ran 66 tests in 18.749s",
    "",
    "OK"
  ],
  "output_sha256": "ed93f5670caa3576929bab841735c1ad873975985fcf1a6575ce88bad5510aa7",
  "receipt_sha256": "d08508edc20bdd35b340355c5b1a9295ddce5f866d1706f34afc8f76dcf1d939",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/d08508edc20bdd35b340355c5b1a9295ddce5f866d1706f34afc8f76dcf1d939.json"
}

闭合记录(合入前折叠)

# feature/norm-remediation-u2 任务卡 任务主记录:PR #618 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/618;状态:已完成(合入前闭合);owner:weichen - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= b5e23daed2f0ea46261979de1d62e4de0cfa88f9 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2(worktree);分支:feature/norm-remediation-u2 - 分支类型:child;initiative_id:feature-norm-remediation;root_target:main;immediate_target:feature/norm-remediation;accepting_requirements:false;parent_branch:feature/norm-remediation;parent_head_sha:01d9f50ee8aba1c40cb9b1769598698c91c30c4b;parent_pr:无;parent_source:origin - 需求分流:免(父 initiative 子任务登记已列出 feature/norm-remediation-u2;parent_head_sha=01d9f50ee8aba1c40cb9b1769598698c91c30c4b) - 授权与交付终点:用户于 2026-10-18 授权按规范整改计划实施 U2。仅允许安全既有任务的本地续作,并保留新任务启动及正式交付门禁。未授权扩展:改平台保护、host fallback、worker 权限、凭据轮换或其他 U-ID。 - 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进) - 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md) - 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入) - 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位) ## 目标与非目标 目标:当远端暂时不可用或落后时,已有且仍获授权的任务只有在身份、记录基线、本地工作区和请求范围均可核验时,才能进入 `LOCAL_READY` 继续有界本地工作;本地收据不得被解释为远端新鲜或正式交付证据。 范围:`scripts/task.sh`、`scripts/evidence.py`、`policy/governance.md`、`tests/test_task.py`、`tests/test_task_recovery.py`、`tests/test_evidence.py`。测试可按现有代码模式作必要的最小补充,但不得改动 `task-pr-check`、`task-sync`、CI 或平台准入语义。 硬停止:关闭/放弃任务、授权或身份缺失/冲突、请求超范围、R0 本地对象缺失、dirty/共享工作区状态不安全、活动 Git 操作、未知外部副作用或未对账状态均拒绝续作。 验收:有效既有任务可在远端失败时继续本地工作;新任务仍需新鲜远端 triage;`LOCAL_READY` 不能成为 `READY`、`REPLAY`、`GATE` 或 merge check 的依据;远端恢复后 Review/merge 仍需同步权威当前目标。 ## Agent 实施收据 路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。 | 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 | |---|---|---|---|---|---|---|---|---|---|---| | U2 original | local recovery behavior | caefcb72 | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | blocked | none | 0 | /tmp/norm-remediation-u2-receipt.json | | U2 test-only | offline local precheck regression | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 30a582372b4c | 0 | /tmp/norm-remediation-u2-offline-test-receipt.json | | U2 task precheck | local precheck fallback | caefcb72 | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | d6df427e39e2 | 0 | /tmp/norm-remediation-u2-precheck-impl-receipt.json | | U2 local receipt | resume-local receipt validation | caefcb72 | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 210bb031d4ac | 0 | /tmp/norm-remediation-u2-evidence-receipt-2.json | | U2 missing-ref test | resume-local with missing tracking ref | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | dcbd36656bb3 | 0 | /tmp/norm-remediation-u2-no-tracking-test-receipt.json | | U2 missing-ref fix | local receipt with missing tracking ref | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | a43aa171ea7f | 0 | /tmp/norm-remediation-u2-no-tracking-fix-receipt.json | | 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 | | U2 final edge tests | target divergence and receipt target branch mismatch | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 2e0da0dadb73 | 0 | /tmp/norm-remediation-u2-final-edge-tests-receipt.json | | U2 uncomparable-target test | reachable advertised SHA missing locally | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 95d17188585c | 0 | /tmp/norm-remediation-u2-uncomparable-target-test-receipt.json | | U2 target-history fix | block known but locally uncomparable history | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 9c0e76570832 | 0 | /tmp/norm-remediation-u2-uncomparable-target-fix-receipt.json | | U2 no-cache target tests | target reachable/missing or forward with no tracking ref | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | fbb2aacb71ba | 0 | /tmp/norm-remediation-u2-no-cache-history-tests-receipt.json | | U2 offline resume tests | standalone/child local resume during origin outage | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 8d8585afec66 | 0 | /tmp/norm-remediation-u2-offline-resume-tests-receipt.json | | U2 offline resume fix | local-only receipt resume with target history and parent R0 checks | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | f81326bd0836 | 0 | /tmp/norm-remediation-u2-offline-resume-fix-receipt.json | | U2 no-cache R0 fix | compare reachable targets to registered R0 without cached ref | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 1ff6444d3352 | 0 | /tmp/norm-remediation-u2-precheck-r0-fix-receipt.json | | U2 reachable-missing-parent test | reject known-absent remote child target | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 5b5537aa0fc4 | 0 | /tmp/norm-remediation-u2-child-missing-parent-test-receipt-2.json | | U2 reachable-missing-parent fix | local child resume only falls back on remote outage | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 105901595805 | 0 | /tmp/norm-remediation-u2-child-missing-parent-fix-receipt.json | | U2 offline resume tests | root/child receipt import during origin outage | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | 8d8585afec66 | 0 | /tmp/norm-remediation-u2-offline-resume-tests-receipt.json | | U2 offline resume fix | local resume on R0/local registered parent | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | f81326bd0836 | 0 | /tmp/norm-remediation-u2-offline-resume-fix-receipt.json | | U2 review-proof tests | no-ref paths, auth failure, and parent identity | caefcb72 | test | pi, agy, cursor | 1 | pi / MiniMax-M3 | success | bc304111a47f | 0 | /tmp/norm-remediation-u2-final-review-tests-receipt.json | | U2 final offline guards | missing cache, auth failures, and parent SHA checks | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 471948c59cfa | 0 | /tmp/norm-remediation-u2-final-guards-receipt.json | | U2 precheck R0 implementation | compare remote advertisement without cached tracking ref | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 1ff6444d3352 | 0 | /tmp/norm-remediation-u2-precheck-r0-fix-receipt.json | ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | b5e23daed2f0ea46261979de1d62e4de0cfa88f9 | 01d9f50ee8aba1c40cb9b1769598698c91c30c4b | 2026-10-18T09:51:35Z | ## 证据(Evidence) <!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 --> | 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(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 | | 2026-10-18T13:01Z | `make test-governance` | 2e0da0dadb73db1b6a70f8545dbfd5df3a8e4d00 | 0 | SELF | a44db826c4be80fb | | 2026-10-18T13:40Z | `bash -n scripts/task.sh && make test-governance` | 9c0e7657083259759f5bd1bed6921471411dba2c | 0 | SELF | 872bbc3437ae83e3 | | 2026-10-18T14:41Z | `python3 -m unittest tests.test_evidence tests.test_task_recovery` | 1ff6444d3352c7e13c2b75cefe7d65c631181454 | 0 | SELF | bf12f030894e1530 | | 2026-10-18T14:40Z | `bash -n scripts/task.sh && make test-governance` | 1ff6444d3352c7e13c2b75cefe7d65c631181454 | 0 | SELF | 8e81c5353849fbd5 | | 2026-10-18T15:47Z | `python3 -m unittest tests.test_evidence tests.test_task_recovery` | 471948c59cfabff36c018f219998139fea3757fe | 0 | SELF | 7620bd82fed319e7 | | 2026-10-18T15:48Z | `bash -n scripts/task.sh && make test-governance` | 471948c59cfabff36c018f219998139fea3757fe | 0 | SELF | 5a3346fd73b80243 | ## 结果与验证 - 结果:U2 允许既有安全任务在真正远端不可用或目标跟踪 ref 缺失时继续有界本地工作;闭合任务和已证实的远端 target 回退/分叉均拒绝 `LOCAL_READY`。新任务和正式交付仍要求严格 READY/权威同步。 - 验证:host `python3 -m unittest tests.test_evidence tests.test_task_recovery` 79/79 通过(SELF,HEAD `1ff6444d3352c7e13c2b75cefe7d65c631181454`),覆盖 root/child 离线 task-resume 与严格 delivery 拒绝;host `bash -n scripts/task.sh && make test-governance` 490 项通过、18 项 skip(SELF,同 HEAD)。不含后续主脚本改动的 transport。local precheck no-cache 的 2 个红灯回归已由紧随其后的 `1ff6444d` 修复,三条 no-cache 状态单测 3/3 通过;最终候选完整测试仍待重跑。 - Review 发现与闭合:正确性 reviewer 发现闭合任务仍可在 precheck 收到 LOCAL_READY、以及可达但不可比较的 target 仍被当作离线;可靠性 reviewer 发现缓存 target 回退/分叉问题。已分别加入 test-first 回归并修复。测试 reviewer 建议的目标 ref 重现、receipt target branch 错配、远端分叉和不可比较 target 场景均已覆盖;项目规范/可维护性审阅无 finding。旧 CI run 3884 曾因变更外 Go 测试 `TestToolCallDeltaBeforeExecution` 失败,后续 `b492bea...` CI 通过;当前最终 head 的 GATE 与新候选完整 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 已逐项审阅,定向与完整治理测试均通过,但该结果不能证明提示具备工具级强制力。 - Review 路由记录:第一次 PR 对抗性 cross-model job 因 orchestrator 使用了不匹配的约束文件名,在 provider egress 前跳过,未把代码发送给外部模型;job 目录已清理。该审阅不计入 Review 覆盖,最终 head 使用本地 adversarial reviewer。 - 后续 Review 补充(覆盖前述状态):关闭任务 precheck、reachable-but-uncomparable/缺失 target、无 tracking ref 时需查询 advertised target、以及离线 `cmd_resume` 的 fetch-first 缺口,均已补 test-first 回归与修复。root 离线 resume 使用登记 R0;child resume 仅使用已登记、包含 `parent_head_sha` 的本地 parent 作为局部参考,delivery 仍 fetch-first。最终候选完整 Review 与 exact-head CI 待完成。 - 最新 child 边界修复:origin 可达但已登记 parent ref 缺失时,local resume 不再回退本地 parent;origin 确实不可查询时仍可使用本地 parent,并验证 `parent_head_sha`。 - 最新代码验证:host `tests.test_evidence tests.test_task_recovery` 80/80 通过,`bash -n scripts/task.sh && make test-governance` 491 项通过、18 项 skip,测试对象为 `105901595805cc5fa5ce19f1a6d48317b950d6af`。此前 CI green head 尚早于这些离线恢复修复,须以最终 PR head 重跑 GATE。 - 最新验证覆盖 80 个 evidence/recovery 测试与 491 项治理测试(18 项 skip),以上命令都成功;测试对象为当前实现代码 `105901595805cc5fa5ce19f1a6d48317b950d6af`。若后续只改任务卡,代码测试可复用但 CI head 会变,须在最终提交 head 重新等待 GATE。 - child 父目标补充:若 origin 可达但已登记 parent branch 不存在,local resume 返回 REMOTE_UNVERIFIED,不再使用本地 parent;只有远端确实不可查询时才回退本地 parent,并仍核验 `parent_head_sha`。delivery 仍保持 fetch-first。 - 最终边界修复及验证:`target_history` 仅将已识别的 DNS/连接类传输错误视为 outage;认证/权限/未知错误不再降级。无 tracking ref 时 precheck 以 active task R0 比较 advertised target;reachable target/parent 缺失或不可比均拒绝。child local resume 要求有效且本地可用的 `parent_head_sha`。去掉了无 tracking-ref 时会触发 strict-shell 退出的 merged-branch 查询。 - 最终已测生产代码 head `471948c59cfabff36c018f219998139fea3757fe`:host evidence+recovery 83/83 通过;`bash -n scripts/task.sh && make test-governance` 494 项通过、18 项 skip。随后 `105901595805cc5fa5ce19f1a6d48317b950d6af` 又通过 targeted unreachable-vs-reachable missing-parent 对照测试;其后未再改生产逻辑。exact final-head CI 与当前候选 Review 尚待重跑。 - 离线 resume 已端到端验证:root 与 child 任务在捕获有效 LOCAL_READY 收据后、origin 不可达时可用 `TASK_WORK_MODE=local make task-resume` 导入;child 仅使用本地已登记 parent 并核对 `parent_head_sha`。同一环境下 delivery resume 仍以 REMOTE_UNVERIFIED 拒绝。 - 验收补充:对照计划 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 单元内。 ## 合入与清理 - Review 记录:NOT_RUN(审阅智能体/平台身份、base/head、结论、问题闭合及重放依据) - 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测) - CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果) - 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验) - 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置) <!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. --> ```json { "summary_schema": 1, "source": "SELF", "timestamp": "2026-10-18T09:51:00.301997+00:00", "command": "make precheck", "exit_code": 0, "cwd": "/home/weichen/projects/Agent-System-Dev", "before_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9", "after_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9", "branch": "main", "target_branch": "main", "target_head": "b5e23daed2f0ea46261979de1d62e4de0cfa88f9", "root_target": "main", "immediate_target": "main", "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "output_tail": [ "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'", "[repo] branch=main head=b5e23daed2", "[remote] origin/main=b5e23daed2 ahead=0 behind=0", "[tree] clean submodules_drift=0 uninit=3", "[warn] 3 个子模块未初始化——构建/测试前需物化(不阻断写入)", "[worktrees] linked=11", "[recycle] merged un-recycled branches: feature/layered-python-env", "[initiatives] local cards (not authoritative): none", "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", "[facts] policy/facts.md 6 条事实均在有效期内", "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", "[R0] b5e23daed2(完整:b5e23daed2f0ea46261979de1d62e4de0cfa88f9)", "[worktree] before-sync: recursive component checks passed", "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch", "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'" ], "output_sha256": "d33d43216a047c642360e2afa99b4d72781f81698ca933e8687cc8127afde332", "receipt_sha256": "57db39b3f66caf60040427f50f45423bb2be546f4930be3696b8218f1c29f148", "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/57db39b3f66caf60040427f50f45423bb2be546f4930be3696b8218f1c29f148.json" } ``` | 同步(记录前对象) | 74bd05a876136ed8506332c76d535a6eb6356433 | f65d0169f61addfc0b2a21ef3813f38b55deb687 | 2026-10-18T10:58:22Z | <!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. --> ```json { "summary_schema": 1, "source": "SELF", "timestamp": "2026-10-18T11:14:41.060001+00:00", "command": "make precheck", "exit_code": 0, "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2", "before_head": "d6df427e39e2dd8f57d51d04318dedffff96523a", "after_head": "d6df427e39e2dd8f57d51d04318dedffff96523a", "branch": "feature/norm-remediation-u2", "target_branch": "main", "target_head": "ba81d638a6c845d0acde6896f4001bed096ba26c", "root_target": "main", "immediate_target": "feature/norm-remediation", "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "output_tail": [ "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2'", "[repo] branch=feature/norm-remediation-u2 head=d6df427e39", "[remote] origin/main=ba81d638a6 ahead=10 behind=12", "[tree] clean submodules_drift=0 uninit=0", "[worktrees] linked=11", "[recycle] merged un-recycled branches: feature/layered-python-env", "[initiatives] local cards (not authoritative): none", "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", "[facts] policy/facts.md 6 条事实均在有效期内", "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", "[target] ba81d638a6c845d0acde6896f4001bed096ba26c(observed; task initial baseline is reported separately)", "[task-state] registered=/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2 initial_base=b5e23daed2f0ea46261979de1d62e4de0cfa88f9", "[verdict] LOCAL_READY — existing task may continue authorized local work; final delivery still requires latest-target sync and checks", "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2'" ], "output_sha256": "9875968d327058ec22a07453a7c748f5c7b3557fdc8d05355b907b8458d8fa6d", "receipt_sha256": "00e543451c4435f6669c74d51a6a678db2cd40a0498a56ae377447044adce7f8", "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/00e543451c4435f6669c74d51a6a678db2cd40a0498a56ae377447044adce7f8.json" } ``` <!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. --> ```json { "summary_schema": 1, "source": "SELF", "timestamp": "2026-10-18T11:39:55.756192+00:00", "command": "python3 -m unittest tests.test_evidence tests.test_task_recovery", "exit_code": 0, "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u2", "before_head": "1e26b1cccdcfe8ac83a004915cad591d27eed91c", "after_head": "1e26b1cccdcfe8ac83a004915cad591d27eed91c", "branch": "feature/norm-remediation-u2", "target_branch": "main", "target_head": "ba81d638a6c845d0acde6896f4001bed096ba26c", "root_target": "main", "immediate_target": "feature/norm-remediation", "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "output_tail": [ "..................................................................", "----------------------------------------------------------------------", "Ran 66 tests in 18.749s", "", "OK" ], "output_sha256": "ed93f5670caa3576929bab841735c1ad873975985fcf1a6575ce88bad5510aa7", "receipt_sha256": "d08508edc20bdd35b340355c5b1a9295ddce5f866d1706f34afc8f76dcf1d939", "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/d08508edc20bdd35b340355c5b1a9295ddce5f866d1706f34afc8f76dcf1d939.json" } ``` ## 闭合记录(合入前折叠) - 本卡在 PR #618(https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/618)合入前闭合并归档,随该 PR 一同合入。 - 该 PR 的合并提交即本任务的落地记录。 - 合入后无需回填,也无需单独的闭合 PR。
weichen added 11 commits 2026-10-18 11:43:52 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-norm-remediation-u2.md; R0=b5e23daed2f0ea46261979de1d62e4de0cfa88f9.

Impact: task metadata only; the feature workspace starts at 01d9f50ee8.

Refs: .task/feature-norm-remediation-u2.md
Why: Specify the authorized continuation boundary before implementation begins.

Evidence: Task card records U2 files, hard stops, and acceptance criteria from the approved plan.

Impact: New-task remote triage and formal delivery gates remain unchanged.

Refs: Development Norm Remediation U2.
Why: Preserve the exact failure provenance and prepare a clean recovery record.

Evidence: The original agent-exec receipt shows overlapping edits in one Cursor session, terminal blocked, no transport, and no host fallback.

Impact: The next U2 work will use new run IDs and single-writer, short task packets.

Refs: Development Norm Remediation U2 recovery.
Why: include the current parent initiative baseline before verification.

Evidence: resolved feature/norm-remediation=74bd05a876136ed8506332c76d535a6eb6356433.

Impact: integrate parent initiative changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the integration baseline.

Evidence: SELF recursive component checks; sync_base=74bd05a876136ed8506332c76d535a6eb6356433; before_record=f65d0169f61addfc0b2a21ef3813f38b55deb687.

Impact: task metadata only.

Refs: .task/feature-norm-remediation-u2.md
Why: Preserve the validated LOCAL_READY resume receipt before starting a worker.
Evidence: make precheck returned LOCAL_READY; make task-resume imported the receipt.
Impact: SELF-only task metadata; delivery still requires authoritative sync and checks.
Refs: feature/norm-remediation-u2
Why: Preserve worker transport outcomes and host verification evidence for U2.
Evidence: 66 focused evidence and task-recovery tests passed on the recorded HEAD.
Impact: Records SELF verification and the observed worker edit-serialization deviation; formal review and CI remain NOT_RUN.
Refs: feature/norm-remediation-u2
Record final U2 focused test evidence
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m54s
0815ab9f19
Why: Preserve the final synchronized candidate's local verification receipt before closing its task card.
Evidence: python3 -m unittest tests.test_evidence tests.test_task_recovery passed 66 tests on the synchronized candidate.
Impact: SELF evidence only; independent review and CI remain required for formal delivery.
Refs: feature/norm-remediation-u2
weichen added 1 commit 2026-10-18 11:44:03 +00:00
Fold-close the task card before merge
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m52s
e022948747
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-norm-remediation-u2.md -> .task/archive/feature-norm-remediation-u2.md; status 已完成(合入前闭合); PR #618 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/618.
Impact: task metadata only; the card is archived within PR #618 and lands with its merge commit.
Refs: task.sh close --self
weichen added 6 commits 2026-10-18 12:15:17 +00:00
Record missing-ref coverage and final U2 tests
ci / test (pull_request) Failing after 6m30s
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
c88311bbf6
Why: Capture the final offline recovery cases and host verification on the PR candidate.
Evidence: 68 focused evidence and task-recovery tests pass; two broader task-start failures reproduce on the parent baseline.
Impact: Local evidence remains SELF; exact-head CI and independent review are still required.
Refs: U2 / PR #618
weichen added 3 commits 2026-10-18 12:52:23 +00:00
Record U2 review fixes and governance tests
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 8m10s
f2c24015b0
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
weichen added 2 commits 2026-10-18 13:08:41 +00:00
Record U2 final edge coverage and governance run
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m25s
b492bea7c3
Why: Preserve the final test matrix and review corrections for the U2 candidate.
Evidence: All 484 governance tests pass (18 skipped); the targeted evidence and recovery cases pass on the same implementation.
Impact: SELF evidence only; final-head CI and independent review remain required.
Refs: U2 / PR #618
weichen added 3 commits 2026-10-18 13:48:21 +00:00
Record U2 unreachable and uncomparable target distinction
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m29s
5b50d50b2a
Why: Preserve the final guard for a reachable advertised target whose commit object cannot be compared locally.
Evidence: The regression test, 74 focused evidence/recovery tests, and all 485 governance tests pass.
Impact: Network outages retain LOCAL_READY; known but unverified target history returns REMOTE_UNVERIFIED. Exact-head CI remains pending.
Refs: U2 / PR #618
weichen added 8 commits 2026-10-18 15:16:59 +00:00
Why: Preserve host verification and worker transport records for offline root and child task resume.
Evidence: 79 evidence/recovery tests passed; governance validation is being rerun on the final implementation candidate.
Impact: LOCAL_READY remains local-only; exact-head CI and final independent review remain required.
Refs: U2 / PR #618
Record U2 offline resume and parent-reference closure
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m46s
06b6ceea5f
Why: Preserve final root/child offline resume behavior and its reachable-parent-missing guard.
Evidence: 80 evidence/recovery tests and all 491 governance tests pass (18 expected skips) on the code candidate.
Impact: Local resume remains bounded; known missing remote parent refuses, network outage may use the registered local parent. Final-head CI remains required.
Refs: U2 / PR #618
weichen added 4 commits 2026-10-18 15:58:45 +00:00
Record final U2 recovery gates and test evidence
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Failing after 7m4s
398d12141c
Why: Preserve the final network-error classification, child-parent identity gate, and full governance test result.
Evidence: 83 focused tests and all 494 governance tests passed (18 skips) on the code candidate; child outage/missing-parent contrast tests passed.
Impact: New task and formal delivery gates remain strict; current PR head CI and final review are still required.
Refs: U2 / PR #618
weichen added 2 commits 2026-10-18 16:34:37 +00:00
Record U2 cached target review evidence
ci / test-pg (pull_request) Skipped
ci / svc-realcombo (pull_request) Skipped
ci / test (pull_request) Successful in 7m32s
b6e5bba91d
Why: Record the cached-target outage fix, host review, and final local verification for U2.\nEvidence: SELF receipts cover 84 focused tests and 495 governance tests; 18 checks skipped.\nImpact: Preserve exact-head delivery traceability without changing implementation.\nRefs: PR #618
weichen merged commit fe0f1cd464 into feature/norm-remediation 2026-10-18 16:43:37 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#618