优化: AI Chat全栈多批审查修复与架构清理(risk_level清理/路由解耦/工具渲染/测试补测/死代码)
This commit is contained in:
@@ -7,6 +7,26 @@
|
||||
|
||||
---
|
||||
|
||||
> ## ✅ 实施状态(2026-06-18 核对:方案 B 全量落地)
|
||||
>
|
||||
> **推荐方案 B(df-storage 加薄 secret 查询方法)已全量实施**,行为与设计一致。
|
||||
>
|
||||
> **下沉层**:`crates/df-storage/src/secret.rs`(新建,纯密钥逻辑唯一源)—— `KEYRING_SERVICE` 常量(`:26`)、failcount sidecar(`:34-56`)、get/set/delete/resolve/ensure/migrate 全套函数均下沉至此。`crates/df-storage/src/lib.rs` `pub mod secret` 暴露。
|
||||
>
|
||||
> **df-storage 依赖**:`crates/df-storage/Cargo.toml:16-18` 已加 `keyring = { workspace = true }`(注释标注 FR-S1 密钥解析下沉)。
|
||||
>
|
||||
> **src-tauri 转发壳**:`src-tauri/src/commands/ai/secret.rs:20` `pub use df_storage::secret::*;`(12 调用点路径不变),`:32-43` 保留 `build_provider_for`(依赖 `df_ai::build_provider` 不下沉,对齐设计「留 app 层避免 df-storage→df-ai 循环」)。
|
||||
>
|
||||
> **AiNode 注入链(阶段 3)**:`crates/df-nodes/src/ai_node.rs:21` import `resolve_provider_secret`/`ensure_resolved_key`;`:60-64/101-139` 三路径解析(provider_id 优先 → 老明文兼容 → 空兜底取 is_default 首条);`:166-178` 从 record 解析 provider 构造要素(resolve→ensure→base_url/api_key)。AiSelfReviewNode 同构(`:476` 起)。
|
||||
>
|
||||
> **schema**:`ai_node.rs:344-351` schema 描述 provider_id/base_url/api_key(base_url/api_key 标注「已废弃过渡」),`:351` required=[](SW-260618-15:prompt/provider_id 均「留空走兜底」与 required 矛盾,改 required=[] 对齐运行时)。
|
||||
>
|
||||
> **设计偏离**:无功能性偏离。仅 schema required 值与设计 §3.4「`["provider_id"]`」略不同(实际 `required=[]`,对齐「留空走兜底」运行时语义,SW-260618-15 决策)。
|
||||
>
|
||||
> **本文档 §1.2/§五的 file:line 索引**:原指向 `src-tauri/src/commands/ai/secret.rs` 的函数行号(resolve:97-102 等)下沉后已迁移至 `crates/df-storage/src/secret.rs`,src-tauri 文件已瘦身为转发壳(原 228 行 → 现 43 行)。查阅实际函数请走 `crates/df-storage/src/secret.rs`。
|
||||
|
||||
---
|
||||
|
||||
## 一、现状核验(file:line 证据)
|
||||
|
||||
### 1.1 secret.rs 函数清单(src-tauri/src/commands/ai/secret.rs)
|
||||
|
||||
Reference in New Issue
Block a user