文档: 架构方案文档(意图识别论证+多主题愿景/论证+文档物理分类+边界清晰化)

squash合并:
- 意图识别层论证(8维度+10业界佐证)
- 多主题上下文管理愿景+并存论证+补充论证(多轮agentic)
- 架构设计文档物理分类(四子目录+INDEX+命名规范+引用同步+边界清晰化)
- 前端架构技术债清单归档
This commit is contained in:
2026-06-19 15:04:04 +08:00
parent f1a06732fd
commit 998a2f243d
73 changed files with 1083 additions and 80 deletions

View File

@@ -188,7 +188,7 @@ state.tasks.update_field(&id, "status", &value)
### 3.2 设计中的推进机制advance_task + 状态机
> ⚠️ **决策更新2026-06-16**:本节原设想 advance_task 落 IPC 层 / df-task 复活。**D-260616-03 已决策走 df-nodes Node**(对齐 D3「业务逻辑在 df-nodes 实现」):状态机落 `df-nodes/src/task_state_machine.rs`F-01advance_task 落 `df-nodes/src/task_advance_node.rs` 实现 Node traitF-02IPC 层 thin 入口调 df-nodes。又 **D-260616-01 已定前端对齐 7 态**,下文状态机示例的 5 态ReviewReady/Abandoned实施时按 7 态重设(激活 InReview/Testing/Blocked。详见 [任务推进链实施路径](../../02-架构设计/任务推进链实施路径-2026-06-16.md)。
> ⚠️ **决策更新2026-06-16**:本节原设想 advance_task 落 IPC 层 / df-task 复活。**D-260616-03 已决策走 df-nodes Node**(对齐 D3「业务逻辑在 df-nodes 实现」):状态机落 `df-nodes/src/task_state_machine.rs`F-01advance_task 落 `df-nodes/src/task_advance_node.rs` 实现 Node traitF-02IPC 层 thin 入口调 df-nodes。又 **D-260616-01 已定前端对齐 7 态**,下文状态机示例的 5 态ReviewReady/Abandoned实施时按 7 态重设(激活 InReview/Testing/Blocked。详见 [任务推进链实施路径](../../02-架构设计/专项设计/任务推进链实施路径-2026-06-16.md)。
构想文档设计了完整的推进链,但**全部未实现**

View File

@@ -138,9 +138,9 @@
**3 设计文档已起草**general-purpose agent 读码 + 细化方案,待用户核对):
- 📄 **R-PD-1 密钥迁移健壮性** → [密钥迁移健壮性-2026-06-15.md](../02-架构设计/密钥迁移健壮性-2026-06-15.md):推荐方案 A「编辑路径即时迁移」——DB 有明文+keyring 无时先 `set_provider_secret` 补密钥,成功后清 DB 明文,失败 Err 阻断 DB 不动(最小局部改动 commands.rs 一处,放弃 B 反方向维持未迁移态 / C 显式标志位 schema 演进成本)
- 📄 **R-PD-2 工作流脚本执行边界** → [工作流脚本执行边界-2026-06-15.md](../02-架构设计/工作流脚本执行边界-2026-06-15.md):推荐方案① 删 `src-tauri/src/state.rs:227-229` script 注册掐断入口 + 下线 demoDagDevFlow workflow 纯演示,唯一构造点 demoDag 三步 echo一行删换零攻击面黑名单/参数过滤是不完备运行时博弈),未来真要脚本能力新建独立 BuildNode。**路径修正**build_registry 实在 `src-tauri/src/state.rs:225`review 原文 `state.rs` 无 crate 前缀易歧义——`crates/df-workflow/src/state.rs` 是 StateMachine 状态机与节点注册无关)。**R-PD-2 必须先于 R-PD-12**(否则 LLM 暗道绕过 RiskLevel 审批链)
- 📄 **R-PD-3 条件表达式引擎** → [条件表达式引擎-2026-06-15.md](../02-架构设计/条件表达式引擎-2026-06-15.md):推荐分阶段 Phase1 数据流过滤executor inputs 收集处调 ConditionEngine + adjacency_in 携 condition零终态冲突独立可 ship/ Phase2 调度短路(层调度前求值条件全 false 则 target 不执行,复活 `set_skipped` 旁路与 `set_cancelled` 同型,注释区分语义)。**待用户确认 3 决策点**A 引擎实现(手写最小求值器 vs evalexpr 库)/ B 终态机制set_skipped 复活 vs 其他)/ C 求值失败兜底(默认 true vs false
- 📄 **R-PD-1 密钥迁移健壮性** → [密钥迁移健壮性-2026-06-15.md](../02-架构设计/专项设计/密钥迁移健壮性-2026-06-15.md):推荐方案 A「编辑路径即时迁移」——DB 有明文+keyring 无时先 `set_provider_secret` 补密钥,成功后清 DB 明文,失败 Err 阻断 DB 不动(最小局部改动 commands.rs 一处,放弃 B 反方向维持未迁移态 / C 显式标志位 schema 演进成本)
- 📄 **R-PD-2 工作流脚本执行边界** → [工作流脚本执行边界-2026-06-15.md](../02-架构设计/专项设计/工作流脚本执行边界-2026-06-15.md):推荐方案① 删 `src-tauri/src/state.rs:227-229` script 注册掐断入口 + 下线 demoDagDevFlow workflow 纯演示,唯一构造点 demoDag 三步 echo一行删换零攻击面黑名单/参数过滤是不完备运行时博弈),未来真要脚本能力新建独立 BuildNode。**路径修正**build_registry 实在 `src-tauri/src/state.rs:225`review 原文 `state.rs` 无 crate 前缀易歧义——`crates/df-workflow/src/state.rs` 是 StateMachine 状态机与节点注册无关)。**R-PD-2 必须先于 R-PD-12**(否则 LLM 暗道绕过 RiskLevel 审批链)
- 📄 **R-PD-3 条件表达式引擎** → [条件表达式引擎-2026-06-15.md](../02-架构设计/专项设计/条件表达式引擎-2026-06-15.md):推荐分阶段 Phase1 数据流过滤executor inputs 收集处调 ConditionEngine + adjacency_in 携 condition零终态冲突独立可 ship/ Phase2 调度短路(层调度前求值条件全 false 则 target 不执行,复活 `set_skipped` 旁路与 `set_cancelled` 同型,注释区分语义)。**待用户确认 3 决策点**A 引擎实现(手写最小求值器 vs evalexpr 库)/ B 终态机制set_skipped 复活 vs 其他)/ C 求值失败兜底(默认 true vs false
**与 R-P2-13 的张力**R-P2-13 删了 set_waiting/set_skipped当时全仓零调用扩写 set_cancelled 注释「唯一受控旁路」R-PD-3 Phase2 接线条件引擎后 set_skipped 有了真实消费者需复活——set_cancelled「唯一旁路」注释届时需同步改。

View File

@@ -2,7 +2,7 @@
> 范围Rust 9 crate + Tauri 命令层 + Vue 3 前端stores/composables/views/components/api约 25k 行。
> 方法5 个 general-purpose 子代理按模块并行审查df-nodes/workflow/execute、df-ai/ideas/storage、src-tauri commands、stores/composables、views/components/api主代理对高严重度项逐条读码核实。
> 互斥关系:与 [aichat审查报告-2026-06-14.md](../02-架构设计/aichat审查报告-2026-06-14.md)AI Chat 专项)、[工作流审批审查报告-2026-06-14.md](../02-架构设计/工作流审批审查报告-2026-06-14.md)(工作流审批专项)去重;本轮不重复两份已记录的内容,仅记新发现与核查澄清。
> 互斥关系:与 [aichat审查报告-2026-06-14.md](../02-架构设计/构想审查/aichat审查报告-2026-06-14.md)AI Chat 专项)、[工作流审批审查报告-2026-06-14.md](../02-架构设计/构想审查/工作流审批审查报告-2026-06-14.md)(工作流审批专项)去重;本轮不重复两份已记录的内容,仅记新发现与核查澄清。
> 增补2026-06-14 追加 §0.1 修复进度表 + 在 FR-D1/FR-P1/FR-P2/FR-R4/FR-R5 章节内联标注已修复状态(对照 commit 36d68dd / 4a95f6a / 4b5f096
---
@@ -14,7 +14,7 @@
子代理报告称 `do_promote` 返回 `promoted:true` 却未建项目,是"成功撒谎"高严重度 bug。**核查后判定为误判**
- IPC 层 `src-tauri/src/commands/idea.rs:112` `promote_idea` **真正调用** `df_project::manager::ProjectManager::create_from_idea` 构造项目实体 + 映射 `ProjectRecord` + `update_full` 回写想法。前端走此 IPC不走 crate。
- `df-ideas/src/promotion.rs``do_promote`Auto 策略分支)**无任何调用方**,是 [功能决策记录 §想法立项](../02-架构设计/功能决策记录-2026-06-14.md) 明确的"crate 留纯决策 TODO"——crate 不依赖 df-storage/df-project 以避循环依赖,副作用放 IPC 组合。
- `df-ideas/src/promotion.rs``do_promote`Auto 策略分支)**无任何调用方**,是 [功能决策记录 §想法立项](../02-架构设计/滚动规范/功能决策记录-2026-06-14.md) 明确的"crate 留纯决策 TODO"——crate 不依赖 df-storage/df-project 以避循环依赖,副作用放 IPC 组合。
- [todo.md:145](../todo.md) 已标注 `do_promote crate 层 TODO现走前端闭环`
**保留的低优提示**`do_promote` 返回值 `promoted:true` 对一个未接 df-project 的函数是误导性签名,若将来有人直接调用会产生真实的"成功撒谎"。建议接入前把返回改 `promoted:false` + `reason: "crate 层未接入"`,或加 `#[allow(dead_code)]` + 注释固化"无副作用占位"语义。**不计为新 bug仅留改进提示。**

View File

@@ -2,7 +2,7 @@
> 范围Rust workspace8 crate + src-tauri 汇聚层14586 行)+ 前端Vue3+Pinia11830 行),共约 26k 行。
> 方法2 个 general-purpose 子代理并行审「Rust crate 架构」「前端架构」,主代理直读 df-core/df-execute/coordinator/conditions 核实空壳与抽象层,并对 3 个 🔴 删代码/可见断言做 grep 复验(全部坐实)。
> 去重:与 [全栈代码审查报告-2026-06-14.md](全栈代码审查报告-2026-06-14.md)bug/性能 FR-*)、[架构与缺陷复核报告-2026-06-14.md](架构与缺陷复核报告-2026-06-14.md)(复核+回归审计)、[aichat审查报告-2026-06-14.md](../02-架构设计/aichat审查报告-2026-06-14.md)AR 系列)互补——**本报告只记架构层面**(模块边界/依赖方向/抽象层次/扩展性/状态管理/技术债),不重复 bug、性能、aichat 专项项。
> 去重:与 [全栈代码审查报告-2026-06-14.md](全栈代码审查报告-2026-06-14.md)bug/性能 FR-*)、[架构与缺陷复核报告-2026-06-14.md](架构与缺陷复核报告-2026-06-14.md)(复核+回归审计)、[aichat审查报告-2026-06-14.md](../02-架构设计/构想审查/aichat审查报告-2026-06-14.md)AR 系列)互补——**本报告只记架构层面**(模块边界/依赖方向/抽象层次/扩展性/状态管理/技术债),不重复 bug、性能、aichat 专项项。
> 性质:**dry — 仅审查 + 文档,不改代码**。
---

View File

@@ -1,7 +1,7 @@
# 自研块级 memo 流式 Markdown 渲染 代码审查2026-06-15
> 范围:`src/components/AiChat.vue` ARC-260615-08 实施 diff —— 块级 memo 流式渲染splitBlocks/parseBlock/parseBlockNoCache/renderStreamingMd/scheduleStreamParse/renderContent + watch/onBeforeUnmount+ confirm 抽取CR-260615-02。约 ~90 行改动。
> 背景:决策转向(同日复盘)—— markstream-vue 试装弃用(样式 100% 还原成本高且脆),改自研块级 memo方案 B 增强版)。详见 [aichat流式Markdown渲染调研-2026-06-15.md](../02-架构设计/aichat流式Markdown渲染调研-2026-06-15.md) §5。
> 背景:决策转向(同日复盘)—— markstream-vue 试装弃用(样式 100% 还原成本高且脆),改自研块级 memo方案 B 增强版)。详见 [aichat流式Markdown渲染调研-2026-06-15.md](../02-架构设计/构想审查/aichat流式Markdown渲染调研-2026-06-15.md) §5。
> 性质:**dry — 仅走查 + 文档,不改代码**(本会话职责:走查/整理/建待办,见 memory session-role-diagnose-only
---

View File

@@ -3,7 +3,7 @@
> 范围:工作区未提交 RustFR-S1 密钥管理 / FR-S7 写入防护 / FR-S8 symlink 防护)+ 近 5 个提交Rust 后端 7 文件 + 前端 12 文件),约 770 行。
> 方法主代理深读工作区安全改动secret.rs / tool_registry.rs / commands.rs / lib.rs含 resolve_workspace_path 双层校验、write_file 原子写、list_dir symlink 处理)+ 2 个 general-purpose 子代理并行审「近 5 提交 Rust 后端」「近 5 提交前端」,主代理对三路结果核实去重并补查 keyring 闭环。
> 去重:与 [全栈代码审查报告-2026-06-14.md](全栈代码审查报告-2026-06-14.md) / [架构与缺陷复核报告-2026-06-14.md](架构与缺陷复核报告-2026-06-14.md) 范围互补——前两份是 06-14 全栈基线审查,本轮针对 **06-14 之后的提交FR-S 安全修复、confirm 抽取、dag 拓扑 O(V+E)、流式健壮性)+ 工作区未提交**。aichat AR 系列、FR-C/S/R 已修项不重复,仅审本轮代码本身引入或暴露的新问题。
> 互斥:本报告 §①FR-S1 keyring 清理闭环)与 [aichat审查报告](../02-架构设计/aichat审查报告-2026-06-14.md) 的 FR-S1 条目同源(密钥迁移至 keyring本轮发现其删除路径闭环缺失。
> 互斥:本报告 §①FR-S1 keyring 清理闭环)与 [aichat审查报告](../02-架构设计/构想审查/aichat审查报告-2026-06-14.md) 的 FR-S1 条目同源(密钥迁移至 keyring本轮发现其删除路径闭环缺失。
---