优化: AI Chat全栈多批审查修复与架构清理(risk_level清理/路由解耦/工具渲染/测试补测/死代码)

This commit is contained in:
2026-06-18 22:57:19 +08:00
parent 0ca5d9805f
commit a2871a66e0
87 changed files with 5720 additions and 3012 deletions

View File

@@ -8,6 +8,45 @@
---
> ## 实施状态(2026-06-18 核对)
>
> **②-⑤ 全部已落地**(原设计 1.2 表中标 ⚠️ 的 crud/白名单缺口已补全,②③④⑤ 已实施)。
>
> **① df-storage 迁移 — 已完成**(原 ⚠️ 项已补)
> - `TaskRecord.output_json: Option<String>``crates/df-storage/src/models.rs:72`。
> - 白名单含 output_json`crates/df-storage/src/crud.rs:344`(`allowed_columns_for("tasks")` 已含,注释"ai_execute 写产出 / ai_self_review 读产出自审 / human_review 展示对象")。
> - migrations`crates/df-storage/src/migrations.rs:303`(注释同上)。
>
> **② AiNode 持 db + 写产出 — 已落地**
> - `AiNode` struct`crates/df-nodes/src/ai_node.rs:256`(持 db 字段,`AiNode::new(db)` 构造)。
> - state.rs 工厂闭包注入 db`src-tauri/src/state.rs:351-352`(`registry.register("ai", ... AiNode::new(ai_db.clone()))`)。
> - execute 写产出:`crates/df-nodes/src/ai_node.rs:319-325`(若 config 含 task_id → `repo.update_field(task_id, "output_json", &json_str)`)。
>
> **③ AiSelfReviewNode 独立节点 — 已落地**(原设计 2.3 推荐独立节点路径已采纳,非按 node_id 分支)
> - `AiSelfReviewNode` struct`crates/df-nodes/src/ai_node.rs:438`。
> - `REVIEW_SYSTEM_PROMPT`(四维度 prompt 模板)`crates/df-nodes/src/ai_node.rs:387`。
> - JSON 兜底解析 `parse_review_json`(fn 定义,非 JSON/缺 verdict → verdict=unknown)`crates/df-nodes/src/ai_node.rs:396`,单测 `:1011-1058`(valid/invalid/fence 三场景)。
> - `build_review_prompt`(fn 定义)`crates/df-nodes/src/ai_node.rs:449`,单测 `:1060`。
> - state.rs 注册:`src-tauri/src/state.rs:359-360`(`registry.register("ai_self_review", ... AiSelfReviewNode::new(review_db.clone()))`)。
>
> **④ human_review 展示(经 DAG inputs 透传HumanNode 零改动)— 已落地**
> - review 摘要塞 NodeOutput.data`crates/df-nodes/src/ai_node.rs:586`(注释「NodeOutput.data 塞 review 摘要,供下游 human_review 经 inputs["ai_self_review"] 读」)。
> - testing 模板 edge ai_self_review → human_review`crates/df-nodes/src/task_workflow_templates.rs:80`,单测 `:149` 验证边方向(`assert_eq!(edge.source, "ai_self_review")`)。
> - HumanNode 本身零改动(git 历史核验 human_node.rs 在 AiNode 自审批 commit 中无变动)。
>
> **⑤ 前端展示 — 已落地**TaskDetail.vue 加 output_json 区块(本轮未逐行核验前端 file:line但后端 output_json schema 已定型、前端按 schema 渲染)。
>
> **超出原设计、后追加的能力 — gate 闸门**
> - testing 模板 `ai_self_review` 启用 `gate:true``crates/df-nodes/src/task_workflow_templates.rs:54-67`(阶段3 起 verdict=fail → AiSelfReviewNode 返 Err → 工作流 failed不经 human_review)。原设计 2.3 标"首版保守verdict 仅作展示信号",实际已升级为 DAG 节点闸门(激进方案落地)`crates/df-nodes/src/ai_node.rs:598-626`(gate==true 时 verdict=fail 返 Err)。
>
> **⑥ 端到端联调 — 代码层完成,实测类待用户**:联调依赖 secret 下沉+provider 注入链(`docs/02-架构设计/secret下沉与provider注入方案-2026-06-16.md``AiNode/AiSelfReviewNode` 改经 `provider_id` + df_storage::secret 解析FR-S1 mask 对齐)。实测类(tauri dev 跑 testing 模板 ai_self_review→human_review 闭环)待用户执行。
>
> **DRY 优化(SW-260618-09)**AiNode/AiSelfReviewNode execute provider 三件套逐字重复已抽 `resolve_and_parse` + `provider_from_params` helper(`crates/df-nodes/src/ai_node.rs:70/80` 注释)。
>
> 原文以下设计正文保持不变,作为历史设计记录;落地形态以上方"实施状态"为准。
---
## 一、现状盘点file:line 证据)
### 1.1 已就绪(自审闭环地基)