From 2234af476a552b9207c5ddf6839484bbfa89cf01 Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 15 Sep 2026 01:04:32 +0000 Subject: [PATCH] docs(ops): claim M3 U8 TaskRun RunManifest mutex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Register feature/taskrun-runmanifest on the taskrun mutex so U8 can start without occupying chat/intent or writing U9–U12. Co-authored-by: Cursor --- .doc/ops/CURRENT.md | 7 ++- .../2026-09-15-taskrun-runmanifest-u8.md | 60 +++++++++++++++++++ 2 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 .doc/ops/short-term/2026-09-15-taskrun-runmanifest-u8.md diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 6611776c..cc24229d 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -1,11 +1,11 @@ # 当前焦点 -**更新**: 2026-09-14 +**更新**: 2026-09-15 **production_ready**: no(`CHAT-INTENT-STATE` 等无关 blocker 仍开放。文档账本运行时 UI Round20 **PASS**,不把 fallback change report 写成完整 PI,也不把本轮写成全仓可发布) ## 焦点 -1. **DOC-RELIABILITY**: [M2 已签,继续 M3](../test-reports/2026-09-14-document-reliability-m2-test-report.md)(`refactor/document-reliability-pilot`;M2 最后一句 **继续 M3**;未开工 U8–U12) +1. **DOC-RELIABILITY**: [M3 U8 TaskRun/RunManifest](short-term/2026-09-15-taskrun-runmanifest-u8.md)(`feature/taskrun-runmanifest`;权威停走门 [M2 继续 M3](../test-reports/2026-09-14-document-reliability-m2-test-report.md);**未签字前禁止 U9–U12**) 2. **CHAT-INTENT**: [对话意图运行时状态](../audit/2026-09-13-conversation-intent-runtime-state.md)(`fix/conversation-intent-state`;与文档账本运行时无关) 3. **CHAT**: [对话历史刷新](../audit/2026-09-13-chat-history-refresh-disappears.md)(认领仍 `in_progress`;gap 行已 PASS,以代码/handoff 为准收敛) @@ -13,6 +13,7 @@ | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| +| Cursor | taskrun-runmanifest-u8 | feature/taskrun-runmanifest | - | taskrun | in_progress | | Cursor | document-reliability-m1-live-and-m2 | refactor/document-reliability-pilot | .worktrees/refactor-document-reliability-pilot | workspace | done | | Codex | module-decoupling-remediation-plan | feature/module-decoupling-remediation | .worktrees/feature/module-decoupling-remediation | architecture-docs | done | | verifier_antigravity | controlled-content-ui-acceptance | fix/controlled-content-ui-acceptance | .worktrees/fix-controlled-content-ui-acceptance | document-content-ui-acceptance | done | @@ -54,7 +55,7 @@ > 新任务开始前登记。`branch` 必须为 `feature/` 或 `fix/`,**禁止** `dev` / `test` / `main`。同一 `mutex` 同时仅一个 `in_progress`。 > workflow-plan 409 与治理鉴权 G1–G5 已收口(见 [test-report](../test-reports/2026-09-14-governance-action-level-authz-test-report.md))。禁止终止或改写项目 143。 -> `document-reliability-pilot` M2 已签(继续 M3)。禁止 worktree 内 `env-service`。项目 143 只读,禁止终止。未签字前禁止 U8–U12。 +> `document-reliability-pilot` M2 已签(继续 M3)。U8 认领 `mutex=taskrun`。禁止 worktree 内 `env-service`。项目 143 只读,禁止终止。未签字前禁止 U9–U12。 ## 集成槽位 diff --git a/.doc/ops/short-term/2026-09-15-taskrun-runmanifest-u8.md b/.doc/ops/short-term/2026-09-15-taskrun-runmanifest-u8.md new file mode 100644 index 00000000..a623aaae --- /dev/null +++ b/.doc/ops/short-term/2026-09-15-taskrun-runmanifest-u8.md @@ -0,0 +1,60 @@ +--- +title: "M3 U8 TaskRun 终态与 RunManifest" +status: in_progress +created: 2026-09-15 +updated: 2026-09-15 +owner: Cursor +branch: feature/taskrun-runmanifest +worktree: "-" +mutex: 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. [x] 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 清单项保持未勾 + +## 相关链接 + +- Checklist: [2026-09-14-module-decoupling-refactor-acceptance.md](../checklists/2026-09-14-module-decoupling-refactor-acceptance.md) +- Remediation: [2026-09-14-module-decoupling-refactor-plan.md](../../remediation/2026-09-14-module-decoupling-refactor-plan.md) +- 权威停走门: [2026-09-14-document-reliability-m2-test-report.md](../../test-reports/2026-09-14-document-reliability-m2-test-report.md)(继续 M3) +- Test report: (本轮结束后回链) + +## 证据 / 备注 + +未签字前禁止 U9–U12。合入 + 容器测占集成槽,主仓 `./scripts/env-service.sh dev rebuild`。