From 867d51501560dee30124ff8f79fabefc67b0c84d Mon Sep 17 00:00:00 2001 From: yibo Date: Sat, 22 Aug 2026 15:06:31 +0800 Subject: [PATCH] docs(33): 收口两条剩余 checklist——真实回归已验证、validator.json 复查过不是同类问题 --- docs/todo/system-design/33-needs-gate-role-filter-bug.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/todo/system-design/33-needs-gate-role-filter-bug.md b/docs/todo/system-design/33-needs-gate-role-filter-bug.md index 35d3b65..af89b4f 100644 --- a/docs/todo/system-design/33-needs-gate-role-filter-bug.md +++ b/docs/todo/system-design/33-needs-gate-role-filter-bug.md @@ -143,11 +143,23 @@ T-mt25ecbd 那次修复要守住的保护——好在跑单测立刻炸了,没 的 `needs:artifact` 依旧受硬闸门保护(未被这次改动削弱) - [x] 全量单测 `npx vitest run server/tests/unit`:**998/998 通过**(含新增用例, 零回归) +- [x] (2026-08-22 追加)用真实回归任务验证 `org-coder-validator` 不再假阳性 + blocked——**已验证**:直接把这次真实卡住的那条 run 的 `graph_edge_contracts` + 行(`log` 那条)手动 patch 成 `required=0`,重试 `org-coder-validator` 并 + 恢复自动驱动,节点从 `blocked` 转 `success`,root run 最终收敛到 + `completed`。唯一没有走到的是"由 `workgraph-planning` 全新规划一张图, + 模板里 `{kind:'log',required:false}` 的对象写法被正确解析落库"这一环—— + 理论上没有风险(`validator.json` 已经在用同样的对象写法且工作正常,见下一条), + 但没有用一次全新任务端到端跑过,只是手动 patch 了已有的行。 +- [x] (2026-08-22 追加)`validator.json` 的 `needs:[{kind:'artifact',required:false}]` + 复查过:**不是同一类潜伏问题,是刻意设计**。它的 `dataContractNotes` 原文 + 写明:被验的 `artifact` 由**另一张图**(org-coder 等)产出,这里的 `needs` + 只是文档意图声明,产物索引按 `company+task` 检索、不按图/边——`required:false` + 是因为这条 `artifact` 依赖压根不指望靠这条边找到实例(找的时候看的是任务级 + 共享索引,边上声明与否不影响检索结果),跟 33 号文档这次的 bug(`log` 声明了 + 却永远不会被索引到)成因完全不同,不用动。 ## 四、留待下次 -- [ ] 用真实回归任务(同 31 号文档 §一的路数,起一条新 e2e-demo 任务)验证 - `org-coder-validator` 不再假阳性 blocked——这次改动只有单测覆盖,还没有 - 真实 LLM 跑过的证据 -- [ ] `validator.json` 的两条 `needs:[{kind:'artifact',required:false}]` 是否也该 - 核对一遍「这个 kind 到底会不会被索引到」,避免同一类问题在别的模板里潜伏 +- [ ] "由 `workgraph-planning` 全新规划一张图" 这一环的端到端证据仍然缺失 + (见上面第五条最后一句)——理论风险低,但没有真跑过 -- libgit2 0.21.4