新增: todo 补 B-03b 复核后续 5 项(R1 转换图双踩真 bug + R2 取消测试 + 3 低优)

B-03b 端到端补完后独立复核:①Cancelled 未纳入 is_legal 转换图,executor set_failed 在已取消节点 bail 致工作流异常终止(补完时漏验 HumanNode→executor Err 处理链);②零端到端取消测试
This commit is contained in:
2026-06-14 16:02:03 +08:00
parent bf8e105440
commit 6a6f9829e3

View File

@@ -51,6 +51,16 @@
- [ ] AR-10「想法→灵感」迁移残留aiTool.ts/ideas.ts/projectDetail.ts/idea.rs 大量"想法"文案)— 跨前后端 — 详见 [审查第六章](./02-架构设计/aichat-review-2026-06-14.md)
- [ ] AR-11 数据变更联动刷新推荐方案A 后端 emit + store 监听)— 跨层 — 详见 [审查第五章](./02-架构设计/aichat-review-2026-06-14.md)
### 🟡 B-03b 复核后续独立深度复核2026-06-14
> B-03b 端到端补完commit 4aa689e后独立复核发现 2 加重 + 3 低优。**①为真实 bug**:取消链 IPC→set_cancelled→HumanNode is_cancelled→Err 通了,但 HumanNode 返 Err 后 executor run:115 `set_failed` 走 transition而 Cancelled 不在 `is_legal` 转换图 → bail → 工作流因状态转换错误异常终止(非优雅标记取消)。补完时只验 IPC→HumanNode 链,漏验 HumanNode→executor Err 处理。
- [ ] B-03b-R1 — **[P1]** Cancelled 未纳入转换图双踩 — executor Err 处理 `set_failed(node)` 在节点已 Cancelled 时 `transition(Cancelled→Failed)` 非法 bail。修法二选一A. `is_legal` 加 Cancelled 为终态Cancelled→Failed/Completed 合法或显式拒绝并特殊处理)/ B. executor Err 处理先 `is_cancelled` 检测,已取消则跳过 set_failed 改 emit 取消事件。推荐 B取消语义清晰不动转换图
- [ ] B-03b-R2 — **[P1]** 零端到端取消测试 — clone_shares 仅验共享语义,缺 IPC set_cancelled→HumanNode is_cancelled 命中→Err→executor 处理 全链测试;测试夹具不支持共享 StateMachine 验证(需构造共享实例 + 并发 set_cancelled
- [ ] B-03b-R3 — **[P2 低优]** std::sync::Mutex 取舍 — 当前选 std快速临界区纳秒级若 async 持锁场景增多评估换 tokio::sync::Mutex
- [ ] B-03b-R4 — **[P2 低优]** set_* 改 &self 后调用方残留 &mut 冗余清理
- [ ] B-03b-R5 — **[P2 低优]** `lock().expect()` poison panic 漏清理poison 时直接 panic 无优雅降级)
### ✅ 已完成 — df-workflow 审批闭环Workflow D, commit 22964a2
- [x] B-260614-06 — ~~execution_id 硬编码 "dummy-execution-id"~~ ✅ DagExecutor::new 接收 execution_id 下沉 NodeContextworkflow.rs 传真 ID(06-14)