Files
Agent-System/.doc/archive/ops/2026-09-15-taskrun-runmanifest-u8.md
T
weichenandCursor f4dfada9ae docs(test): M3 U8 TaskRun RunManifest 验收报告
隔离库双 pool、目标包 race、arch-check、web 与 rebuild 证据齐全;真实 PI 未测。最后一句:继续 U9。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 02:17:37 +00:00

2.6 KiB
Raw Blame History

title, status, created, updated, owner, branch, worktree, mutex
title status created updated owner branch worktree mutex
M3 U8 TaskRun 终态与 RunManifest done 2026-09-15 2026-09-15 Cursor feature/taskrun-runmanifest - taskrun

M3 U8 TaskRun 终态与 RunManifest

目标

TaskRun 终态在同一 UoW 内 CAS 写入唯一合法状态,并持久化类型化 RunManifest;重复 finalize / cancel race / SSE 断线不得产生第二条助手消息或第二份 artifact;workspace 清理仅在 verified receipt 之后。

范围

  • Goose 00037 task_run_manifests + finalizing 状态
  • internal/taskrun RunManifest 规范字节 / SHA / members
  • taskrun.Commands.Finalize 唯一 finalize 命令;server 变薄
  • ctxmgr.FinalizeAssistantTaskMessage 仅此写路径加入 UoW
  • workspace 清理门禁;ReadArtifact 替代 Join(workDir, "output.md")
  • BackendRef 服务端 policy;隔离库并发测试;占槽 rebuild;U8 报告

非目标

  • U9 backfill / corpus / 八轨 / 销毁
  • M4–M6;整支 merge FAV;启用 FAV_DEGRADED_READ
  • 终止或改写项目 143
  • 动 chat / intent 刷新任务
  • worktree 内 env-service

步骤

  1. CURRENT 认领 mutex=taskrun;从本地 dev 开 feature/taskrun-runmanifest
  2. Goose 00037 Up+Down;module-boundaries.yaml 表属主
  3. Finalize 同 UoW:CAS + 助手 turn + manifest + envelope/staging
  4. 清理门禁与 server 去路径、BackendRef
  5. 隔离库双 pool / race;占槽 rebuild;报告最后一句只能「继续 U9」或「停止扩面」

验收标准

  • 重复 finalize:同一 status、同一 manifest SHA、助手消息 1 条、envelope/staging 不加倍
  • finalize ∥ cancel:恰好一个合法终态
  • SSE done 不出现在 TX 失败路径;commit 前断线重试不第二 turn
  • 无 verified receipt 则 cleanup FAIL;有 receipt 则可清 workspace 且 staging 仍能取出原 SHA
  • 报告最后一句为「继续 U9」或「停止扩面」;U9 清单项保持未勾

相关链接

证据 / 备注

未签字前禁止 U9–U12。合入 + 容器测占集成槽,主仓 ./scripts/env-service.sh dev rebuild。