新增: todo 补 aichat 审查报告 11 项(AR-1~11)+ S-02/B-05 去重标注

修审查→执行断点:aichat-review-2026-06-14.md 11 项原仅留 memory 指针未回流看板,今按 P0/P1/P2 补入;S-02 标与 AR-3 重叠、B-05 标与 AR-M5 同类
This commit is contained in:
2026-06-14 15:43:59 +08:00
parent 422cef00e5
commit f0c525d0e7

View File

@@ -30,6 +30,27 @@
- [x] 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)
- [x] B-260614-04 — ~~df-workflow NodeRegistry::default() script 工厂 unimplemented!~~ ✅ mission:T-260614-03 已修复(删除整个 Default impl——零调用方 + 违反铁律state.rs build_registry 已用 new() + 手动注册真实 ScriptNode(06-14)
### 🔴 aichat 审查报告待修项(来源:[aichat-review-2026-06-14.md](./02-架构设计/aichat-review-2026-06-14.md) 第八章)
> 2026-06-14 aichat 模块代码审查产出,原仅留 memory 指针未回流看板,今补入。去重:**S-02 审批可见性 ⊂ AR-3**(修 AR-3 卡片可读性直接缓解"看不到审批批什么"**B-05 detach = AR-M5 同类**(跨窗口 state 隔离aichat 审查描述更深)。
**P0用户可感硬伤**
- [ ] AR-1 流式 Markdown 全量重解析renderMd 缓存 key=完整文本,每 delta 全量 marked.parse+sanitize长回复主线程阻塞掉帧— AiChat.vue:343-354 — ⚠️复杂,需先设计增量渲染/流式纯文本态+rAF
- [ ] AR-2 审批态新建对话永久卡死ai_conversation_create 缺 generating 守卫,直接 clear session审批返回 Err→generating 永不复位→面板卡死需重启)— commands.rs:362-375
- [ ] AR-3 审批卡片不可读(后端 reason 两句固定模板不含对象名 + 前端 id/project_id 裸值 + resultSummary 缺 delete/restore/purge 分支)— audit.rs:179-182 + ToolCard.vue:149-169,272-288
- [ ] AR-4 create_project 双审双 APIAI schema 仅 name/description 缺 path/stack比 IPC 接口窄触发二次确认)— tool_registry.rs:148
**P1**
- [ ] AR-5 审批态 stop 无本地兜底stopChat 只 await 不复位 streamingAiCompleted 竞态丢失则卡死)— useAiSend.ts:111-113
- [ ] AR-6 Low 工具失败语义冲突emit AiError 置 streaming=false 但 agentic loop 续跑,残留文本 flush 又"完成",状态紊乱)— audit.rs + agentic.rs:195
- [ ] AR-7 clean 无 UI 入口(后端 ai_chat_clear 有但零组件调用 + 只清内存不删 DB— AiChat.vue + useAiPanel.ts:89-96
**P2**
- [ ] AR-8 delta 节流+滚动(后端无 50ms 合批/前端无 rAF叠加 AR-1 掉帧)— stream_recv.rs + AiChat.vue:625-633
- [ ] AR-9 friendlyError 硬编码中文绕 i18nen 用户见中文)— useAiEvents.ts:42-48
- [ ] 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)
### ✅ 已完成 — df-workflow 审批闭环Workflow D, commit 22964a2
- [x] B-260614-06 — ~~execution_id 硬编码 "dummy-execution-id"~~ ✅ DagExecutor::new 接收 execution_id 下沉 NodeContextworkflow.rs 传真 ID(06-14)
@@ -56,11 +77,11 @@
### 待澄清 / 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)
- [ ] S-260614-02 — 审批可见性 A/B 待定 — B-01 修复后 pending_approvals 内存态不再被 switch 清空,前端 `ai_pending_tool_calls` 查询有数据,但 `state.pendingApprovals` 在 AiChat.vue 是否有兜底渲染仍需实测确认。A. 加兜底渲染 / B. 实测 tc 卡片是否渲染**去重**:与 AR-3 审批卡片可读化重叠AR-3 修完reason 拼对象名 + id 特化 + 卡片完整)后改实测重评 (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)
- [ ] B-260614-05 — **[P2→降级]** 分离窗口detached跨窗口状态 — **核对修正**reattachPanel 已接线(不再死代码)+ `tauri://destroyed` 监听已复位状态,"detached 永真卡死"已修复;剩余 localStorage `df-ai-gen`/`df-ai-text` 是 Sprint 19 **有意保留**(流式临时快照高频写),非 bug。仅在出现新场景失效时再评估改全局 emit/listen — **去重**:与 AR-M5跨窗口 state 完全隔离同类aichat 审查描述更深 — source:代码审查 + Sprint 19 (06-14)
- [x] T-260614-03 — ~~工具层白名单与 crud 白名单双份去重~~ ✅ WF-B ⑤ 已解决tool_registry update_project 复用 is_allowed_column与 CRUD 白名单同源,删硬编码 match(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)