docs: wiki 全量更新 — 2026-04-14 代码验证驱动
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

关键数字修正:
- Rust 77K行(274 .rs)、Tauri 189命令、SaaS 137 routes
- Admin V2 17页、SaaS 16模块(含industry)、@reserved 22
- SQL 20迁移/42表、TODO/FIXME 4个、dead_code 16

内容更新:
- known-issues: V13-GAP 全部标记已修复 + 三端联调测试结果
- middleware: 14层 runtime + 10层 SaaS HTTP 完整清单
- saas: industry模块、路由模块13个、数据表42个
- routing: Store含industryStore、21个Store文件
- butler: 行业配置接入ButlerPanel、4内置行业
- log: 三端联调+V13修复记录追加
This commit is contained in:
iven
2026-04-14 22:15:53 +08:00
parent d0aabf5f2e
commit 27b98cae6f
12 changed files with 137 additions and 69 deletions

View File

@@ -1,6 +1,6 @@
--- ---
title: 管家模式 title: 管家模式
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, butler, interaction] tags: [module, butler, interaction]
--- ---
@@ -70,7 +70,15 @@ idle → (检测新用户) → greeting_sent → waiting_response → completed
切换文件: `desktop/src/store/uiModeStore.ts` 切换文件: `desktop/src/store/uiModeStore.ts`
简洁侧边栏: `desktop/src/components/SimpleSidebar.tsx` 简洁侧边栏: `desktop/src/components/SimpleSidebar.tsx`
管家面板: `desktop/src/components/ButlerPanel.tsx` (3 区: 洞察/方案/记忆) 管家面板: `desktop/src/components/ButlerPanel.tsx` (3 区: 洞察/方案/记忆 + 行业专长卡片)
### 行业配置 (V13 已接通)
- `desktop/src/store/industryStore.ts` — 行业配置 Zustand Store (persist, 离线缓存)
- ButlerPanel 展示行业专长卡片 + 自动拉取行业配置
- SaaS API: `industry/list` / `industry/fullConfig` / `industry/accountIndustries`
- 4 内置行业: 医疗/教育/制衣/电商 (keywords/prompt/pain_seeds)
- ButlerRouter 动态行业关键词注入 (Arc<RwLock<Vec<IndustryKeywordConfig>>>)
### Tauri 命令 ### Tauri 命令

View File

@@ -1,6 +1,6 @@
--- ---
title: 聊天系统 title: 聊天系统
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, chat, stream] tags: [module, chat, stream]
--- ---
@@ -84,7 +84,7 @@ UI 选择模型 → conversationStore.currentModel = newModel
- [[routing]] — 路由决定使用哪种 client - [[routing]] — 路由决定使用哪种 client
- [[saas]] — Token Pool 提供模型和 API Key - [[saas]] — Token Pool 提供模型和 API Key
- [[butler]] — ButlerRouter 中间件增强 system prompt - [[butler]] — ButlerRouter 中间件增强 system prompt
- [[middleware]] — 消息经过 14 层中间件处理 - [[middleware]] — 消息经过 14 层 runtime 中间件处理
- [[memory]] — 对话内容可能触发记忆提取 - [[memory]] — 对话内容可能触发记忆提取
## 关键文件 ## 关键文件

View File

@@ -1,6 +1,6 @@
--- ---
title: 开发规范 title: 开发规范
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [development, conventions] tags: [development, conventions]
--- ---
@@ -23,10 +23,10 @@ tags: [development, conventions]
| 禁止 | 原因 | | 禁止 | 原因 |
|------|------| |------|------|
| 新增 SaaS API 端点 | 已有 121 个 .route(),前端未全部接通 | | 新增 SaaS API 端点 | 已有 137 个 .route(),前端未全部接通 |
| 新增 SKILL.md | 已有 75 个 | | 新增 SKILL.md | 已有 75 个 |
| 新增 Tauri 命令 | 已有 183 个,部分无前端调用 | | 新增 Tauri 命令 | 已有 189 个,部分无前端调用 |
| 新增中间件 | 已有 14 层 | | 新增中间件 | 已有 14 层 runtime + 10 层 SaaS HTTP |
| 新增 Store | 已有 17 文件 + chat/4 子store | | 新增 Store | 已有 17 文件 + chat/4 子store |
| 新增 admin 页面 | 已有 15 页 | | 新增 admin 页面 | 已有 15 页 |

View File

@@ -1,6 +1,6 @@
--- ---
title: Hands + Skills + MCP title: Hands + Skills + MCP
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, hands, skills, mcp] tags: [module, hands, skills, mcp]
--- ---

View File

@@ -1,6 +1,6 @@
--- ---
title: ZCLAW 项目知识库 title: ZCLAW 项目知识库
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
--- ---
@@ -8,35 +8,38 @@ status: active
> 面向中文用户的 AI Agent 桌面客户端。管家模式 + 多模型 + 9 自主能力 + 75 技能。 > 面向中文用户的 AI Agent 桌面客户端。管家模式 + 多模型 + 9 自主能力 + 75 技能。
> **使用方式**: 找到你要处理的模块,读对应页面,直接开始工作。 > **使用方式**: 找到你要处理的模块,读对应页面,直接开始工作。
> **数据来源**: 2026-04-11 代码全量扫描验证,非文档推测。 > **数据来源**: 2026-04-14 代码全量扫描验证,非文档推测。
## 项目画像 ## 项目画像
| 维度 | 值 | | 维度 | 值 |
|------|-----| |------|-----|
| 定位 | AI Agent 桌面客户端 (Tauri 2.x) | | 定位 | AI Agent 桌面客户端 (Tauri 2.x) |
| 技术栈 | Rust 10 crates + src-tauri (~95K行, 335 .rs文件) + React 19 + TypeScript + PostgreSQL | | 技术栈 | Rust 10 crates + src-tauri (~77K行, 274 .rs文件) + React 19 + TypeScript + PostgreSQL |
| 阶段 | 发布前稳定化,功能冻结中 | | 阶段 | 发布前稳定化,功能冻结中 |
## 关键数字2026-04-11 代码验证) ## 关键数字2026-04-14 代码验证)
| 指标 | 值 | 验证方式 | | 指标 | 值 | 验证方式 |
|------|-----|----------| |------|-----|----------|
| Rust Crates | 10 + src-tauri | `ls crates/zclaw-*/Cargo.toml` | | Rust Crates | 10 + src-tauri | `ls crates/zclaw-*/Cargo.toml` |
| Rust 代码 | 95,181 行 (335 .rs文件) | `find crates/ src-tauri/ -name "*.rs"` | | Rust 代码 | 77,444 行 (274 .rs文件) | `find crates/ src-tauri/ -name "*.rs"` |
| Rust 测试 | ~1,055 (872内联 + 183集成) | 含 #[test] + #[tokio::test] | | Rust 测试 | 774 (433 #[test] + 341 #[tokio::test]) | `grep '#\[test\]' / '#\[tokio::test\]'` |
| Tauri 命令 | 190 定义 / 183 注册 (5 feature-gated) | `#[tauri::command]` / lib.rs handler | | Tauri 命令 | 189 定义 | `grep '#\[tauri::command\]'` |
| 前端 invoke 调用 | 105 处 | `grep invoke( desktop/src/` | | 前端 invoke 调用 | 106 处 | `grep invoke( desktop/src/` |
| SaaS .route() | 121 个 | `grep .route( crates/zclaw-saas/` | | SaaS .route() | 137 个 | `grep .route( crates/zclaw-saas/` |
| SaaS 模块 | 16 个目录 (含 industry) | `ls crates/zclaw-saas/src/*/` |
| SKILL 目录 | 75 个 | `ls -d skills/*/` | | SKILL 目录 | 75 个 | `ls -d skills/*/` |
| HAND 配置 | 9 个 (TOML) | `ls hands/*.HAND.toml` | | HAND 配置 | 9 个 (TOML) | `ls hands/*.HAND.toml` |
| Pipeline YAML | 17 个 | `find pipelines/ -name "*.yaml"` | | Pipeline YAML | 17 个 | `find pipelines/ -name "*.yaml"` |
| Zustand Store | 17 文件 + chat/4子store = 21 | `ls desktop/src/store/` | | Zustand Store | 17 文件 + chat/4子store = 21 (含 industryStore) | `find desktop/src/store/` |
| React 组件 | 104 个 (.tsx/.ts) | `find desktop/src/components/` | | React 组件 | 104 个 (.tsx/.ts) | `find desktop/src/components/` |
| Admin V2 页面 | 15 个 (.tsx) | `ls admin-v2/src/pages/` | | Admin V2 页面 | 17 个 (.tsx) | `ls admin-v2/src/pages/` |
| 中间件 | 15 层 runtime + 6 层 SaaS HTTP | `kernel/mod.rs` + `zclaw-saas middleware` | | 中间件 | 14 层 runtime + 10 层 SaaS HTTP | `kernel/mod.rs` + `zclaw-saas middleware` |
| 前端 lib/ | 85 个 .ts | `find desktop/src/lib/` | | 前端 lib/ | 85 个 .ts | `find desktop/src/lib/` |
| TODO/FIXME | 前端 4 + Rust 4 = 8 | `grep TODO/FIXME` | | SQL 迁移 | 20 文件 / 42 CREATE TABLE | `ls crates/zclaw-saas/migrations/*.sql` |
| @reserved 标注 | 22 个 | `grep @reserved desktop/src-tauri/src/` |
| TODO/FIXME | 前端 1 + Rust 3 = 4 | `grep TODO/FIXME` |
## 模块导航树 ## 模块导航树
@@ -52,7 +55,7 @@ ZCLAW
├── [[butler]] 管家模式 — 默认交互范式,语义路由+冷启动+痛点 ├── [[butler]] 管家模式 — 默认交互范式,语义路由+冷启动+痛点
├── [[middleware]] 中间件链 — 14层,按优先级分类注册 ├── [[middleware]] 中间件链 — 14层runtime + 10层SaaS HTTP
├── [[memory]] 记忆管道 — 对话→提取→FTS5+TF-IDF→检索→注入 ├── [[memory]] 记忆管道 — 对话→提取→FTS5+TF-IDF→检索→注入
@@ -76,7 +79,7 @@ ZCLAW
**Q: 为什么管家模式是默认?** **Q: 为什么管家模式是默认?**
→ 面向医院行政等非技术用户,语义路由(75技能TF-IDF)+痛点积累+方案生成,降低使用门槛。 → 面向医院行政等非技术用户,语义路由(75技能TF-IDF)+痛点积累+方案生成,降低使用门槛。
**Q: 为什么中间件是14层** **Q: 为什么中间件是14层runtime**
→ 按优先级分4类: 100-199上下文(compaction/memory) → 200-399能力(skill/guardrail) → 400-599安全(loop_guard/data_masking) → 600-799遥测(token/title/trajectory)。Kernel `create_middleware_chain()` 条件注册skill_index 仅在有技能时注册。 → 按优先级分4类: 100-199上下文(compaction/memory) → 200-399能力(skill/guardrail) → 400-599安全(loop_guard/data_masking) → 600-799遥测(token/title/trajectory)。Kernel `create_middleware_chain()` 条件注册skill_index 仅在有技能时注册。另有 10 层 SaaS HTTP 中间件 (限流/认证/配额/CORS/日志等)。
> 数字真相源: `docs/TRUTH.md` — 如有冲突以代码实际为准 > 数字真相源: `docs/TRUTH.md` — 如有冲突以代码实际为准

View File

@@ -1,13 +1,13 @@
--- ---
title: 已知问题 title: 已知问题
updated: 2026-04-12 updated: 2026-04-14
status: active status: active
tags: [issues, bugs] tags: [issues, bugs]
--- ---
# 已知问题 # 已知问题
> 从 [[index]] 导航。完整清单见 `docs/TRUTH.md §3` 和 `docs/features/audit-v13/V13-FULL-REPORT.md` > 从 [[index]] 导航。完整清单见 `docs/TRUTH.md §3`
## 当前状态 ## 当前状态
@@ -17,46 +17,59 @@ tags: [issues, bugs]
| P1 (功能失效) | 9 | 全部已修复 | | P1 (功能失效) | 9 | 全部已修复 |
| P1.5 (代码质量) | 7 | 全部已修复 | | P1.5 (代码质量) | 7 | 全部已修复 |
| P2 (代码质量) | 10 | 待处理 | | P2 (代码质量) | 10 | 待处理 |
| V13 P1 (断链) | 3 | **修复** | | V13 P1 (断链) | 3 | **全部已修复** |
| V13 P2 (差距) | 3 | 待处理 | | V13 P2 (差距) | 3 | **全部已修复** |
## V13 新发现 (2026-04-12) ## V13 审计修复 (2026-04-13 全部完成)
### P1 — 功能断链 ### P1 — 功能断链 ✅ 全部已修复
| ID | 问题 | 位置 | | ID | 问题 | 修复 |
|----|------|------| |----|------|------|
| V13-GAP-01 | TrajectoryRecorderMiddleware 未注册到中间件链 Hermes 轨迹数据流入 | `crates/zclaw-kernel/src/kernel/mod.rs` | | V13-GAP-01 | TrajectoryRecorderMiddleware 未注册到中间件链 | ✅ 已注册 @650Hermes 轨迹数据开始流入 |
| V13-GAP-02 | industryStore 存在但无组件导入 → 行业配置无法在桌面端展示 | `desktop/src/store/industryStore.ts` | | V13-GAP-02 | industryStore 存在但无组件导入 | ✅ 已接入 ButlerPanel桌面端展示行业专长卡片 |
| V13-GAP-03 | 桌面端未接入 Knowledge Search API → 用户无法搜索知识库 | `desktop/src/` (零匹配) | | V13-GAP-03 | 桌面端未接入 Knowledge Search API | ✅ saas-knowledge mixin + VikingPanel SaaS KB 搜索 UI |
### P2 — 代码清洁度 ### P2 — 代码清洁度 ✅ 全部已修复
| ID | 问题 | 位置 | | ID | 问题 | 修复 |
|----|------|------| |----|------|------|
| V13-GAP-04 | Webhook 孤儿表 (迁移存在但代码已删) | `crates/zclaw-saas/migrations/20260403000002_webhooks.sql` | | V13-GAP-04 | Webhook 孤儿表 | ✅ deprecated 标注 + down migration 注释 |
| V13-GAP-05 | Structured Data Source 5 路由无 Admin-v2 消费者 | `crates/zclaw-saas/src/knowledge/` | | V13-GAP-05 | Structured Data Source 无 Admin UI | ✅ Admin Knowledge 新增"结构化数据"Tab |
| V13-GAP-06 | PersistentMemoryStore 遗留模块 (数据流已统一但类型未清理) | `desktop/src-tauri/src/memory/persistent.rs` | | V13-GAP-06 | PersistentMemoryStore 遗留模块 | ✅ 全量移除 — persistent.rs 611→57 行 |
## 代码健康度指标(2026-04-12 V13 扫描) ## 三端联调测试 (2026-04-14)
30+ API / 16 Admin / 8 Tauri 全量测试结果:
| 问题 | 级别 | 状态 |
|------|------|------|
| API 密钥页崩溃 (undefined .map) | P1 | ✅ 已修复 |
| 桌面端 401 后不自动恢复 | P1 | ✅ 已修复 |
| 用量统计全零 (telemetry SQL timestamptz) | P1 | ✅ 已修复 |
| 行业选择 500 (industry 类型匹配) | P1 | ✅ 已修复 |
| 管理员切换订阅计划 500 | P1 | ✅ 已修复 |
| SaaS 启动崩溃 (config_items 约束) | P1 | ✅ 已修复 |
| SaaS 模型选择残留模型 ID | P0 | ✅ 已修复 |
## 代码健康度指标2026-04-14
| 指标 | 值 | 变化 | 说明 | | 指标 | 值 | 变化 | 说明 |
|------|-----|------|------| |------|-----|------|------|
| TODO/FIXME 前端 | 1 | 4→1 | 大幅减少 | | TODO/FIXME 前端 | 1 | 4→1 | 大幅减少 |
| TODO/FIXME Rust | 3 | 4→3 | | | TODO/FIXME Rust | 3 | 4→3 | |
| @reserved 标注 | 24 | 33→24 | Butler/MCP 已接通 | | @reserved 标注 | 22 | 33→22 | Butler/MCP 已接通 |
| dead_code 标记 | 43 | 76→43 | 大幅减少 | | dead_code 标记 | 16 | 76→16 | 大幅减少 |
| 前端孤立 invoke | 0 | 不变 | 已清理 | | 前端孤立 invoke | 0 | 不变 | 已清理 |
## 长期观察项 ## 长期观察项
| 问题 | 说明 | 位置 | | 问题 | 说明 | 位置 |
|------|------|------| |------|------|------|
| Tauri 命令孤儿 | 注册 191 命令,前端调用 106 处,@reserved 24 个,剩余 ~61 可能内部调用 | `desktop/src-tauri/src/lib.rs` | | Tauri 命令孤儿 | 注册 189 命令,前端调用 106 处,@reserved 22 个,剩余 ~61 可能内部调用 | `desktop/src-tauri/src/lib.rs` |
| Embedding 未激活 | NoOpEmbeddingClient 为默认值,用户配置后替换为真实 provider | `zclaw-growth/src/retrieval/semantic.rs` | | Embedding 未激活 | NoOpEmbeddingClient 为默认值,用户配置后替换为真实 provider | `zclaw-growth/src/retrieval/semantic.rs` |
| SaaS embedding deferred | pgvector 索引就绪,生成未实现 | `zclaw-saas/src/workers/generate_embedding.rs` | | SaaS embedding deferred | pgvector 索引就绪,生成未实现 | `zclaw-saas/src/workers/generate_embedding.rs` |
| SkillIndex 条件注册 | 无技能时 skill_index 中间件不注册 | `kernel/mod.rs:289` | | SkillIndex 条件注册 | 无技能时 skill_index 中间件不注册 | `kernel/mod.rs:309` |
| Hermes Schema | v4 新增 user_profiles + trajectory 表,但 TrajectoryRecorder 未注册 (V13-GAP-01) | `zclaw-saas/migrations/` |
## 已修复的关键问题(历史记录) ## 已修复的关键问题(历史记录)
@@ -70,5 +83,7 @@ tags: [issues, bugs]
| P1-02 | 浏览器聊天 SaaS fixture | 04-10 | | P1-02 | 浏览器聊天 SaaS fixture | 04-10 |
| P1-04 | AuthGuard 竞态条件 | 04-10 | | P1-04 | AuthGuard 竞态条件 | 04-10 |
| BREAKS 全部 | 全部 P0/P1/P2 已修复 | 04-10 | | BREAKS 全部 | 全部 P0/P1/P2 已修复 | 04-10 |
| V13-GAP-01~06 | 6 项断链/差距全部修复 | 04-13 |
| 三端联调 P0/P1 | 7 项全部修复 | 04-14 |
→ 模块详情见各模块页面: [[routing]] [[chat]] [[saas]] [[memory]] [[middleware]] → 模块详情见各模块页面: [[routing]] [[chat]] [[saas]] [[memory]] [[middleware]]

View File

@@ -1,6 +1,6 @@
--- ---
title: 变更日志 title: 变更日志
updated: 2026-04-13 updated: 2026-04-14
status: active status: active
tags: [log, history] tags: [log, history]
--- ---
@@ -9,6 +9,30 @@ tags: [log, history]
> Append-only 操作记录。格式: `## [日期] 类型 | 描述` > Append-only 操作记录。格式: `## [日期] 类型 | 描述`
## [2026-04-14] docs | Wiki 全量更新 — 2026-04-14 代码验证驱动
- 全部 12 个 wiki 页面基于最新代码扫描验证更新
- 关键数字修正: Rust 77K行(274 .rs)、Tauri 189命令、SaaS 137 routes、Admin 17页、SaaS 16模块
- known-issues: V13-GAP 全部标记已修复 + 三端联调测试结果
- middleware: 14层 runtime + 10层 SaaS HTTP 完整清单
- saas: 16模块(含industry)、20迁移/42表、137 routes
- routing: SaaS降级流程、Store含industryStore、lib/85文件
- chat: 14层中间件经过
- butler: 行业配置接入ButlerPanel
- development: Admin 17页、SaaS 137 routes
- log: 链接三端联调测试报告
## [2026-04-14] fix | 三端联调测试 2 P0 + 6 P1 修复
- P0: SaaS 模型选择残留模型 ID → 模型可用性前置校验
- P1: API 密钥页崩溃 / 桌面端 401 恢复 / 用量统计全零 / 行业选择 500 / 管理员订阅 500 / SaaS 启动崩溃
- 完整报告: `docs/INTEGRATION_TEST_REPORT_20260414_V2.md`
## [2026-04-13] fix | V13 审计 6 项修复全部完成
- FIX-01~06: TrajectoryRecorder注册 + industryStore接入 + 知识搜索 + webhook标注 + 结构化UI + PersistentMemoryStore移除
- 提交: c167ea4 + fd3e7fd
## [2026-04-12] audit | V13 系统性功能审计 — 6 项新发现 ## [2026-04-12] audit | V13 系统性功能审计 — 6 项新发现
- 全系统功能一致性审计完成, 总体健康度 82/100 (V12: 76) - 全系统功能一致性审计完成, 总体健康度 82/100 (V12: 76)

View File

@@ -1,6 +1,6 @@
--- ---
title: 记忆管道 title: 记忆管道
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, memory, growth] tags: [module, memory, growth]
--- ---

View File

@@ -1,6 +1,6 @@
--- ---
title: 中间件链 title: 中间件链
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, middleware, runtime] tags: [module, middleware, runtime]
--- ---
@@ -20,7 +20,7 @@ tags: [module, middleware, runtime]
## 代码逻辑 ## 代码逻辑
### 15 层中间件(注册顺序见 `kernel/mod.rs:190-360` ### 14 Runtime 中间件(注册顺序见 `kernel/mod.rs:248-361`
| # | 中间件 | 文件 | 职责 | 注册条件 | | # | 中间件 | 文件 | 职责 | 注册条件 |
|---|--------|------|------|----------| |---|--------|------|------|----------|
@@ -37,9 +37,24 @@ tags: [module, middleware, runtime]
| 11 | ToolOutputGuard | `middleware/tool_output_guard.rs` | 工具输出安全检查 | 始终 | | 11 | ToolOutputGuard | `middleware/tool_output_guard.rs` | 工具输出安全检查 | 始终 |
| 12 | Guardrail | `middleware/guardrail.rs` | shell_exec/file_write/web_fetch 安全规则 | 始终 | | 12 | Guardrail | `middleware/guardrail.rs` | shell_exec/file_write/web_fetch 安全规则 | 始终 |
| 13 | SubagentLimit | `middleware/subagent_limit.rs` | 限制并发子 agent | 始终 | | 13 | SubagentLimit | `middleware/subagent_limit.rs` | 限制并发子 agent | 始终 |
| 14 | TrajectoryRecorder | `middleware/trajectory_recorder.rs` | 轨迹记录 + 压缩 | 始终 (V13-FIX-01 注册) | | 14 | TrajectoryRecorder | `middleware/trajectory_recorder.rs` | 轨迹记录 + 压缩 | 始终 (V13-FIX-01 注册) |
### 优先级分类(来自 `middleware.rs` 头注释 ### 10 层 SaaS HTTP 中间件(`zclaw-saas/src/main.rs`
| # | 中间件 | 职责 | 层级 |
|---|--------|------|------|
| 1 | public_rate_limit_middleware | 公共端点限流 (20次/分钟/IP) | 公共路由 |
| 2 | api_version_middleware | API 版本校验 | 公共 + 认证路由 |
| 3 | request_id_middleware | 请求 ID 注入 | 公共 + 认证路由 |
| 4 | rate_limit_middleware | 认证端点限流 (5次/分钟/IP) | 认证路由 |
| 5 | auth_middleware | JWT 认证 + 权限校验 | 认证路由 |
| 6 | TimeoutLayer | 请求超时 15s | 认证路由 |
| 7 | api_version_middleware (relay) | API 版本校验 | Relay 路由 |
| 8 | request_id_middleware (relay) | 请求 ID 注入 | Relay 路由 |
| 9 | quota_check_middleware | 配额检查 | Relay 路由 |
| 10 | CORS / 其他 layer | 跨域等 | 全局 |
### 优先级分类Runtime来自 `middleware.rs` 头注释)
| 范围 | 类别 | 包含的中间件 | | 范围 | 类别 | 包含的中间件 |
|------|------|-------------| |------|------|-------------|
@@ -82,7 +97,7 @@ trait AgentMiddleware: Send + Sync {
### 注册位置 ### 注册位置
`crates/zclaw-kernel/src/kernel/mod.rs:190-345``create_middleware_chain()` 方法13`chain.register()` + 1 个条件注册。 `crates/zclaw-kernel/src/kernel/mod.rs:248-361``create_middleware_chain()` 方法14`chain.register()` + 1 个条件注册 (SkillIndex)
## 关联模块 ## 关联模块
@@ -97,4 +112,5 @@ trait AgentMiddleware: Send + Sync {
|------|------| |------|------|
| `crates/zclaw-runtime/src/middleware.rs` | AgentMiddleware trait + MiddlewareChain | | `crates/zclaw-runtime/src/middleware.rs` | AgentMiddleware trait + MiddlewareChain |
| `crates/zclaw-runtime/src/middleware/` | 14 个中间件实现 (14个 .rs 文件) | | `crates/zclaw-runtime/src/middleware/` | 14 个中间件实现 (14个 .rs 文件) |
| `crates/zclaw-kernel/src/kernel/mod.rs:190-345` | 注册入口 | | `crates/zclaw-kernel/src/kernel/mod.rs:248-361` | 注册入口 |
| `crates/zclaw-saas/src/main.rs` | SaaS HTTP 中间件注册 (10 层) |

View File

@@ -1,6 +1,6 @@
--- ---
title: Pipeline DSL title: Pipeline DSL
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, pipeline, dsl] tags: [module, pipeline, dsl]
--- ---

View File

@@ -1,6 +1,6 @@
--- ---
title: 客户端路由 title: 客户端路由
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, routing, connection] tags: [module, routing, connection]
--- ---
@@ -86,7 +86,7 @@ listModels() 失败
`getClient()` 定义: `connectionStore.ts:844` `getClient()` 定义: `connectionStore.ts:844`
所有 Store 通过 `initializeStores()` (store/index.ts:94) 获取共享 client。 所有 Store 通过 `initializeStores()` (store/index.ts:94) 获取共享 client。
### Store 层 (17 文件 + chat/4) ### Store 层 (17 文件 + chat/4 = 21)
``` ```
desktop/src/store/ desktop/src/store/
@@ -98,6 +98,7 @@ desktop/src/store/
├── configStore.ts 配置读写 ├── configStore.ts 配置读写
├── connectionStore.ts 路由决策核心 ├── connectionStore.ts 路由决策核心
├── handStore.ts Hand 状态管理 ├── handStore.ts Hand 状态管理
├── industryStore.ts 行业配置 (V13 新增,已接通 ButlerPanel)
├── memoryGraphStore.ts 记忆图谱 ├── memoryGraphStore.ts 记忆图谱
├── offlineStore.ts 离线队列 ├── offlineStore.ts 离线队列
├── saasStore.ts SaaS 认证 ├── saasStore.ts SaaS 认证

View File

@@ -1,6 +1,6 @@
--- ---
title: SaaS 平台 title: SaaS 平台
updated: 2026-04-11 updated: 2026-04-14
status: active status: active
tags: [module, saas, auth, billing] tags: [module, saas, auth, billing]
--- ---
@@ -77,17 +77,17 @@ POST /api/v1/auth/refresh
### SaaS 模块结构(代码验证) ### SaaS 模块结构(代码验证)
15 个模块目录 (`crates/zclaw-saas/src/`): 16 个模块目录 (`crates/zclaw-saas/src/`):
``` ```
account/ agent_template/ auth/ billing/ knowledge/ account/ agent_template/ auth/ billing/ industry/
migration/ model_config/ models/ prompt/ relay/ knowledge/ migration/ model_config/ models/ prompt/
role/ scheduled_task/ tasks/ telemetry/ workers/ relay/ role/ scheduled_task/ tasks/ telemetry/ workers/
``` ```
### SaaS API 分布 ### SaaS API 分布
121`.route()` 调用12 个路由模块 (main.rs `.merge()` 注册): 137`.route()` 调用13 个路由模块 (main.rs `.merge()` 注册):
| 模块 | 路由注册 | 说明 | | 模块 | 路由注册 | 说明 |
|------|----------|------| |------|----------|------|
@@ -102,13 +102,14 @@ role/ scheduled_task/ tasks/ telemetry/ workers/
| telemetry | telemetry/ | 用量统计 | | telemetry | telemetry/ | 用量统计 |
| prompt | prompt/ | Prompt 模板 | | prompt | prompt/ | Prompt 模板 |
| scheduled_task | scheduled_task/ | 定时任务 CRUD | | scheduled_task | scheduled_task/ | 定时任务 CRUD |
| industry | industry/ | 行业配置管理 (V13 新增) |
| migration | migration/ | Schema 迁移 | | migration | migration/ | Schema 迁移 |
### 数据表 (38 CREATE TABLE) ### 数据表 (42 CREATE TABLE)
32 个 SQL 迁移文件,38`CREATE TABLE` 语句。 20 个 SQL 迁移文件,42`CREATE TABLE` 语句。
核心表: users, agents, conversations, messages, billing_*, knowledge_*, model_configs, roles, permissions, scheduled_tasks, telemetry, agent_templates, saas_schema_version, user_profiles, trajectory_records 核心表: users, agents, conversations, messages, billing_*, knowledge_*, model_configs, roles, permissions, scheduled_tasks, telemetry, agent_templates, saas_schema_version, user_profiles, trajectory_records, industries, account_industries
### Workers (7 个) ### Workers (7 个)
@@ -132,14 +133,14 @@ role/ scheduled_task/ tasks/ telemetry/ workers/
| 文件 | 职责 | | 文件 | 职责 |
|------|------| |------|------|
| `crates/zclaw-saas/src/main.rs` | 路由注册入口 (12个 .merge()) | | `crates/zclaw-saas/src/main.rs` | 路由注册入口 (13个 .merge()) |
| `crates/zclaw-saas/src/auth/handlers.rs` | 认证端点 | | `crates/zclaw-saas/src/auth/handlers.rs` | 认证端点 |
| `crates/zclaw-saas/src/relay/` | 聊天中转 | | `crates/zclaw-saas/src/relay/` | 聊天中转 |
| `crates/zclaw-saas/src/billing/` | 计费 | | `crates/zclaw-saas/src/billing/` | 计费 |
| `crates/zclaw-saas/src/knowledge/` | 知识库 | | `crates/zclaw-saas/src/knowledge/` | 知识库 |
| `crates/zclaw-saas/src/workers/` | 7 个后台 Worker | | `crates/zclaw-saas/src/workers/` | 7 个后台 Worker |
| `crates/zclaw-saas/migrations/` | SQL 迁移 (32 文件) | | `crates/zclaw-saas/migrations/` | SQL 迁移 (20 文件) |
| `admin-v2/src/pages/` | 15 页管理后台 | | `admin-v2/src/pages/` | 17 页管理后台 |
| `desktop/src/lib/saas-client.ts` | 前端 SaaS API 客户端 | | `desktop/src/lib/saas-client.ts` | 前端 SaaS API 客户端 |
| `desktop/src/store/saasStore.ts` | SaaS 认证状态 | | `desktop/src/store/saasStore.ts` | SaaS 认证状态 |