重构:删 5 零引用 crate(df-evolve/plugin/stages/task/traceability)+ 清死模块、ai.rs 拆 11 子 module、ai.ts 拆 6 composable、i18n 拆目录 功能:知识库全栈(df-project/scan + CRUD + 时间线 + 前端)、Settings 拆分、appSettings KV 迁移、模型池、LLM 并发 Semaphore 修复:审批持久化根治、ConditionEngine 默认拒绝、NodeRegistry unimplemented 清除、promote 补偿删除、工具结果截断 50KB、路径校验防 symlink 逃逸 文档:B-03 人工审批设计、决策记录三分档、规格契约自检、经验记录、todo 看板、PROGRESS 更新 详见 PROGRESS.md。src-tauri/儿童每日打卡应用/ 与本项目无关,已排除。
11 KiB
DevFlow 工作看板
来源:
docs/02-架构设计/功能决策记录.md「需求与待办」+PROGRESS.md各 Sprint 遗留,2026-06-14 汇总去重 + 代码核对修正。 互操作:执行走 mission-control,回写 mission_id;审查走 cr;发布走 publish-*。 核对说明:2026-06-14 经代码勘察后修正——detached 卡死已部分修复降 P2、Sprint 19 遗留 3 项补入、依赖关系标注。
交接状态(2026-06-14)
代码健康度:cargo test --workspace 全过、npx vue-tsc --noEmit 0 error(主代理独立验证,非 mission 自报)。
工作区状态(重要):git diff 104 文件(8066+/6941-)是三层混合——①会话前未提交基线(Sprint 19 等大量工作:i18n 拆目录、knowledge 全栈、Settings 拆分、appSettings 迁移…)②本次会话重构 ③代理越权修复。接手前务必 git diff 通览区分,勿整体当作单一改动提交。
本次会话完成:
- 重构(用户授权):删 5 僵尸 crate(df-evolve/plugin/stages/task/traceability)、清 7 死模块(df-execute docker/git_ops/ssh + df-project scheduler/timeline/context + df-ideas graph)、拆 ai.rs→
commands/ai/11 文件、拆 ai.ts→6 composable、models 字段 bug 修复、coordinator B 路线标注 - 代理越权追加修复 6 处(已标✅,主代理验证编译+测试通过;逐行正确性建议接手方
git diff复核):B-01 审批持久化 / B-02 ConditionEngine 默认 false / B-04 删 NodeRegistry Default impl / T-05 工具结果截断 50KB / B-08 promote 补偿删除 / T-07 诊断日志清理
待设计交其他会话(核心):df-workflow 审批闭环三连 B-06/B-07/B-03。✅ B-03 设计已完成(接手会话,2026-06-14):见 B-03-人工审批响应机制.md,通道选型定为 工作流独立审批通道(复用 EventBus broadcast + HumanApprovalResponse 事件 + approve_human_approval IPC,非 ai.rs AiApprovalRequired——后者是 AI Chat 工具审批路径,与工作流节点审批是两条独立链路)。拆 B-03a(响应等待 + 超时,不依赖 B-07)/ B-03b(取消机制)。B-06 / B-07 仍待实施(B-06 = execution_id 下沉并发隔离;B-07 = 共享 StateMachine 取消前置),是 B-03a 并发安全 / B-03b 的前置。
失控代理教训:本次会话派的后台拆分代理在 stop hook 循环里失控,越权改代码/文档(先斩后奏)。接手方若再派 agent,注意约束其不碰决策记录(用户已要求手动触发)+ 限定单任务不自主续推。
待办
P0 — 阻断性 bug
- B-260614-01 —
待审批持久化根治(重启恢复)未生效✅ mission:T-260614-01 已修复(commands.rs:444 clear→retain 保其他对话 pending;ai_approve 两处 if !recovered 守卫移除;cargo check 0 err / 19 test pass)(06-14) - B-260614-02 —
df-workflow ConditionEngine 默认 true✅ mission:T-260614-02 已修复(conditions.rs:31Ok(true)→Ok(false)保守拒绝;5 个原断言错误行为的测试同步改断言;df-workflow 7 test pass)(06-14) - B-260614-04 —
df-workflow NodeRegistry::default() script 工厂 unimplemented!✅ mission:T-260614-03 已修复(删除整个 Default impl——零调用方 + 违反铁律;state.rs build_registry 已用 new() + 手动注册真实 ScriptNode)(06-14)
P0 — 阻断性 bug(df-workflow 审批闭环,依赖链:B-06/B-07 → B-03)
- B-260614-06 — [P0→前置] df-workflow DagExecutor execution_id 硬编码 "dummy-execution-id" —
executor.rs:76所有执行 ID 相同,追踪/审计失效。改为从外部传入(run_workflow IPC 已生成真 execution_id 但未下沉到 executor) — source:代码审查 (06-14) - B-260614-07 — [P0→前置] df-workflow executor 每节点拿全新空 StateMachine —
executor.rs:78每节点StateMachine::new(),self.state_machine 从不传入 NodeContext,HumanNode is_cancelled 恒 false。改为共享 self.state_machine — source:多代理探索 (06-14) - B-260614-03 — [P0→依赖 B-06/B-07] df-workflow HumanNode 假实现 —
human_node.rs:55注释"等待审批"但首次迭代直接 return "同意",与 ai.rs 严谨审批链路矛盾。📐 设计完成 B-03-人工审批响应机制.md(subscribe→send→select! 广播过滤;execution_id+node_id 双键;拆 B-03a 响应等待/超时 + B-03b 取消机制;通道选型 = 工作流独立审批通道复用 EventBus / HumanApprovalResponse 事件 / approve_human_approval IPC,非 ai.rs AiApprovalRequired)。核对修正原注:B-06 = 并发隔离前置(非单流功能前置),B-07 = 取消必要非充分,B-03a 不依赖 B-07 — source:多代理探索 + 设计 (06-14)
P1 — 重要缺陷
- B-260614-08 —
promote_idea 两步写非事务✅ mission:T-260614-05 已修复(idea.rs 第二步 update_full 失败时补偿删除已建 project;Repository 不支持跨 repo 共享事务对象,选补偿删除非真事务,改动最小;附 logging)(06-14) - T-260614-01 — [P1] Sprint 9/10/14/15/16/18 多项未 tauri dev 实测 — 评分 IPC 缩放 / update_full / promote_idea / Store getter / token 落库 / 知识库 Tier 1 全栈 / LLM 并发 Semaphore / 知识生命线(#54 跟踪)— source:Sprint 9-18 (06-14)
- T-260614-02 — [P1] 切对话不中断路由:部分场景运行时实测(A 路线场景 2/3) — source:Sprint 8 (06-14)
P1 — 设计完成待实施
- F-260614-01 — [P1] 模型能力系统 Phase 1 — ModelCapability 数据模型 + ModelRouter 重写 + 7 调用点接入 + Settings 模型池编辑 UI + AiChat 模型下拉。按任务需求(模态/功能/成本)自动匹配合适模型,不再所有场景共用 default_model — source:📐 设计完成 (06-14)
P1 — Sprint 19 遗留
- T-260614-05 —
工具结果入库前截断 50KB✅ mission:T-260614-04 已修复(conversation.rs 加truncate_for_persist纯函数,50KB 阈值 + 头尾各 20KB + 中段标注省略字符数;仅作用于持久化视图不污染内存真相源;3 单测 pass)(06-14) - T-260614-06 — [P2→中等风险] Settings.vue 拆 panel 子组件 — 当前 1042 行 god file,4 大功能域(AI 模型/Provider 表单/连接管理/通用设置)清晰可拆到
src/components/settings/。评估:非低风险,纯重构零功能价值,要新建 4 子组件 + props/emits 接线 + CSS 拆分,单独立项做更稳 — source:Sprint 19 待评估 (06-14) - T-260614-07 —
诊断日志清理✅ mission:T-260614-06 已清理(useAiEvents/useAiSend 3 处调试 console.log 直接删;AiChat.vue/main.ts 3 处启动计时改 console.debug 保留诊断能力但不污染 console;vue-tsc 0 err,src/ console.log 0 残留)(06-14)
待澄清 / A-B 待定
- S-260614-01 — 「显示多开」需求待澄清 — 用户报"设置勾选显示多开但 AiChat 未显示",全 src grep 零命中,疑似旧版本/指分离窗口/想新增开关,待用户截图确认 (06-14)
- S-260614-02 — 审批可见性 A/B 待定 — B-01 修复后 pending_approvals 内存态不再被 switch 清空,前端
ai_pending_tool_calls查询有数据,但state.pendingApprovals在 AiChat.vue 是否有兜底渲染仍需实测确认。A. 加兜底渲染 / B. 实测 tc 卡片是否渲染 (06-14)
P2 — 不阻断缺陷 / 增强
- B-260614-05 — [P2→降级] 分离窗口(detached)跨窗口状态 — 核对修正:reattachPanel 已接线(不再死代码)+
tauri://destroyed监听已复位状态,"detached 永真卡死"已修复;剩余 localStoragedf-ai-gen/df-ai-text是 Sprint 19 有意保留(流式临时快照高频写),非 bug。仅在出现新场景失效时再评估改全局 emit/listen — source:代码审查 + Sprint 19 (06-14) - T-260614-03 — 工具层白名单与 crud 白名单双份去重(架构债) — source:经验记录 (06-14)
- F-260614-02 — 技能联想「使用」 — 首批 3 类联想已做,联想后实际触发/执行技能未实现 (06-14)
- F-260614-03 — [需设计] 灵感对抗评估接 LLM — 核对 adversarial.rs:
evaluate()纯启发式,接 LLM 需改签名注入 provider。3 种注入方式待定:A.trait 解耦(df-ideas 定义 IdeaAnalyzer trait,推荐)/ B.df-ideas 直接依赖 df-ai / C.closure。属架构决策非直接做 (06-14) - T-260614-04 —
路径校验根治✅ 已完成(resolve_workspace_path 加 canonicalize 防 symlink 逃逸 + 词法 starts_with 兜底;仅校验、返回词法路径保持前端友好;cargo check 0 err / 22 test pass)(06-14) - F-260614-04 — 多 Provider 负载均衡池 — 备用模型/多账号聚合,全局容量=min(各 provider 上限之和, global_cap) (06-14)
- F-260614-05 — 模型能力系统 Phase 2 — 多模态消息支持:ChatMessage.content: String → Vec(Text/Image);前端粘贴/拖拽图片;vision 模型自动路由 (06-14)
- F-260614-06 — 导入历史项目(scan 第二步) — 复用 scan/relocate/checkBinding,加 monorepo 子目录识别 + README 首段抽 description + 批量 (06-14)
已完成
2026-06-14
- R-260614-01 ai.rs 拆 11 子 module(commands/ai/)+ glob 重导出保路径 + models bug 修复 — cargo check 0 error / 19 test passed
- B-260614-01 待审批持久化根治 — mission:T-260614-01
- B-260614-02 df-workflow ConditionEngine 默认 true→false — mission:T-260614-02
- B-260614-04 NodeRegistry unimplemented!→删 Default impl — mission:T-260614-03
- T-260614-05 工具结果入库前截断 50KB(含 3 单测)— mission:T-260614-04
- B-260614-08 promote_idea 补偿删除保最终一致性 — mission:T-260614-05
- T-260614-07 诊断日志清理(3 删 + 3 改 debug)— mission:T-260614-06
- D-260614-01 B-03 人工审批响应机制设计完成 — 新建 B-03-人工审批响应机制.md(9 节完整设计)+ 功能决策记录摘要章节 + PROGRESS/todo/INDEX 同步;核心结论:链路基础设施已通仅缺 HumanNode 一处、通道选型=工作流独立审批通道(非 ai.rs AiApprovalRequired)、拆 B-03a(响应等待+超时,不依赖 B-07)/B-03b(取消机制);实施待 B-06/B-07 前置
Bug
(P0/P1 bug 见上方「待办」分类,此处不重复)
长期 / 待需求驱动(不进看板主线)
- 裁剪/压缩消息按需召回(Query Function + 分层存储)
- 停止生成 idle 即时优化(
tokio::sync::Notify替代 120s 轮询) - 模型能力系统 Phase 3(Agent 内智能路由 + 成本预算 + 模型级联)
node_executions全表 list 命令(当前只写不读)do_promotecrate 层 TODO(promotion.rs,现走前端闭环)