- STABILIZATION_DIRECTIVE.md: feature freeze rules, banned actions, priorities - TRUTH.md: single source of truth for system state (crate counts, store counts) - AI_SESSION_PROMPTS.md: three-layer prompt system for AI sessions - Industry agent delivery design spec - Stabilization test suite for regression prevention - Delete stale ISSUE-TRACKER.md - Add .dockerignore for container builds - Add brainstorm session artifacts
7.9 KiB
7.9 KiB
ZCLAW 系统真相文档
更新日期: 2026-04-02 数据来源: V11 全面审计 + 二次审计 + 代码全量扫描 规则: 此文档是唯一真相源。所有其他文档如果与此冲突,以此为准。
1. 量化指标(已验证)
| 指标 | 实际值 | 验证方式 |
|---|---|---|
| Rust Crates | 10 个 (编译通过) | cargo check --workspace |
| Rust 代码行数 | ~66,000 | wc -l |
| Rust 单元测试 | 584 个 | cargo test --workspace |
| Tauri 命令 | 171 个 | grep #[tauri::command] + 注释排除 |
| Tauri 命令有前端调用 | 147 个 | @connected 标注(经二次审计修正) |
| Tauri 命令无前端调用 | 24 个 | @reserved 标注 |
| SKILL.md 文件 | 75 个 | ls skills/*.md | wc -l |
| Hands 启用 | 9 个 | Browser/Collector/Researcher/Clip/Twitter/Whiteboard/Slideshow/Speech/Quiz |
| Hands 禁用 | 2 个 | Predictor, Lead |
| SaaS API 端点 | 93 个(含 2 个 dev-only mock) | 路由注册全量统计 |
| LLM Provider | 8 个 | Kimi/Qwen/DeepSeek/Zhipu/OpenAI/Anthropic/Gemini/Local |
| Zustand Store | 18 个 | ls desktop/src/store/ (含 chat/ 子目录) |
| React 组件 | ~50 个 | ls desktop/src/components/ |
| 前端 TypeScript 测试 | 21 个文件 | 8 单元 + 12 E2E spec + 1 源码内 |
| Admin V2 页面 | 13 个 | admin-v2/src/pages/ 全量统计 |
| Admin V2 测试 | 322 个 | vitest 统计 |
| 中间件层 | 11 层 | 运行时注册 |
2. 端到端可用功能
以下功能经过代码验证,从前端到后端完整连通:
2.1 确认可用
| 功能 | 路径 | 验证状态 |
|---|---|---|
| 智能对话 | UI → chatStore → Tauri → Kernel → LLM Driver → 流式返回 | ✅ 代码完整 |
| Agent 分身管理 | UI → agentStore → Tauri → Kernel | ✅ 代码完整 |
| 模型切换 | UI → Settings → config.toml → Kernel | ✅ 代码完整 |
| Hand 触发 | UI → handStore → Tauri → Kernel → Hand 执行 | ✅ 代码完整 |
| Hand 审批 | UI → approvalStore → Tauri → Kernel | ✅ 代码完整 |
| 记忆搜索 | UI → memoryStore → Tauri → Growth → FTS5 | ✅ 代码完整 |
| 配置读写 | UI → Settings → config.toml | ✅ 代码完整 |
| SaaS 登录/注册 | UI → saasStore → SaaS API → PostgreSQL | ✅ 代码完整 |
| SaaS 配置同步 | UI → saasStore → SaaS API → Store 更新 | ✅ 代码完整 |
| Admin V2 管理 | admin-v2 → SaaS API → PostgreSQL | ✅ 代码完整 |
| 支付集成 | Admin → SaaS → Alipay/WeChat API | ✅ 代码完整 |
2.2 有已知缺陷
| 功能 | 问题 | 严重度 |
|---|---|---|
| Skill 执行 | 前端传空 context → Rust 反序列化失败 | P0 |
| Hand 异步结果 | Rust emit 事件但前端无 listen() | P1 |
| Agent 模板 | API 路径缺 /api/v1 前缀 → 404 | P1 |
| Trigger 更新 | 参数格式不匹配 → 静默失败 | P1 |
2.3 已实现但未接通前端
| 功能 | Rust 状态 | 前端状态 |
|---|---|---|
| Pipeline 执行 | DSL 引擎完整 | 无 invoke 调用 |
| Viking 适配 | FTS5 + TF-IDF | 11 个命令无前端调用 |
| Classroom | 27 个命令 | 7 个命令无前端调用 |
| Browser Hand | 22 个命令 | 部分无前端调用 |
| Multi-agent Director | 912 行 (feature-gated) | 未启用 |
2.4 前端孤立 invoke 调用(无 Rust 后端实现)
以下 5 个前端 invoke() 调用在 Rust 端无对应命令,运行时将返回 "command not found":
| 命令 | 前端文件 | 说明 |
|---|---|---|
viking_add_inline |
viking-client.ts |
无 Rust 实现, |
viking_server_status |
viking-client.ts |
同上 |
viking_server_stop |
viking-client.ts |
同上 |
viking_server_restart |
viking-client.ts |
同上 |
3. 已知缺陷清单
3.1 P0 — 必然崩溃
| ID | 问题 | 状态 |
|---|---|---|
| SEC2-P0-01 | skill_execute 反序列化崩溃 | 已修复 — kernel-skills.ts 注入真实 agentId/sessionId,workingDir 改为 null |
| SEC2-P0-02 | TaskTool::default() panic | 已修复 — 移除 impl Default |
3.2 P1 — 功能失效
| ID | 问题 | 状态 |
|---|---|---|
| SEC2-P1-01 | FactStore trait 零实现 | 已修复 — 移除死 trait,保留值类型 |
| SEC2-P1-02 | agent-templates 路径错误 | 已修复 — saas-client.ts 已添加 /api/v1 |
| SEC2-P1-03 | hand-execution-complete 无监听 | 已修复 — ChatArea 添加 Tauri 事件监听 + streamStore.cancelStream 补全 |
| SEC2-P1-04 | InMemoryStorage RwLock unwrap 级联 | 已修复 — 7 处改为 .expect() |
| SEC2-P1-05~07 | HandRun 持久化静默忽略 (3处) | 已修复 — tracing::warn! |
| SEC2-P1-08 | FTS 索引更新静默失败 | 已修复 — tracing::warn! |
| SEC2-P1-09 | Worker dispatch 静默失败 | 已修复 — tracing::warn! |
3.3 P1.5 — 代码质量补充修复
| ID | 问题 | 状态 |
|---|---|---|
| SEC2-P1.5-01 | Capability _ => false 通配符 | 已修复 — 3 个方法改为穷举匹配,grants() 保留通配符+注释说明 |
| SEC2-P1.5-02 | billing let _ = ... ? 冗余模式 | 已修复 — 移除冗余 let _ = |
| SEC2-P1.5-03 | relay SSE 错误路径 send 失败未记录 | 已修复 — 改为 if let Err + tracing::debug! |
| SEC2-P1.5-04 | WASM runner 缺少状态注解 | 已修复 — 添加 active module 说明 |
| SEC2-P1.5-05 | Tauri 命令无连接状态标注 | 已修复 — 171/171 个命令已标注,经二次审计修正 19 个误标(147 @connected / 24 @reserved) |
| SEC2-P1.5-06 | extract_token_usage 静默丢弃解析错误 | 已修复 — 添加 tracing::debug! |
| SEC2-P1.5-07 | relay current_key_id 防御性 unwrap | 已修复 — 改为 ok_or_else 返回内部错误 |
3.3 P2 — 代码质量
| ID | 问题 |
|---|---|
| SEC2-P2-01~10 | 10 项代码质量问题(详见二次审计) |
4. 死代码清单
| 文件/目录 | 行数 | 状态 | 建议 |
|---|---|---|---|
desktop/src/lib/audit-logger.ts |
170 | 已删除 | - |
desktop/src/lib/saas-admin.ts |
234 | 已在之前清理中删除 | - |
desktop/src/lib/gateway-reconnect.ts |
~100 | 已删除 (零生产引用) | - |
admin/ |
整目录 | 已删除 (空目录壳) | - |
admin-temp-dir/ |
整目录 | 已删除 | - |
crates/zclaw-channels/ |
Cargo.toml only | 已在之前清理中删除 | - |
docs/analysis/ISSUE-TRACKER.md |
- | 已删除 | - |
| Director multi-agent | 912 | feature-gated off + 已注解 | 保留 |
| A2A 协议 | ~400 | feature-gated off + 已注解 | 保留 |
| WASM runner | ~200 | Active module + 已注解 | 保留 |
5. 文档漂移记录
以下文档中的数字已与实际不符,需要校准:
| 文档 | 过时内容 | 正确值 |
|---|---|---|
| CLAUDE.md (旧版) | "React 18" | React 19 |
| CLAUDE.md (旧版) | "Tailwind CSS" | Tailwind 4 |
| CLAUDE.md (旧版) | "Next.js (admin/)" | Vite + Ant Design Pro (admin-v2/) |
| roadmap.md | Skills: 75 | 76 |
| roadmap.md | Tauri 命令: 58+/130+ | 175 |
6. 更新日志
| 日期 | 更新内容 |
|---|---|
| 2026-04-02 | 初始创建,基于 V11 全面审计 + 二次审计数据 |
| 2026-04-02 | P0 全部修复 (SEC2-P0-01/02);P1 全部修复 (SEC2-P1-01~09) |
| 2026-04-02 | P1.5 代码质量修复:capability 穷举匹配、SaaS 静默错误、WASM 注解、Tauri 命令标注 |
| 2026-04-02 | 深度审计后修正:8 个 Tauri 标注误标、4 处 SaaS let _ = 清理、TRUTH.md 路由数 58→93 |
| 2026-04-02 | 二次深度审计:(1) 再修正 11 个 Tauri 标注 (147 connected / 24 reserved = 171) (2) 修正文档数字 SKILL 75/Stores 18/Admin 13 (3) relay extract_token_usage + current_key_id 防御性修复 (4) 记录 5 个前端孤立 invoke 调用 |
| 2026-04-02 | 构建验证通过:cargo check ✅ + tsc --noEmit ✅ |