Files
DevFlow/docs/todo.md
绝尘 d9d4a0fcf6 新增: todo 标 Workflow A/B/C/D 完成 + Sprint 20 批1/2/3 收尾
B-06/B-07/B-03a 标(commit 22964a2),B-03b 取消机制待做。已完成段补 WF-A/B/C/D 四条(commit 3f0839a/d5a6417/02ff88f/22964a2)
2026-06-14 14:28:24 +08:00

12 KiB
Raw Blame History

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 僵尸 cratedf-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-14B-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 保其他对话 pendingai_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:31 Ok(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)

已完成 — df-workflow 审批闭环Workflow D, commit 22964a2

  • B-260614-06 — execution_id 硬编码 "dummy-execution-id" DagExecutor::new 接收 execution_id 下沉 NodeContextworkflow.rs 传真 ID(06-14)
  • B-260614-07 — 每节点全新空 StateMachine NodeContext.node_status 共享 self.state_machine.clone()is_cancelled 可工作)(06-14)
  • B-260614-03a — HumanNode 假返回"同意" execute 重写 subscribe→send→select!(响应/超时/取消 + execution_id+node_id 双键 + Lagged 容忍),照 B-03 设计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)

P1 — 重要缺陷

  • B-260614-08 — promote_idea 两步写非事务 mission:T-260614-05 已修复idea.rs 第二步 update_full 失败时补偿删除已建 projectRepository 不支持跨 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 file4 大功能域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 保留诊断能力但不污染 consolevue-tsc 0 errsrc/ 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 永真卡死"已修复;剩余 localStorage df-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.rsevaluate() 纯启发式,接 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)
  • T-260614-09 — [P2→非阻断] idea.rs:149 立项回滚补偿删走 state.projects.delete() 物理删不级联 — 当前删刚 insert 的孤儿项目(无子记录)安全;若该路径在项目已有子记录时复用会留孤儿 tasks/branches。建议改 purge_with_descendants — source:Workflow A 验证 (06-14)
  • T-260614-10 — [P2→可选] project.rs findBinding_conflict 内 normalize_path 同步 canonicalize — 开销小单路径且用于比较spawn_blocking 收益低;批量绑定场景出现阻塞再评估包 — source:Workflow B 验证 (06-14)

已完成

2026-06-14

  • R-260614-01 ai.rs 拆 11 子 modulecommands/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-人工审批响应机制.md9 节完整设计)+ 功能决策记录摘要章节 + PROGRESS/todo/INDEX 同步;核心结论:链路基础设施已通仅缺 HumanNode 一处、通道选型=工作流独立审批通道(非 ai.rs AiApprovalRequired、拆 B-03a响应等待+超时,不依赖 B-07/B-03b取消机制 B-06/B-07 前置已由 Workflow D 完成B-03a 已实施commit 22964a2
  • WF-A 数据安全Sprint 20 ①②)— AI delete→soft_delete + restore/purge/list_trash 三工具 + list_projects 排除回收站commit 3f0839a
  • WF-B 阻塞去重Sprint 20 ③④⑤)— spawn_blocking 三处+补漏 + normalize_path 抽公共 + 复用 is_allowed_columncommit d5a6417
  • WF-C 前端Sprint 20 ⑥⑦⑧)— 扫描文案 i18n + parseStack 抽公共 + 8 处 alert/confirm 换组件commit 02ff88f
  • WF-D 审批闭环B-06/B-07/B-03a— execution_id 下沉 + 共享状态机 + HumanNode select! 实现commit 22964a2

Bug

P0/P1 bug 见上方「待办」分类,此处不重复)

长期 / 待需求驱动(不进看板主线)

  • 裁剪/压缩消息按需召回Query Function + 分层存储)
  • 停止生成 idle 即时优化(tokio::sync::Notify 替代 120s 轮询)
  • 模型能力系统 Phase 3Agent 内智能路由 + 成本预算 + 模型级联)
  • node_executions 全表 list 命令(当前只写不读)
  • do_promote crate 层 TODOpromotion.rs现走前端闭环