docs: V13 系统性功能审计 — 6 项新发现 + TRUTH.md 数字校准
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
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
V13 审计聚焦 V12 后新增功能 (行业配置/Knowledge/Hermes/管家主动性): - 总体健康度 82/100 (V12: 76) - P1 新发现 3 项: TrajectoryRecorder 未注册/industryStore 孤立/桌面端无 Knowledge Search - P2 新发现 3 项: Webhook 孤儿表/Structured Data 无 Admin/PersistentMemoryStore 遗留 - 修正 V12 错误认知 5 项: Butler/MCP/Gateway/Presentation 已接通 - TRUTH.md 数字校准: Tauri 184→191, SaaS 122→136, @reserved 33→24
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# ZCLAW 审计追踪表 (V12)
|
||||
# ZCLAW 审计追踪表 (V13)
|
||||
|
||||
> **创建日期**: 2026-03-29
|
||||
> **审计版本**: V12 模块化端到端审计
|
||||
> **最后更新**: 2026-04-04
|
||||
> **审计版本**: V13 系统性功能审计
|
||||
> **最后更新**: 2026-04-12
|
||||
> **追踪规则**: 每个发现项记录状态变更,修复后需附验证方法
|
||||
|
||||
---
|
||||
@@ -320,3 +320,49 @@
|
||||
|
||||
### 待后续决策的 P1
|
||||
| M4-04 深层 | 自主授权后端强制阻断 | **WONTFIX** | Tauri 命令层已阻断手动触发;scheduler/trigger bypass 是有意设计;4 层防御深度已足够 |
|
||||
|
||||
---
|
||||
|
||||
## V13 系统性功能审计 (2026-04-12)
|
||||
|
||||
> 审计范围: 全系统功能一致性 + 系统可用性。聚焦 V12 后新增功能 (行业配置/Knowledge/Hermes/管家主动性) + V12 高风险模块复验。
|
||||
> 完整报告: `docs/features/audit-v13/V13-FULL-REPORT.md`
|
||||
|
||||
### P1: 严重级
|
||||
|
||||
| ID | 问题 | 状态 | 验证方法 |
|
||||
|----|------|------|----------|
|
||||
| V13-GAP-01 | TrajectoryRecorderMiddleware 未注册到中间件链 | **OPEN** | `grep trajectory crates/zclaw-kernel/src/kernel/mod.rs` — 零匹配。中间件代码存在 (`trajectory_recorder.rs`),有测试,但 `create_middleware_chain()` 中未注册。Schema v4 `trajectory_events` 表已创建但零数据流入。 |
|
||||
| V13-GAP-02 | industryStore 未被任何组件导入 | **OPEN** | `grep from.*industryStore\|useIndustryStore desktop/src/` — 仅自身文件。Store 存在且 `viking_load_industry_keywords` 后端链路正常,但桌面端无 UI 展示行业配置状态。 |
|
||||
| V13-GAP-03 | 桌面端未接入 Knowledge Search API | **OPEN** | `grep knowledge/search desktop/src/` — 零匹配。SaaS 有 `POST /api/v1/knowledge/search` 端点,Admin-v2 已消费,但桌面端不搜索知识库。 |
|
||||
|
||||
### P2: 高优先级
|
||||
|
||||
| ID | 问题 | 状态 | 验证方法 |
|
||||
|----|------|------|----------|
|
||||
| V13-GAP-04 | Webhook 孤儿迁移 (代码已删但表仍在) | **OPEN** | `crates/zclaw-saas/migrations/20260403000002_webhooks.sql` 存在,但 `crates/zclaw-saas/src/` 中零 webhook 代码 |
|
||||
| V13-GAP-05 | Structured Data Source 5 路由无 Admin UI | **OPEN** | `grep structured admin-v2/src/services/knowledge.ts` — 零匹配 |
|
||||
| V13-GAP-06 | PersistentMemoryStore 遗留模块 | **OPEN** | `desktop/src-tauri/src/memory/persistent.rs` 有 `#[allow(dead_code)]`,数据流已统一到 VikingStorage |
|
||||
|
||||
### V13 修正 V12 错误认知
|
||||
|
||||
| 项目 | V12 认知 | V13 实际 |
|
||||
|------|---------|---------|
|
||||
| Butler Pain Aggregator | @reserved 无前端调用 | **已接通** — `viking-client.ts:261-308` 有 5 个 invoke,ButlerPanel 3 组件消费 |
|
||||
| MCP 生命周期 | 无前端调用 | **已接通** — `mcp-client.ts:49-76` 有 4 个 invoke,MCPServices.tsx 消费 |
|
||||
| Reflection Engine driver | driver=None | **已修复** — `reflection.rs:787-792` 从 kernel_state 获取真实 driver |
|
||||
| Gateway 控制命令 | 无前端调用 | **已接通** — `tauri-gateway.ts:77-217` 有调用 |
|
||||
| Pipeline analyze_presentation | 无前端调用 | **已接通** — `PresentationContainer.tsx:55` 有调用 |
|
||||
|
||||
### V13 状态变更日志
|
||||
|
||||
| 日期 | ID | 变更 | 备注 |
|
||||
|------|-----|------|------|
|
||||
| 2026-04-12 | - | V13 审计开始 | 聚焦 V12 后新增功能 + 高风险模块复验 |
|
||||
| 2026-04-12 | V13-GAP-01 | NEW | TrajectoryRecorderMiddleware 未注册中间件链 |
|
||||
| 2026-04-12 | V13-GAP-02 | NEW | industryStore 无组件导入 |
|
||||
| 2026-04-12 | V13-GAP-03 | NEW | 桌面端无 Knowledge Search |
|
||||
| 2026-04-12 | V13-GAP-04 | NEW | Webhook 孤儿迁移 |
|
||||
| 2026-04-12 | V13-GAP-05 | NEW | Structured Data Source 无 Admin UI |
|
||||
| 2026-04-12 | V13-GAP-06 | NEW | PersistentMemoryStore 遗留 |
|
||||
| 2026-04-12 | - | V13 修正 | Butler/MCP/Gateway/Presentation 已接通,非孤儿命令 |
|
||||
|
||||
304
docs/features/audit-v13/V13-FULL-REPORT.md
Normal file
304
docs/features/audit-v13/V13-FULL-REPORT.md
Normal file
@@ -0,0 +1,304 @@
|
||||
# V13 系统性功能审计报告
|
||||
|
||||
> **审计日期**: 2026-04-12
|
||||
> **审计范围**: 全系统功能一致性 + 系统可用性
|
||||
> **审计方法**: 量化基线对比 + 五种断链模式扫描 + 功能逐项链路追踪
|
||||
> **基准对比**: V12 模块化审计 (2026-04-04)
|
||||
|
||||
---
|
||||
|
||||
## 1. 执行摘要
|
||||
|
||||
### 1.1 总体健康度: **82/100** (V12: 加权平均 76/100)
|
||||
|
||||
V12 后新增的 4 大功能系统 (行业配置/Knowledge/Hermes/管家主动性) 大部分已正确接通。发现 **3 个确认断链** 和 **3 个确认差距**,无 P0 级问题。
|
||||
|
||||
### 1.2 Top 5 发现
|
||||
|
||||
| # | 发现 | 严重度 | 类型 |
|
||||
|---|------|--------|------|
|
||||
| 1 | TrajectoryRecorderMiddleware 未注册到中间件链 | **P1** | 写了没接 |
|
||||
| 2 | industryStore 未被任何组件导入 | **P1** | 写了没接 |
|
||||
| 3 | 桌面端未接入 Knowledge Search API | **P1** | 写了没接 |
|
||||
| 4 | Webhook 孤儿表 (迁移存在但代码已删) | **P2** | 存了没用 |
|
||||
| 5 | Structured Data Source 路由无 Admin-v2 消费者 | **P2** | 写了没接 |
|
||||
|
||||
### 1.3 修正 V12 错误认知
|
||||
|
||||
| V12 认知 | V13 实际 | 说明 |
|
||||
|----------|---------|------|
|
||||
| Butler/Pain Aggregator 5 命令 @reserved 无前端调用 | **已接通** | `viking-client.ts` 有全部 5 个 invoke 调用,ButlerPanel 3 个组件消费 |
|
||||
| MCP 4 命令无前端调用 | **已接通** | `mcp-client.ts` 有全部 4 个 invoke 调用,MCPServices.tsx 消费 |
|
||||
| Reflection Engine driver=None | **已修复** | `reflection.rs:787-792` 从 kernel_state 获取真实 driver |
|
||||
| Pipeline Presentation 无前端调用 | **部分接通** | `analyze_presentation` 被 PresentationContainer.tsx 调用 |
|
||||
| Gateway 控制命令无前端调用 | **已接通** | `tauri-gateway.ts` 有 zclaw_start/stop/restart/version 调用 |
|
||||
| Embedding 全部 NoOp | **设计如此** | NoOp 仅是默认值,用户配置后替换为真实 provider |
|
||||
| Memory 双存储未统一 | **事实已统一** | PersistentMemoryStore 仅保留用于遗留嵌入配置,所有数据走 VikingStorage |
|
||||
|
||||
---
|
||||
|
||||
## 2. 量化基线 (TRUTH.md 漂移校准)
|
||||
|
||||
### 2.1 指标对比
|
||||
|
||||
| 指标 | TRUTH.md 值 | V13 当前值 | 偏差 | 说明 |
|
||||
|------|------------|-----------|------|------|
|
||||
| Tauri 命令 | 184 | **191** | **+7** | 行业/Hermes 等新增命令 |
|
||||
| 前端 invoke | 105 | **106** | +1 | industryStore 新增 1 处 |
|
||||
| @reserved | 33 | **24** | **-9** | 部分命令已接通前端 |
|
||||
| 孤儿命令 | ~46 | **~61** | **+15** | 191-106-24=61, 含新增命令 |
|
||||
| Rust 测试 #[test] | 431 | **433** | +2 | |
|
||||
| Rust 测试 #[tokio::test] | 367 | **368** | +1 | |
|
||||
| Rust 测试合计 | 798 | **801** | +3 | |
|
||||
| dead_code (crates) | - | **16** | - | 14 文件 |
|
||||
| dead_code (src-tauri) | - | **27** | - | 15 文件 |
|
||||
| dead_code 合计 | 76 | **43** | **-33** | 显著减少 |
|
||||
| TODO/FIXME (Rust) | 4 | **3** | -1 | |
|
||||
| TODO/FIXME (前端) | 4 | **1** | -3 | |
|
||||
| Zustand Store | 20 | **21** | +1 | 含 industryStore |
|
||||
| React 组件 | 104 | **104** | 0 | |
|
||||
| SaaS .route() | 122 | **136** | **+14** | Knowledge/Industry/Billing 等新增路由 |
|
||||
| SKILL.md | 75 | **75** | 0 | |
|
||||
| 前端 lib | 83 | **83** | 0 | |
|
||||
| Rust LOC (crates) | ~74,600 | **77,025** | +2,425 | |
|
||||
| Rust LOC (src-tauri) | - | **61,414** | - | |
|
||||
| Rust LOC 总计 | - | **138,439** | - | crates + src-tauri |
|
||||
|
||||
### 2.2 关键偏差分析
|
||||
|
||||
1. **Tauri 命令 184→191 (+7)**: V12 后新增命令 (行业加载/Hermes 组件/管家主动性)
|
||||
2. **@reserved 33→24 (-9)**: Butler/MCP 等命令已接通前端,不再需要 @reserved 标记
|
||||
3. **SaaS .route() 122→136 (+14)**: Knowledge Phase A-D + Industry + Billing + Role 等新增路由
|
||||
4. **dead_code 76→43 (-33)**: 大量清理工作已完成
|
||||
|
||||
---
|
||||
|
||||
## 3. 五种断链模式分析
|
||||
|
||||
### 3.1 "写了没接" — 确认 3 项
|
||||
|
||||
#### GAP-01: TrajectoryRecorderMiddleware 未注册 (P1)
|
||||
|
||||
- **位置**: `crates/zclaw-runtime/src/middleware/trajectory_recorder.rs` (完整实现, 有测试)
|
||||
- **断链点**: `crates/zclaw-kernel/src/kernel/mod.rs` 的 `create_middleware_chain()` 中 **零匹配** `trajectory`
|
||||
- **影响**: Hermes Schema v4 创建了 `trajectory_events` 表,TrajectoryRecorder 代码存在但永不执行 → 轨迹数据零流入 → 经验分析基础缺失
|
||||
- **修复**: 在 `create_middleware_chain()` 末尾注册 TrajectoryRecorder (优先级 @650)
|
||||
|
||||
#### GAP-02: industryStore 未被组件导入 (P1)
|
||||
|
||||
- **位置**: `desktop/src/store/industryStore.ts` (完整 Store, 有 persist)
|
||||
- **断链点**: `Grep 'from.*industryStore\|useIndustryStore' desktop/src/` 仅返回自身文件
|
||||
- **影响**: 行业配置数据可从 SaaS 获取,可推送到 Rust 后端 (`viking_load_industry_keywords`),但**桌面端 UI 无法展示行业配置状态**
|
||||
- **注意**: `industryStore` 中的 `fetchIndustries()` 调用 `viking_load_industry_keywords` 成功后端数据流通,但 Store 本身未被任何 React 组件消费
|
||||
- **修复**: 在 Settings 或 ButlerPanel 中添加行业配置展示组件
|
||||
|
||||
#### GAP-03: 桌面端未接入 Knowledge Search API (P1)
|
||||
|
||||
- **位置**: SaaS 有 `POST /api/v1/knowledge/search` 端点
|
||||
- **断链点**: `desktop/src/` 中搜索 `knowledge/search` **零匹配**
|
||||
- **影响**: 桌面端用户无法搜索 SaaS 知识库中的内容。Knowledge 仅通过 Admin-v2 管理
|
||||
- **修复**: 在 saasStore 或新建 knowledgeStore 中添加搜索方法,接入 VikingPanel 或独立面板
|
||||
|
||||
### 3.2 "接了没传" — 无确认项
|
||||
|
||||
| 检查项 | 状态 | 说明 |
|
||||
|--------|------|------|
|
||||
| 行业关键词传播 | ✅ 正常 | `industryStore.ts:87` → `viking_commands.rs:708` → `kernel/mod.rs:244` 完整连通 |
|
||||
| 计费用量增量 | ✅ 正常 | 双路径: 桌面 handStore 手动报告 + SaaS relay 自动递增 |
|
||||
| Reflection Engine driver | ✅ 正常 | `reflection.rs:787-792` 从 kernel_state 获取真实 LLM driver |
|
||||
|
||||
### 3.3 "传了没存" — 无确认项
|
||||
|
||||
| 检查项 | 状态 | 说明 |
|
||||
|--------|------|------|
|
||||
| User profiles 持久化 | ✅ 正常 | `user_profiler.rs:107` 写入, `agent.rs:188` 读取 |
|
||||
| Trajectory events | ⚠️ 关联 GAP-01 | 表存在+代码存在,但因中间件未注册导致零数据流入 |
|
||||
|
||||
### 3.4 "存了没用" — 确认 1 项
|
||||
|
||||
#### GAP-04: Webhook 孤儿表 (P2)
|
||||
|
||||
- **位置**: `crates/zclaw-saas/migrations/20260403000002_webhooks.sql`
|
||||
- **现状**: 创建了 `webhook_subscriptions` 和 `webhook_deliveries` 表,但所有业务代码已删除
|
||||
- **影响**: 新数据库部署时会创建无用表,占用 schema 空间
|
||||
- **修复**: 添加 down migration 或在 schema 中标注 deprecated
|
||||
|
||||
### 3.5 "双系统不同步" — 确认 1 项
|
||||
|
||||
#### GAP-05: PersistentMemoryStore 遗留 (P2)
|
||||
|
||||
- **位置**: `desktop/src-tauri/src/memory/persistent.rs` (有 `#[allow(dead_code)]`)
|
||||
- **现状**: 数据流已统一到 VikingStorage,PersistentMemoryStore 仅保留用于遗留嵌入配置路径
|
||||
- **影响**: 代码复杂度增加,两个独立的 SQLite 连接
|
||||
- **修复**: 将嵌入配置路径迁移到 VikingStorage,然后删除 PersistentMemoryStore
|
||||
|
||||
### 3.6 "写了没接" — Admin-v2 侧
|
||||
|
||||
#### GAP-06: Structured Data Source 路由无消费者 (P2)
|
||||
|
||||
- **位置**: SaaS Knowledge 模块有 5 个 structured source 路由
|
||||
- **断链点**: `admin-v2/src/services/knowledge.ts` 中搜索 `structured` **零匹配**
|
||||
- **影响**: 结构化数据源 API 存在但无管理界面
|
||||
- **修复**: 在 Admin Knowledge 页面添加结构化数据源管理
|
||||
|
||||
---
|
||||
|
||||
## 4. 功能逐项审计结果
|
||||
|
||||
### 4.1 V12 后新增功能
|
||||
|
||||
#### 行业配置系统 — 完成度: **75/100**
|
||||
|
||||
| 链路环节 | 状态 | 说明 |
|
||||
|----------|------|------|
|
||||
| SaaS 行业 CRUD (10 路由) | ✅ | handlers.rs + service.rs 完整 |
|
||||
| Admin-v2 行业管理页面 | ✅ | Industries.tsx 完整 |
|
||||
| Desktop industryStore | ⚠️ GAP-02 | Store 存在但无组件导入 |
|
||||
| Tauri viking_load_industry_keywords | ✅ | 命令定义+注册+调用 |
|
||||
| ButlerRouter 行业关键词注入 | ✅ | kernel/mod.rs:244 共享 Arc |
|
||||
| 4 内置行业配置 | ✅ | 医院行政/酒店/教育/零售 |
|
||||
|
||||
#### Knowledge Phase A-D — 完成度: **85/100**
|
||||
|
||||
| 链路环节 | 状态 | 说明 |
|
||||
|----------|------|------|
|
||||
| Knowledge SaaS (29 路由) | ✅ | Category/Item/Version/Search/Seed/Analytics |
|
||||
| Admin-v2 Knowledge 页面 | ✅ | 消费 categories/items/search/analytics |
|
||||
| Knowledge Analytics (5 端点) | ✅ | Knowledge.tsx:534-558 全部消费 |
|
||||
| Structured Data Source (5 路由) | ⚠️ GAP-06 | 无 admin-v2 消费者 |
|
||||
| Desktop Knowledge Search | ⚠️ GAP-03 | 无桌面端调用 |
|
||||
| 种子知识冷启动 | ✅ | seed 端点 + 种子模板 |
|
||||
|
||||
#### Hermes Intelligence Pipeline — 完成度: **65/100**
|
||||
|
||||
| 链路环节 | 状态 | 说明 |
|
||||
|----------|------|------|
|
||||
| ExperienceStore | ✅ | 实例化在 experience.rs,有 Tauri 命令 |
|
||||
| UserProfileStore | ✅ | 写入 user_profiler.rs,读取 agent.rs |
|
||||
| TrajectoryRecorder | ⚠️ GAP-01 | 代码完整但未注册中间件链 |
|
||||
| NlScheduleParser | ✅ | 中文时间→cron 转换 |
|
||||
| Schema v4 (user_profiles + trajectory) | ✅ | 表已创建 |
|
||||
| Trajectory 数据实际流入 | ❌ | 因 GAP-01 导致零数据 |
|
||||
|
||||
#### 管家主动性 (Phase 2-5) — 完成度: **80/100**
|
||||
|
||||
| 链路环节 | 状态 | 说明 |
|
||||
|----------|------|------|
|
||||
| ButlerRouter 语义路由 | ✅ | SemanticSkillRouter TF-IDF |
|
||||
| 触发信号持久化 | ✅ | VikingStorage |
|
||||
| 跨会话连续性 | ✅ | 痛点回访 + 经验检索 |
|
||||
| ButlerPanel UI | ✅ | Insights/Proposals/Memory 3 区 |
|
||||
| Pain Aggregator 5 命令 | ✅ | viking-client.ts 全部 5 个 invoke |
|
||||
| 行业配置注入 ButlerRouter | ✅ | kernel/mod.rs 共享 Arc |
|
||||
|
||||
### 4.2 V12 高风险模块复验
|
||||
|
||||
#### M3 Hands System — V12: 58/100 → V13: **72/100**
|
||||
|
||||
提升原因: Butler/MCP 命令接通确认, 数据流验证通过。仍有孤儿命令 (gateway control 细粒度命令)。
|
||||
|
||||
#### M4 Intelligence Layer — V12: 61/100 → V13: **78/100**
|
||||
|
||||
提升原因: Reflection Engine driver 已连接, User Profile 持久化已验证, PersistentMemoryStore 事实已统一。仍有 GAP-01 (TrajectoryRecorder)。
|
||||
|
||||
#### M2 Agent Clones — V12: 67/100 → V13: **75/100**
|
||||
|
||||
维持提升: CRUD 完整, 身份演化链路正常, onboarding wizard 存在。
|
||||
|
||||
### 4.3 V12 模块评分更新
|
||||
|
||||
| 模块 | V12 评分 | V13 评分 | 变化 | 关键变化 |
|
||||
|------|---------|---------|------|----------|
|
||||
| M1 智能对话 | 91 | **91** | 0 | 无回归 |
|
||||
| M2 Agent 分身 | 67 | **75** | +8 | CRUD 验证通过 |
|
||||
| M3 Hands 系统 | 58 | **72** | +14 | Butler/MCP 接通确认 |
|
||||
| M4 智能层 | 61 | **78** | +17 | Reflection driver 已连, User Profile 已通 |
|
||||
| M5 技能生态 | 85 | **85** | 0 | 无回归 |
|
||||
| M6 Pipeline 工作流 | 72 | **75** | +3 | Pipeline Presentation 部分接通 |
|
||||
| M7 SaaS 桌面端 | 85 | **83** | -2 | Knowledge Search 未接桌面 (GAP-03) |
|
||||
| M8 Admin V2 | 82 | **83** | +1 | Knowledge Analytics 全部接通 |
|
||||
| M9 通信安全 | 86 | **86** | 0 | 无回归 |
|
||||
| M11 Classroom | 70 | **72** | +2 | 小幅改善 |
|
||||
|
||||
**加权平均**: V12 ~76/100 → V13 **82/100**
|
||||
|
||||
---
|
||||
|
||||
## 5. 技术债目录
|
||||
|
||||
### 5.1 dead_code 标记分类 (43 处)
|
||||
|
||||
| 类别 | 数量 | 说明 |
|
||||
|------|------|------|
|
||||
| 真正预留 (保留) | ~12 | A2A/WASM feature-gated, driver 反序列化结构体 |
|
||||
| 应该删除 | ~8 | Webhook 相关, PersistentMemoryStore 遗留 |
|
||||
| 应该接通 | ~5 | TrajectoryRecorder, HTML/Markdown export |
|
||||
| 可接受 (类型转换/兼容) | ~18 | driver 响应字段, 中间件辅助 |
|
||||
|
||||
### 5.2 孤儿命令分析 (约 61 个)
|
||||
|
||||
- **已接通 (之前误标)**: ~9 个 (Butler 5 + MCP 4) — 应移除 @reserved 标记
|
||||
- **合理的 @reserved**: 24 个 — 为未来功能预留
|
||||
- **真正孤儿**: ~28 个 — 含 gateway 细粒度控制、viking CLI、classroom 部分、memory 基础命令
|
||||
|
||||
### 5.3 孤儿 SaaS 表
|
||||
|
||||
| 表名 | 状态 | 建议 |
|
||||
|------|------|------|
|
||||
| webhook_subscriptions | 代码已删,迁移仍在 | 添加 down migration |
|
||||
| webhook_deliveries | 代码已删,迁移仍在 | 添加 down migration |
|
||||
|
||||
---
|
||||
|
||||
## 6. 修复计划
|
||||
|
||||
### P1 — 必须修复 (影响功能完整性)
|
||||
|
||||
| ID | 问题 | 修复方案 | 影响文件 | 工作量 |
|
||||
|----|------|----------|----------|--------|
|
||||
| FIX-01 | TrajectoryRecorder 未注册中间件 | 在 `create_middleware_chain()` 末尾添加注册 (优先级 @650) | `crates/zclaw-kernel/src/kernel/mod.rs` | 0.5h |
|
||||
| FIX-02 | industryStore 无组件消费 | 在 Settings 或 ButlerPanel 添加行业配置展示 | `desktop/src/components/` + store import | 2h |
|
||||
| FIX-03 | 桌面端无 Knowledge Search | 新建 knowledgeStore 或扩展 saasStore,添加搜索 UI | `desktop/src/store/` + `desktop/src/components/` | 4h |
|
||||
|
||||
### P2 — 应该修复 (代码清洁度)
|
||||
|
||||
| ID | 问题 | 修复方案 | 影响文件 | 工作量 |
|
||||
|----|------|----------|----------|--------|
|
||||
| FIX-04 | Webhook 孤儿迁移 | 添加 down migration 或标注 deprecated | `crates/zclaw-saas/migrations/` | 0.5h |
|
||||
| FIX-05 | Structured Data Source 无 Admin UI | 在 Admin Knowledge 页面添加管理 | `admin-v2/src/` | 4h |
|
||||
| FIX-06 | PersistentMemoryStore 遗留 | 迁移嵌入配置到 VikingStorage 后删除 | `desktop/src-tauri/src/memory/` | 3h |
|
||||
|
||||
### P3 — 可选改善
|
||||
|
||||
| ID | 问题 | 修复方案 | 工作量 |
|
||||
|----|------|----------|--------|
|
||||
| FIX-07 | ~28 孤儿 Tauri 命令未标注 | 审计并标注 @reserved 或删除 | 2h |
|
||||
| FIX-08 | @reserved 标记过时 (Butler/MCP 已接通) | 移除 9 个过时 @reserved | 0.5h |
|
||||
| FIX-09 | dead_code 清理 (应删除的 ~8 处) | 移除确认无用的 dead code | 1h |
|
||||
|
||||
---
|
||||
|
||||
## 7. 附录
|
||||
|
||||
### 7.1 确认已接通的功能 (修正 V12 错误认知)
|
||||
|
||||
| 功能 | 前端调用位置 | 消费组件 |
|
||||
|------|-------------|----------|
|
||||
| Butler Pain Aggregator 5 命令 | `desktop/src/lib/viking-client.ts:261-308` | ButlerPanel 3 个组件 + useButlerInsights hook |
|
||||
| MCP 生命周期 4 命令 | `desktop/src/lib/mcp-client.ts:49-76` | MCPServices.tsx |
|
||||
| Gateway 控制命令 | `desktop/src/lib/tauri-gateway.ts:77-217` | App.tsx + connectionStore |
|
||||
| Pipeline analyze_presentation | `desktop/src/components/presentation/PresentationContainer.tsx:55` | PresentationContainer |
|
||||
| Knowledge Analytics 5 端点 | `admin-v2/src/pages/Knowledge.tsx:534-558` | AnalyticsPanel |
|
||||
| Reflection Engine driver | `desktop/src-tauri/src/intelligence/reflection.rs:787-792` | 从 kernel_state 获取 |
|
||||
|
||||
### 7.2 搜索模式参考 (未来复审计)
|
||||
|
||||
| 检查项 | Grep 模式 | 路径 |
|
||||
|--------|----------|------|
|
||||
| Tauri 命令定义 | `#\[.*tauri::command` | `desktop/src-tauri/src/` |
|
||||
| 前端 invoke 调用 | `invoke\(` | `desktop/src/` |
|
||||
| @reserved 标注 | `@reserved` | `desktop/src-tauri/src/` |
|
||||
| dead_code 标记 | `allow\(dead_code\)` | `crates/` + `desktop/src-tauri/src/` |
|
||||
| 孤儿 Store | Store 文件名 vs `from.*StoreName` 引用 | `desktop/src/store/` |
|
||||
| SaaS 路由 | `\.route\(` | `crates/zclaw-saas/src/` |
|
||||
| 中间件注册 | 中间件 struct 名称 | `crates/zclaw-kernel/src/kernel/mod.rs` |
|
||||
Reference in New Issue
Block a user