新增: todo 标 Wave1 完成 + PROGRESS Sprint 22(B-03b 端到端补完)

- todo: B-03b/T-09/T-10/T-12 标完成,已完成区加 WF-E Wave1
- PROGRESS Sprint 22: 记录 Wave1 四任务 + B-03b agent 半成品教训 + Explore 审查语义缺陷盲区
This commit is contained in:
2026-06-14 15:31:49 +08:00
parent 89da9fad9a
commit 422cef00e5
2 changed files with 21 additions and 4 deletions

View File

@@ -691,6 +691,22 @@
**遗留 / 下一步**: B-03b 取消机制(`set_cancelled` + cancel IPC + 前端按钮待做T-09/T-10 非阻断记 todo架构前置 df-ai-coreF-07待设计解锁 F-03。 **遗留 / 下一步**: B-03b 取消机制(`set_cancelled` + cancel IPC + 前端按钮待做T-09/T-10 非阻断记 todo架构前置 df-ai-coreF-07待设计解锁 F-03。
### [Sprint 22] 2026-06-14 — Wave1 收尾清债workflow 推进 + 主代理补完 agent 半成品)
**工作内容**: Wave1 四任务并行 pipeline实现 + Explore 对抗审查,文件域隔离),收尾 Sprint 21 遗留的 B-03b 审批取消机制 + 三个 P2 清债项。每个 Agent 钉死约束(只碰白名单 + 禁碰决策记录/构想文档 + 禁自主续推 + cargo check 自验)。
**B-03b 审批取消端到端**commit 4aa689e: agent 初版完成三件基础设施(`set_cancelled` + cancel IPC + 前端取消按钮)但留**半成品**——`workflow_cancel_state` 全局孤立 StateMachine 实例IPC `set_cancelled` 写入后无法达运行中 HumanNode 的 `ctx.node_status`executor.state_machine 的 cloneB-07 仅 clone 传递未共享底层 HashMap。**Explore 审查 agent无 Edit 权限,只验编译 + 白名单)漏抓此语义缺陷**。主代理补完StateMachine 内部 `HashMap``Arc<Mutex<HashMap>>`clone 即共享底层)+ AppState `workflow_state_registry`execution_id→StateMachine+ run_workflow 注册执行器状态机/完成清理 + cancel IPC 经 execution_id 取共享引用 `set_cancelled` 直达 HumanNode `is_cancelled` 轮询。`clone_shares` 单测验证共享语义。state.rs/executor.rs/state.rs(tauri)/workflow.rs/lib.rs/project.ts/ProjectDetail.vue。
**T-09 级联删**commit 89da9fa: idea.rs:149 `delete``purge_with_descendants`防孤儿子记录1 行签名兼容。
**T-10 canonicalize**commit 89da9fa: 判定已解决——`normalize_path` 已含 canonicalize 优先 + 词法回退,`find_binding_conflict` 两端对称已用,零改动。
**T-12 df-ideas 死代码**commit 89da9fa: capture.rs 删 `CaptureInput`/`IdeaCapture` 死码,保留 `Idea`/`IdeaScores` 共享实体promotion/scoring/adversarial 内"两套 Recommendation/PromotionPolicy 死枚举"嫌疑未确认存在/保留为对外契约,本次未动待复查。
**验证**: cargo check 0 error / cargo test 全过0 failed`clone_shares` 新测)/ vue-tsc 0 error。
**教训**: workflow 对抗审查用 Explore agent 能防越权 + 验编译 + 验白名单,但抓不到"功能实际不工作"类语义缺陷IPC 写了读不到、共享未通)——这类需主代理读实现逻辑复核,不能只信审查 verdict。
**遗留 / 下一步**: Wave2 候选 F-07df-ai-core trait 下沉,解锁 F-03需先定 trait 边界T-12 df-ideas 其余嫌疑项待复查。
<!-- <!--
### [Sprint N] YYYY-MM-DD — 简述 ### [Sprint N] YYYY-MM-DD — 简述

View File

@@ -35,7 +35,7 @@
- [x] B-260614-06 — ~~execution_id 硬编码 "dummy-execution-id"~~ ✅ DagExecutor::new 接收 execution_id 下沉 NodeContextworkflow.rs 传真 ID(06-14) - [x] B-260614-06 — ~~execution_id 硬编码 "dummy-execution-id"~~ ✅ DagExecutor::new 接收 execution_id 下沉 NodeContextworkflow.rs 传真 ID(06-14)
- [x] B-260614-07 — ~~每节点全新空 StateMachine~~ ✅ NodeContext.node_status 共享 self.state_machine.clone()is_cancelled 可工作)(06-14) - [x] B-260614-07 — ~~每节点全新空 StateMachine~~ ✅ NodeContext.node_status 共享 self.state_machine.clone()is_cancelled 可工作)(06-14)
- [x] B-260614-03a — ~~HumanNode 假返回"同意"~~ ✅ execute 重写 subscribe→send→select!(响应/超时/取消 + execution_id+node_id 双键 + Lagged 容忍),照 [B-03 设计](./02-架构设计/B-03-人工审批响应机制.md)7 单测eventbus 删死代码 (06-14) - [x] B-260614-03a — ~~HumanNode 假返回"同意"~~ ✅ execute 重写 subscribe→send→select!(响应/超时/取消 + execution_id+node_id 双键 + Lagged 容忍),照 [B-03 设计](./02-架构设计/B-03-人工审批响应机制.md)7 单测eventbus 删死代码 (06-14)
- [ ] B-260614-03b — **[P2→待做]** HumanNode 取消机制 — StateMachine::set_cancelled + cancel_workflow_node IPC + 前端取消按钮B-07 已满足,缺 setter/IPC/UI 三件)— source:B-03 设计第七节 (06-14) - [x] B-260614-03b — ~~HumanNode 取消机制~~ ✅ WF-E 完成set_cancelled + cancel_workflow_node IPC + 前端取消按钮 + **端到端补完**StateMachine 内部 Arc<Mutex> 共享 + execution_id 注册表)。**注**agent 初版留半成品workflow_cancel_state 全局孤立实例IPC 写了读不到Explore 审查漏抓语义缺陷),主代理补完 IPC→共享 HashMap→HumanNode is_cancelled 真通clone_shares 单测验证共享语义 (06-14, commit 4aa689e)
### P1 — 重要缺陷 ### P1 — 重要缺陷
@@ -68,14 +68,14 @@
- [ ] F-260614-04 — 多 Provider 负载均衡池 — 备用模型/多账号聚合,全局容量=min(各 provider 上限之和, global_cap) (06-14) - [ ] F-260614-04 — 多 Provider 负载均衡池 — 备用模型/多账号聚合,全局容量=min(各 provider 上限之和, global_cap) (06-14)
- [ ] F-260614-05 — 模型能力系统 Phase 2 — 多模态消息支持ChatMessage.content: String → Vec<ContentPart>(Text/Image);前端粘贴/拖拽图片vision 模型自动路由 (06-14) - [ ] F-260614-05 — 模型能力系统 Phase 2 — 多模态消息支持ChatMessage.content: String → Vec<ContentPart>(Text/Image);前端粘贴/拖拽图片vision 模型自动路由 (06-14)
- [ ] F-260614-06 — 导入历史项目scan 第二步) — 复用 scan/relocate/checkBinding加 monorepo 子目录识别 + README 首段抽 description + 批量 (06-14) - [ ] F-260614-06 — 导入历史项目scan 第二步) — 复用 scan/relocate/checkBinding加 monorepo 子目录识别 + README 首段抽 description + 批量 (06-14)
- [ ] T-260614-09 — **[P2→非阻断]** idea.rs:149 立项回滚补偿删走 `state.projects.delete()` 物理删不级联 — 当前删刚 insert 的孤儿项目(无子记录)安全;若该路径在项目已有子记录时复用会留孤儿 tasks/branches。建议改 `purge_with_descendants` — source:Workflow A 验证 (06-14) - [x] T-260614-09 — ~~idea.rs 物理删不级联~~ ✅ WF-E 完成idea.rs:149 delete→purge_with_descendants1 行,签名兼容)(06-14, commit 89da9fa)
- [ ] T-260614-10 — **[P2→可选]** project.rs findBinding_conflict 内 normalize_path 同步 canonicalize — 开销小单路径且用于比较spawn_blocking 收益低;批量绑定场景出现阻塞再评估包 — source:Workflow B 验证 (06-14) - [x] T-260614-10 — ~~findBinding canonicalize~~ ✅ WF-E 判定已解决(normalize_path 已含 canonicalize 优先 + 词法回退find_binding_conflict 两端对称已用,无需重复加;零改动)(06-14, commit 89da9fa)
- [ ] F-260614-07 — **[架构前置]** df-ai-core trait 下沉拆 crate — F-03 注入方式前置(决策记录已收敛:原 F-03 的 A/B/C 选型作废,统一为全局 AI trait 下沉独立 cratedf-ideas/df-nodes 依赖 trait 而非 df-ai 具体 impl。解锁 F-03 — source:功能决策记录 (06-14) - [ ] F-260614-07 — **[架构前置]** df-ai-core trait 下沉拆 crate — F-03 注入方式前置(决策记录已收敛:原 F-03 的 A/B/C 选型作废,统一为全局 AI trait 下沉独立 cratedf-ideas/df-nodes 依赖 trait 而非 df-ai 具体 impl。解锁 F-03 — source:功能决策记录 (06-14)
- [ ] F-260614-08 — 决策治理产品化 — 活契约/规格契约自检机制产品化为可操作功能(当前散落文档机制) — source:功能决策记录缺口 - [ ] F-260614-08 — 决策治理产品化 — 活契约/规格契约自检机制产品化为可操作功能(当前散落文档机制) — source:功能决策记录缺口
- [ ] F-260614-09 — 项目 status 字段治理 — status 状态机规范化planning/active/archived 等枚举约束) — source:功能决策记录缺口 - [ ] F-260614-09 — 项目 status 字段治理 — status 状态机规范化planning/active/archived 等枚举约束) — source:功能决策记录缺口
- [ ] F-260614-10 — 知识库 MCP Server + Tier 2/3 — 对外 MCP 暴露 + 分层存储(当前仅 Tier 1 全栈) — source:PROGRESS Sprint15 - [ ] F-260614-10 — 知识库 MCP Server + Tier 2/3 — 对外 MCP 暴露 + 分层存储(当前仅 Tier 1 全栈) — source:PROGRESS Sprint15
- [ ] T-260614-11 — 全局#6 条件表达式引擎升级 — df-workflow conditions 仅支持 true/false 字面量,升级为真表达式求值 — source:PROGRESS 全局问题 - [ ] T-260614-11 — 全局#6 条件表达式引擎升级 — df-workflow conditions 仅支持 true/false 字面量,升级为真表达式求值 — source:PROGRESS 全局问题
- [ ] T-260614-12 — df-ideas 死代码/双套抽象组capture/graph 死码、两套 RecommendationPromotionPolicy 死枚举、Idea 构造分散)— 需重审去留 — source:PROGRESS Sprint12 - [x] T-260614-12 — ~~df-ideas 死代码~~ ✅ WF-E 部分完成capture.rs 删 CaptureInput/IdeaCapture 死码,保留 Idea/IdeaScores 共享实体promotion/scoring/adversarial 内"两套 Recommendation/PromotionPolicy 死枚举"嫌疑 agent 未确认存在/保留为对外契约,本次未动,待复查)(06-14, commit 89da9fa)
## 已完成 ## 已完成
@@ -93,6 +93,7 @@
- [x] WF-B 阻塞去重Sprint 20 ③④⑤)— spawn_blocking 三处+补漏 + normalize_path 抽公共 + 复用 is_allowed_columncommit d5a6417 - [x] WF-B 阻塞去重Sprint 20 ③④⑤)— spawn_blocking 三处+补漏 + normalize_path 抽公共 + 复用 is_allowed_columncommit d5a6417
- [x] WF-C 前端Sprint 20 ⑥⑦⑧)— 扫描文案 i18n + parseStack 抽公共 + 8 处 alert/confirm 换组件commit 02ff88f - [x] WF-C 前端Sprint 20 ⑥⑦⑧)— 扫描文案 i18n + parseStack 抽公共 + 8 处 alert/confirm 换组件commit 02ff88f
- [x] WF-D 审批闭环B-06/B-07/B-03a— execution_id 下沉 + 共享状态机 + HumanNode select! 实现commit 22964a2 - [x] WF-D 审批闭环B-06/B-07/B-03a— execution_id 下沉 + 共享状态机 + HumanNode select! 实现commit 22964a2
- [x] WF-E Wave1 收尾清债commit 4aa689e + 89da9fa— B-03b 审批取消端到端StateMachine Arc<Mutex> 共享 + execution_id 注册表,**主代理补完 agent 半成品**agent 初版 workflow_cancel_state 全局孤立实例写了读不到Explore 审查漏抓语义缺陷)+ T-09 立项回滚级联删delete→purge_with_descendants+ T-10 判定已解决normalize_path 已 canonicalize零改+ T-12 df-ideas 清 capture.rs 死码cargo check / test含 clone_shares/ vue-tsc 全绿
## Bug ## Bug