Files
zclaw_openfang/docs/E2E_VERIFICATION_REPORT.md
iven f32216e1e0
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
docs: 添加发散探讨文档和测试截图
添加了关于管家主动性与行业配置体系的发散探讨文档,包含现状诊断、关键讨论、架构设计等内容。同时添加了测试失败的截图和日志文件。
2026-04-12 22:40:45 +08:00

10 KiB
Raw Blame History

ZCLAW 端到端功能一致性与完整性验证报告

日期: 2026-04-10 | 验证环境: Tauri 桌面端 (1420) + SaaS 后端 (8080) + Admin V2 (5173)

一、服务状态

服务 端口 状态
SaaS 后端 (Axum) 8080 healthy, DB connected
Admin V2 (Vite) 5173 running
Tauri 桌面端 1420 running

二、Tauri 桌面端验证结果

2.1 登录流程

  • SaaS 登录admin/admin123成功返回 JWT + refresh_token
  • 登录后自动跳转到主聊天界面

2.2 主界面 (专业模式)

  • 侧边栏:对话列表 + 智能体面板 + 搜索
  • 聊天区域:流式响应、思考过程展示、工具调用展示 (file_write, shell_exec, 澄清问题)
  • 输入区:文本输入 + 附件 + 模型选择 (kimi-for-coding) + 发送
  • 智能体面板:默认助手 + 创建新 Agent
  • 模式切换:简洁/专业模式正常切换

2.3 设置页面 (19 个分类)

设置页 状态 内容
通用 正常 Gateway token、简洁/专业模式切换
用量统计 ⚠️ 部分 6会话/100消息但 Token 统计为 0
积分详情 开发中 显示"积分系统开发中"
模型与 API 正常 已连接 Gateway、模型列表、Embedding 配置
MCP 服务 ⚠️ 未接入 "新增/删除/详细参数配置尚未在桌面端接入"
IM 频道 ⚠️ 未接入 0 个频道,飞书/Discord 等为规划中
工作区 正常 项目目录、文件监听、自动保存
数据与隐私 正常 本地数据路径、备案信息
安全存储 正常 Keyring 可用6 类密钥槽位
SaaS 平台 加载失败 "SaaS 平台加载失败,请稍后重试"
订阅与计费 加载失败 "计费信息加载失败,请稍后重试"
技能管理 ⚠️ 0 个技能加载,"连接 Gateway 后加载"
语义记忆 正常 SQLite+FTS5+TF-IDF0 条记忆,搜索可用
安全状态 正常 评分 9416 层防护展示
审计日志 正常 Live Stream 模式0 条记录
定时任务 ⚠️ 0 个定时任务
心跳配置 正常 巡检间隔、主动性级别、免打扰、检查项
提交反馈 存在 反馈入口
关于 正常 版本 0.1.0

2.4 Tauri 桌面端问题清单

严重度 问题 影响
P1 SaaS 平台页加载失败 桌面端无法管理 SaaS 账户
P1 订阅与计费页加载失败 桌面端无法查看订阅状态
P2 积分系统显示"开发中" 用户看到占位 UI
P2 技能管理显示 0 个技能 75 个 SKILL.md 未加载到前端
P3 MCP 服务前端未接入 只能配置文件手动添加
P3 IM 频道为规划中 功能未实现
P3 Token 统计为 0 用量统计不完整

三、SaaS 后端 API 验证结果

3.1 全端点状态总览

模块 端点数 200 OK 4xx/5xx 说明
Auth 10 9 1 (password 参数错误)
Account 11 11 0
Model Config 13 12 1 (usage 500) ⚠️
Relay 5 5 0
Role 7 7 0
Prompt 6 6 0
Agent Template 9 9 0
Scheduled Task 5 5 0
Telemetry 4 4 0
Billing 10 10 0
Knowledge 16 13 3 (422参数错误)
Migration 7 7 0
总计 103 95 8 92% 通过

3.2 后端问题

严重度 端点 状态码 根因 修复文件
P0 POST /auth/register 连接重置/崩溃 ConnectInfo<SocketAddr> extractor 在某些条件下引发 panic auth/handlers.rs:65
P0 GET /usage 500 Option<String> 绑定到 $2::timestamptzPostgreSQL 无法隐式转换 model_config/types.rs:148-149, service.rs:419
P0 POST /auth/refresh 500 refresh_tokensexpires_at 列 TEXT 类型无法转为 TIMESTAMPTZ refresh token 相关代码
P3 POST /knowledge/items/batch 422 参数验证问题 -
P3 POST /knowledge/items/import 422 参数验证问题 -

四、Admin V2 前端-后端集成对比

4.1 统计概览

指标 数量
前端定义的 API 调用 83
前端匹配后端 47
前端调用后端不存在 8
后端⚠️存在但前端未调用 34
有 service 但无页面调用 ~10

4.2 前端调了但后端不存在的路由 ( 断链)

路径 说明
DELETE /knowledge/categories/:id 后端有 categories 但无单条删除
PUT /knowledge/categories/:id 后端无单条更新
GET /knowledge/items/:id 后端无单条查询
DELETE /knowledge/items/:id 后端无单条删除
POST /knowledge/items/:id/rollback/:version 后端无版本回滚
PUT /config/items/:id 后端路由不同,无法单条更新
GET /billing/payments/:id 后端无单条支付查询
POST /prompts/:name/rollback/:version 后端有 rollback 但需确认路径

4.3 后端存在但前端完全未接入的路由 (⚠️ 开发了没接)

路由 模块 功能
POST /auth/register Auth 用户注册
PUT /auth/password Auth 修改密码
POST /auth/totp/* (3个) Auth TOTP 2FA
GET /accounts/:id Account 账户详情
GET /tokens Account Token 管理
GET /devices Account 设备管理
GET /model-groups/* (5个) Model Config 模型分组管理(整套)
POST /keys/:id/rotate Model Config Key 轮换
POST /relay/chat/completions Relay Chat 代理
GET /relay/models Relay 可用模型列表
GET /agent-templates/available Agent Template 可用模板
POST /agent-templates/:id/create-agent Agent Template 从模板创建 Agent
POST /accounts/me/assign-template Agent Template 分配模板
GET /prompts/check Prompt Prompt 更新检查
GET /billing/usage Billing 计费用量
GET /billing/invoices/* Billing 发票 PDF
POST /config/analysis Config 配置分析
POST /config/seed Config 配置种子
POST /config/sync Config 配置同步
POST /config/diff Config 配置差异
GET /config/pull Config 配置拉取

4.4 空壳/问题页面

页面 问题
API Keys service 定义了 CRUD 但无独立页面,路由指向 ModelServices
Usage Service 定义了 daily()/byModel() 但无页面调用Usage 页用 telemetryService
Knowledge 前端定义了 16 个子功能部分后端不存在UI 按钮可能触发 404

五、一致性交叉验证

5.1 Tauri 桌面端 vs Admin V2 功能对比

功能 Tauri 桌面端 Admin V2 一致性
账户管理 SaaS页加载失败 Accounts 页完整 CRUD 不一致
模型管理 设置→模型与API ModelServices 页完整 一致
提供商管理 设置→模型与API Provider CRUD 一致
订阅/计费 加载失败 Billing 页 不一致
角色权限 无入口 Roles 页完整 CRUD Admin独有
Prompt 管理 无入口 Prompts 页完整 Admin独有
知识库 语义记忆(本地) Knowledge 页(SaaS) ⚠️ 不同实现
审计日志 有展示 Logs 页 一致
定时任务 有展示 ScheduledTasks 页 一致
技能管理 ⚠️ 0 个加载 无页面 不一致
MCP 服务 ⚠️ 未接入 无页面 两端都缺

5.2 功能闭环验证

闭环流程 验证结果
登录→聊天→流式响应 完整
登录→设置→配置→生效 ⚠️ Gateway 配置生效SaaS 配置失败
Admin→创建账户→桌面端登录 可行(后端已验证)
Admin→配置模型→桌面端切换 可行
Admin→管理角色→桌面端生效 可行RBAC 通过 JWT
Admin→管理 Prompt→桌面端使用 ⚠️ Prompt 系统未接入桌面端
Admin→知识库→桌面端搜索 两端实现不同(本地 vs SaaS

六、优先修复建议

P0 - 必须修复(影响核心用户体验)

  1. POST /auth/register 服务器崩溃 - ConnectInfo<SocketAddr>auth/handlers.rs:65 引发 panic需要改用 Optional 或移除该 extractor
  2. GET /usage 500 错误 - model_config/types.rs:148-149from/to 字段为 Option<String>,但 SQL 绑定到 $2::timestamptz,需改为 Option<chrono::DateTime> 或在查询中解析
  3. POST /auth/refresh 500 错误 - refresh_tokens 表的 expires_at 列类型为 TEXT需迁移为 TIMESTAMPTZ 或在查询中显式转换
  4. Tauri 桌面端 SaaS 平台页加载失败 - 排查 saasStore 连接逻辑,可能是 token 传递或 API 路径问题
  5. Tauri 桌面端 订阅与计费页加载失败 - 同上,与 billing API 交互失败

P1 - 应该修复(影响功能完整性)

  1. Knowledge 前端 8 个断链路由 - 前端调了后端不存在的路由,需补齐后端或修正前端
  2. 技能管理前端为空 - 75 个 SKILL.md 未加载到桌面端,可能是 Gateway 加载逻辑问题
  3. Model Groups 完整模块未接入前端 - 后端 5 个端点已实现Admin 无页面

P2 - 建议修复(提升产品完成度)

  1. 34 个后端路由未接入前端 - 包括 TOTP 2FA、设备管理、配置同步等
  2. 积分系统显示"开发中" - 补齐或隐藏
  3. MCP 服务前端未接入 - 只能手动配置
  4. Usage Service 空壳 - service 定义了但无页面使用

七、验证方法说明

  • Tauri 桌面端: 通过 Tauri MCP (Chrome DevTools Protocol) 进行 DOM 交互、截图、JS 执行验证
  • SaaS 后端: 通过 curl 对全部 103 个 API 端点进行 HTTP 状态码验证
  • Admin V2: 通过代码分析services/.ts + pages/.tsx对比后端路由定义crates/zclaw-saas/src/*/mod.rs
  • Admin V2 浏览器验证: Tauri MCP 在 Admin V2 (5173) 上 DOM 查询超时(疑似 Vite HMR CSP 限制),仅截图可用