docs: V13 审计修复文档同步 — 6项状态更新 + 中间件14→15层
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

AUDIT_TRACKER: V13-GAP-01~05 FIXED, GAP-06 PARTIALLY_FIXED
wiki/middleware: 15层 (TrajectoryRecorder V13注册)
wiki/log: 2026-04-13 变更记录
CLAUDE.md: 中间件链 14→15 层

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
iven
2026-04-13 01:38:55 +08:00
parent c167ea4ea5
commit fd3e7fd2cb
5 changed files with 26 additions and 12 deletions

View File

@@ -545,7 +545,7 @@ refactor(store): 统一 Store 数据获取方式
| Pipeline DSL | ✅ 稳定 | 04-01 17 个 YAML 模板 + DAG 执行器 | | Pipeline DSL | ✅ 稳定 | 04-01 17 个 YAML 模板 + DAG 执行器 |
| Hands 系统 | ✅ 稳定 | 9 启用 (Browser/Collector/Researcher/Twitter/Whiteboard/Slideshow/Speech/Quiz/Clip) | | Hands 系统 | ✅ 稳定 | 9 启用 (Browser/Collector/Researcher/Twitter/Whiteboard/Slideshow/Speech/Quiz/Clip) |
| 技能系统 (Skills) | ✅ 稳定 | 75 个 SKILL.md + 语义路由 | | 技能系统 (Skills) | ✅ 稳定 | 75 个 SKILL.md + 语义路由 |
| 中间件链 | ✅ 稳定 | 14 层 (含 DataMasking@90, ButlerRouter, TrajectoryRecorder@650) | | 中间件链 | ✅ 稳定 | 15 层 (含 DataMasking@90, ButlerRouter, TrajectoryRecorder@650 — V13注册) |
### 关键架构模式 ### 关键架构模式

View File

@@ -332,17 +332,17 @@
| ID | 问题 | 状态 | 验证方法 | | 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-01 | TrajectoryRecorderMiddleware 未注册到中间件链 | **FIXED** | `grep trajectory crates/zclaw-kernel/src/kernel/mod.rs`已注册 @650 优先级。通过 MemoryStore.pool() 创建 TrajectoryStore。 |
| V13-GAP-02 | industryStore 未被任何组件导入 | **OPEN** | `grep from.*industryStore\|useIndustryStore desktop/src/` — 仅自身文件。Store 存在且 `viking_load_industry_keywords` 后端链路正常,但桌面端无 UI 展示行业配置状态。 | | V13-GAP-02 | industryStore 未被任何组件导入 | **FIXED** | ButlerPanel/index.tsx 导入 useIndustryStore展示行业专长卡片 + 关键词标签,自动拉取。 |
| V13-GAP-03 | 桌面端未接入 Knowledge Search API | **OPEN** | `grep knowledge/search desktop/src/` — 零匹配。SaaS 有 `POST /api/v1/knowledge/search` 端点Admin-v2 已消费,但桌面端不搜索知识库。 | | V13-GAP-03 | 桌面端未接入 Knowledge Search API | **FIXED** | saas-knowledge.ts mixin + VikingPanel SaaS KB 搜索 UI (登录后可见)。 |
### P2: 高优先级 ### P2: 高优先级
| ID | 问题 | 状态 | 验证方法 | | ID | 问题 | 状态 | 验证方法 |
|----|------|------|----------| |----|------|------|----------|
| V13-GAP-04 | Webhook 孤儿迁移 (代码已删但表仍在) | **OPEN** | `crates/zclaw-saas/migrations/20260403000002_webhooks.sql` 存在,但 `crates/zclaw-saas/src/` 中零 webhook 代码 | | V13-GAP-04 | Webhook 孤儿迁移 (代码已删但表仍在) | **FIXED** | 标注 deprecated + 添加 down migration 注释schema 兼容保留 |
| V13-GAP-05 | Structured Data Source 5 路由无 Admin UI | **OPEN** | `grep structured admin-v2/src/services/knowledge.ts` — 零匹配 | | V13-GAP-05 | Structured Data Source 5 路由无 Admin UI | **FIXED** | Knowledge.tsx 新增"结构化数据"TabCRUD + 行浏览 |
| V13-GAP-06 | PersistentMemoryStore 遗留模块 | **OPEN** | `desktop/src-tauri/src/memory/persistent.rs``#[allow(dead_code)]`,数据流已统一到 VikingStorage | | V13-GAP-06 | PersistentMemoryStore 遗留模块 | **PARTIALLY_FIXED** | 精化 dead_code 标注 (活跃: embedding config / 遗留: data ops)。完整迁移至 VikingStorage 留后续 (~3h) |
### V13 修正 V12 错误认知 ### V13 修正 V12 错误认知
@@ -365,4 +365,10 @@
| 2026-04-12 | V13-GAP-04 | NEW | Webhook 孤儿迁移 | | 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-05 | NEW | Structured Data Source 无 Admin UI |
| 2026-04-12 | V13-GAP-06 | NEW | PersistentMemoryStore 遗留 | | 2026-04-12 | V13-GAP-06 | NEW | PersistentMemoryStore 遗留 |
| 2026-04-13 | V13-GAP-01 | FIXED | 注册 TrajectoryRecorderMiddleware @650 + MemoryStore.pool() getter |
| 2026-04-13 | V13-GAP-02 | FIXED | ButlerPanel 行业专长展示 + auto-fetch |
| 2026-04-13 | V13-GAP-03 | FIXED | saas-knowledge mixin + VikingPanel SaaS KB UI |
| 2026-04-13 | V13-GAP-04 | FIXED | deprecated 标注 + down migration 注释 |
| 2026-04-13 | V13-GAP-05 | FIXED | Knowledge.tsx 结构化数据 Tab |
| 2026-04-13 | V13-GAP-06 | PARTIALLY_FIXED | dead_code 精化标注,完整迁移留后续 |
| 2026-04-12 | - | V13 修正 | Butler/MCP/Gateway/Presentation 已接通,非孤儿命令 | | 2026-04-12 | - | V13 修正 | Butler/MCP/Gateway/Presentation 已接通,非孤儿命令 |

View File

@@ -34,7 +34,7 @@ status: active
| Zustand Store | 17 文件 + chat/4子store = 21 | `ls desktop/src/store/` | | Zustand Store | 17 文件 + chat/4子store = 21 | `ls 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 页面 | 15 个 (.tsx) | `ls admin-v2/src/pages/` |
| 中间件 | 14 层 runtime + 6 层 SaaS HTTP | `kernel/mod.rs` + `zclaw-saas middleware` | | 中间件 | 15 层 runtime + 6 层 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` | | TODO/FIXME | 前端 4 + Rust 4 = 8 | `grep TODO/FIXME` |

View File

@@ -1,6 +1,6 @@
--- ---
title: 变更日志 title: 变更日志
updated: 2026-04-12 updated: 2026-04-13
status: active status: active
tags: [log, history] tags: [log, history]
--- ---
@@ -191,7 +191,15 @@ Phase 5 — 主动行为激活 (3 files, 152 insertions):
> 更新规则: 每次重大变更后追加一条,最新在最上面 > 更新规则: 每次重大变更后追加一条,最新在最上面
### [2026-04-11] 详情面板 7 问题修复 ### [2026-04-13] V13 审计 6 项修复全部完成
- FIX-01 (P1): TrajectoryRecorderMiddleware 注册到 create_middleware_chain() @650Hermes 轨迹数据开始流入
- FIX-02 (P1): industryStore 接入 ButlerPanel桌面端展示行业专长卡片 + 自动拉取
- FIX-03 (P1): 桌面端知识库搜索 — saas-knowledge mixin + VikingPanel SaaS KB 搜索 UI
- FIX-04 (P2): Webhook 孤儿迁移标注 deprecated + down migration 注释
- FIX-05 (P2): Admin Knowledge 新增"结构化数据"Tab (CRUD + 行浏览)
- FIX-06 (P2): PersistentMemoryStore dead_code 精化标注 (完整迁移留后续)
- 文件: 11 个 (Rust 4 + TS 7), 358 行新增, 1 次提交
- P0: memory_search 空查询 min_similarity 默认值; hand_trigger null→handAutoTrigger; 重启后 chat 路由竞态修复 - P0: memory_search 空查询 min_similarity 默认值; hand_trigger null→handAutoTrigger; 重启后 chat 路由竞态修复
- P1: AgentInfo 扩展 UserProfile 桥接; 反思阈值降低 5→3; 反思 state restore peek+pop 竞态修复 - P1: AgentInfo 扩展 UserProfile 桥接; 反思阈值降低 5→3; 反思 state restore peek+pop 竞态修复

View File

@@ -20,7 +20,7 @@ tags: [module, middleware, runtime]
## 代码逻辑 ## 代码逻辑
### 14 层中间件(注册顺序见 `kernel/mod.rs:190-345` ### 15 层中间件(注册顺序见 `kernel/mod.rs:190-360`
| # | 中间件 | 文件 | 职责 | 注册条件 | | # | 中间件 | 文件 | 职责 | 注册条件 |
|---|--------|------|------|----------| |---|--------|------|------|----------|
@@ -37,7 +37,7 @@ 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` | 轨迹记录 + 压缩 | 始终 | | 14 | TrajectoryRecorder | `middleware/trajectory_recorder.rs` | 轨迹记录 + 压缩 | 始终 (V13-FIX-01 注册) |
### 优先级分类(来自 `middleware.rs` 头注释) ### 优先级分类(来自 `middleware.rs` 头注释)