Files
zclaw_openfang/docs/knowledge-base/feature-checklist.md
iven eb956d0dce
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
feat: 新增管理后台前端项目及安全加固
refactor(saas): 重构认证中间件与限流策略
- 登录限流调整为5次/分钟/IP
- 注册限流调整为3次/小时/IP
- GET请求不计入限流

fix(saas): 修复调度器时间戳处理
- 使用NOW()替代文本时间戳
- 兼容TEXT和TIMESTAMPTZ列类型

feat(saas): 实现环境变量插值
- 支持${ENV_VAR}语法解析
- 数据库密码支持环境变量注入

chore: 新增前端管理界面
- 基于React+Ant Design Pro
- 包含路由守卫/错误边界
- 对接58个API端点

docs: 更新安全加固文档
- 新增密钥管理规范
- 记录P0安全项审计结果
- 补充TLS终止说明

test: 完善配置解析单元测试
- 新增环境变量插值测试用例
2026-03-31 00:11:33 +08:00

263 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ZCLAW Desktop 功能清单
> 列出所有功能模块,逐一验证完整性和可用性。
**验证日期**: 2026-03-30
**验证环境**: Windows 11, ZCLAW 0.6.0, Tauri 2.x Desktop
**上次更新后变更**: 10 个 commit审计修复 P0-P3 + Admin V2 + 依赖健康度)
---
## 1. 核心聊天功能
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 发送消息 | `ChatArea.tsx` | ✅ 通过 | REST API 已验证 |
| 流式响应 | `chatStore.ts` | ✅ 通过 | WebSocket text_delta 已验证 |
| 对话历史 | `ConversationList.tsx` | ✅ 通过 | localStorage 持久化 |
| Agent 切换 | `CloneManager.tsx` | ✅ 通过 | 多 Agent 可用 |
| 新建对话 | `ChatArea.tsx` | ✅ 通过 | 正常工作 |
| 上下文压缩 | `compactor.rs` | ✅ 通过 | 规则 + LLM 双模式,已集成 |
## 2. 分身管理 (Agents/Clones)
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 分身列表 | `CloneManager.tsx` | ✅ 通过 | API 返回 Agent 列表 |
| 创建分身 | `CloneManager.tsx` | ✅ 通过 | API 支持 |
| 编辑分身 | `RightPanel.tsx` | ✅ 通过 | API 支持 |
| 删除分身 | `CloneManager.tsx` | ✅ 通过 | API 支持 |
| 导入/导出 | - | ❌ 未实现 | 无导入导出功能 |
## 3. IM 频道
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 频道设置 | `Settings/IMChannels.tsx` | ⚠️ 未配置 | 仅 UI 存在,无外部适配器实现 |
| 飞书集成 | `Settings/IMChannels.tsx` | ⚠️ 未配置 | 配置项存在,需 API Key |
| ConsoleChannel | `zclaw-channels` | ✅ 通过 | 仅用于测试的内置适配器crate 已移除) |
> **说明**: `zclaw-channels` crate 已在代码清理中移除。频道功能目前通过飞书集成 API 和桌面端 UI 实现。
## 4. 定时任务
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 任务列表 | `SchedulerPanel.tsx` | ⚠️ UI存在 | UI 面板已构建 |
| 创建任务 | `configStore.ts` | ❌ 未实现 | fallback 调用 `throw new Error('Not implemented')` |
| 任务调度 | - | ❌ 未实现 | 后端无调度引擎 |
## 5. ZCLAW 特有功能
### 5.1 Hands 面板
| Hand | 类型 | 验证状态 | 说明 |
|------|------|----------|------|
| Browser | 浏览器自动化 | ✅ 可用 | Rust 后端实现 |
| Collector | 数据收集聚合 | ✅ 可用 | Rust 后端实现 |
| Researcher | 深度研究 | ✅ 可用 | Rust 后端实现 |
| Slideshow | 幻灯片生成 | ✅ 可用 | Rust 后端实现 |
| Speech | 语音合成 | ✅ 可用 | Rust 后端 + Browser TTS 前端集成 |
| Whiteboard | 白板演示 | ✅ 可用 | Rust 后端实现 |
| Quiz | 测验生成 | ✅ 可用 | Rust 后端实现 |
| Predictor | 预测分析 | ❌ 仅有配置 | 无 Rust 后端实现 |
| Lead | 销售线索发现 | ❌ 仅有配置 | 无 Rust 后端实现 |
| Clip | 视频处理 | ⚠️ 需 FFmpeg | 依赖外部 FFmpeg |
| Twitter | Twitter 自动化 | ✅ 可用 | 12 个 API v2 真实调用(写操作需 OAuth 1.0a |
> **统计**: 9/11 Hands 可用2 个无后端1 个需外部依赖
### 5.2 Workflows
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| Pipeline 系统 | `zclaw-pipeline` | ✅ 通过 | 5 类 Pipeline 模板可用 |
| Workflow 列表 | `WorkflowList.tsx` | ✅ 通过 | UI + API 正常 |
| 执行 Workflow | `RightPanel.tsx` | ✅ 通过 | 可执行已配置 Workflow |
| PPTX/PDF 导出 | `actions/export.rs` | ⚠️ Stub | 导出功能为占位实现 |
### 5.3 Triggers
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| Trigger 列表 | `TriggersPanel.tsx` | ✅ 通过 | CRUD 正常工作 |
| 启用/禁用 | `TriggersPanel.tsx` | ✅ 通过 | Toggle 正常 |
| 创建 Trigger | `CreateTriggerModal.tsx` | ✅ 通过 | Modal UI 完整 |
| 调度设置 | `CreateTriggerModal.tsx` | ⚠️ 不完整 | 调度 UI 部分字段未接入 |
### 5.4 审计日志
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 日志列表 | `AuditLogsPanel.tsx` | ❌ API 404 | 后端未实现审计日志 API |
| 刷新日志 | `AuditLogsPanel.tsx` | ❌ API 404 | 同上 |
### 5.5 安全状态
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 安全层显示 | `SecurityLayersPanel.tsx` | ⚠️ 前端模拟 | 16 层安全模型,前端 fallback 数据 |
| 安全等级 | `SecurityStatus.tsx` | ⚠️ 前端模拟 | 计算逻辑在前端,非后端 Tauri 命令 |
> **说明**: 安全配置在 `config.toml` 中有完整定义 (auth/rbac/rate_limit/audit)Tauri 后端有 `secure_storage.rs`,但前端 UI 面板使用 fallback 数据而非真实后端状态。
> 审计修复后console.log 清理完成16 文件 23 处 → 结构化 loggerDOMPurify XSS 防护已加回,硬编码密钥 fallback 已标记 dev-only。
## 6. Admin V2 (管理后台)
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| Dashboard | `Dashboard.tsx` | ✅ 通过 | Ant Design Pro 纯 SPA 重写 |
| Accounts | `Accounts.tsx` | ✅ 通过 | 账号 CRUD |
| Models | `Models.tsx` | ✅ 通过 | 模型管理 |
| Providers | `Providers.tsx` | ✅ 通过 | 提供商管理 |
| API Keys | `ApiKeys.tsx` | ✅ 通过 | 密钥管理 |
| Prompts | `Prompts.tsx` | ✅ 通过 | Prompt 模板 |
| Relay | `Relay.tsx` | ✅ 通过 | 中转管理 |
| Usage | `Usage.tsx` | ✅ 通过 | 用量统计 |
| Logs | `Logs.tsx` | ✅ 通过 | 日志查看 |
| Config | `Config.tsx` | ✅ 通过 | 系统配置 |
| Agent Templates | `AgentTemplates.tsx` | ✅ 通过 | Agent 模板 |
| Error Boundary | `main.tsx` | ✅ 通过 | 审计修复中已添加 |
> **说明**: Admin V2 已从 Next.js 迁移至 Ant Design Pro 纯 SPA (Vite + port 5173)。后端 Axum 已添加连接池断路器80% → 503 degraded
## 7. 设置页面
### 7.1 通用设置
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| Gateway 连接 | `ConnectionStatus.tsx` | ✅ 通过 | 连接状态正确显示 |
| 主题切换 | App 根组件 | ✅ 通过 | 深色/浅色模式正常 |
| 开机自启 | Tauri 配置 | ⚠️ 待验证 | Tauri 专用功能 |
### 7.2 模型与 API
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| LLM 驱动 | `zclaw-runtime` | ✅ 通过 | 4 种驱动: OpenAI/Anthropic/Gemini/Local |
| 提供商配置 | `chinese-providers.toml` | ✅ 通过 | 7 个中文提供商 (智谱/千问/Kimi/MiniMax/DeepSeek/豆包/零一万物) |
| 模型切换 | `Settings/ModelsAPI.tsx` | ✅ 通过 | 多提供商 + 多模型切换 |
| API Key 管理 | `Settings/ModelsAPI.tsx` | ✅ 通过 | 环境变量插值 `${VAR_NAME}` |
> **统计**: 共 7 个中文提供商 + 3 个国际提供商 (OpenAI/Anthropic/Gemini) + 1 个本地驱动
+ P0 安全加固 (2026-03-30)
### 7.3 其他设置
+ P0 安全加固
(2026-03-30)
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 技能目录 | `Settings/Skills.tsx` | ✅ 通过 | API 正常 |
| 隐私设置 | `Settings/Privacy.tsx` | ✅ 通过 | UI 完整 |
| 用量统计 | `Settings/UsageStats.tsx` | ✅ 通过 | Agent 统计数据 |
| 关于页面 | `Settings/About.tsx` | ✅ 通过 | 显示版本信息 |
| MCP 服务 | `Settings/MCPServices.tsx` | ❌ API 404 | 后端未实现 |
| 工作区配置 | `Settings/Workspace.tsx` | ❌ API 404 | 后端未实现 |
## 8. 右侧面板
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 连接状态 | `ConnectionStatus.tsx` | ✅ 通过 | 显示 connected |
| 记忆面板 | `MemoryPanel` (RightPanel) | ✅ 通过 | FTS5 + TF-IDF 语义搜索 |
| 反思日志 | `ReflectionLog` (RightPanel) | ✅ 通过 | 显示反思分析结果 |
| 安全面板 | `SecurityLayersPanel` (RightPanel) | ⚠️ 前端模拟 | 使用 fallback 数据 |
## 9. P0 安全加固 (2026-03-30)
> 所有 P0 安全加固项已完成并通过 cargo check 编译验证。
| 功能 | 修改文件 | 验证状态 | 说明 |
|------|----------|----------|------|
| 密钥管理 (env 插值) | `config.rs` | ✅ 通过 | TOML 支持 `${DB_PASSWORD}` 环境变量插值 |
| JWT fallback key 保护 | `config.rs` | ✅ 通过 | `#[cfg(debug_assertions)]` 保护, release 拒绝启动 |
| Auth rate limiting (路径感知) | `middleware.rs` | ✅ 通过 | login 5次/分, register 3次/时, 其他 20次/分 |
| Logout token 撤销 | `handlers.rs` | ✅ 通过 | logout 时 DB 标记 refresh_token used_at |
| Cookie Secure 条件化 | `handlers.rs` | ✅ 通过 | `ZCLAW_SAAS_DEV=true` 时 false, 生产 true |
| TLS 终止文档 | `docs/knowledge-base/security-hardening.md` | ✅ 通过 | 生产环境必须 nginx/caddy HTTPS |
| 配置模板更新 | `saas-config.toml.example` | ✅ 通过 | 包含所有环境变量占位符说明 |
---
## 10. 侧边栏
| 功能 | 组件位置 | 验证状态 | 说明 |
|------|----------|----------|------|
| 分身 Tab | `Sidebar.tsx` | ✅ 通过 | Agent 列表 + 创建/编辑/删除 |
| Hands Tab | `Sidebar.tsx` | ✅ 通过 | `HandList` 显示自主能力包 |
| Workflow Tab | `Sidebar.tsx` | ✅ 通过 | Workflow 列表 |
| 设置入口 | `Sidebar.tsx` | ✅ 通过 | 设置齿轮图标 |
---
## 10. 智能层 (Intelligence Layer)
| 模块 | Rust 实现 | Tauri 命令 | Hooks 集成 | 完成度 | 说明 |
|------|----------|-----------|-----------|--------|------|
| Agent 记忆 | ✅ VikingStorage | ✅ | ✅ pre-hook | 90% | FTS5 + TF-IDF 语义搜索SQLite 持久化 |
| 身份演化 | ✅ identity.rs | ✅ | ✅ pre-hook | 70% | SOUL.md 生成store.json 持久化 |
| 上下文压缩 | ✅ compactor.rs | ✅ | ⚠️ chatStore 直接调用 | 75% | 规则 + LLM 双模式,未通过 hooks 调用 |
| 反思引擎 | ✅ reflection.rs | ✅ | ✅ post-hook | 65% | 规则分析可用LLM 深度反思待验证 |
| 心跳巡检 | ✅ heartbeat.rs | ✅ | ✅ post-hook | 70% | 4 级主动行为,交互记录正常 |
| 自主授权 | ✅ | ✅ | ✅ | 80% | 审批流程完整 |
> **说明**: 5 个智能模块 (`pattern_detector`, `recommender`, `mesh`, `persona_evolver`, `trigger_evaluator`) 已在 0.6.0 中移除 (dead code 清理)。Context Compactor 存在但未在 hooks 中调用,由 chatStore 直接调用。
---
## 验证结果汇总
| 类别 | 总数 | 通过 | 部分通过 | 失败/未实现 |
|------|------|------|----------|------------|
| 核心聊天 | 6 | 6 | 0 | 0 |
| 分身管理 | 5 | 4 | 0 | 1 |
| IM 频道 | 3 | 1 | 0 | 2 |
| 定时任务 | 3 | 0 | 1 | 2 |
| Hands | 11 | 9 | 1 | 1 |
| Workflows | 4 | 3 | 1 | 0 |
| Triggers | 4 | 3 | 1 | 0 |
| 审计日志 | 2 | 0 | 0 | 2 |
| 安全状态 | 2 | 0 | 2 | 0 |
| Admin V2 | 12 | 12 | 0 | 0 |
| 设置页面 | 9 | 6 | 1 | 2 |
| 右侧面板 | 4 | 3 | 1 | 0 |
| 侧边栏 | 4 | 4 | 0 | 0 |
| 智能层 | 6 | 5 | 1 | 0 |
| **总计** | **75** | **56** | **8** | **11** |
---
## 图例
- ✅ 通过 - 功能完整可用
- ⚠️ 部分通过 - 基本功能可用,有已知限制
- ❌ 未实现 - 功能不可用或仅有 UI 占位
---
## 未实现的 API
以下 API 在 0.6.0 中仍返回 404:
| API 端点 | 功能 | 说明 |
|----------|------|------|
| `/api/tasks` | 定时任务 | SchedulerPanel fallback |
| `/api/audit/logs` | 审计日志 | AuditLogsPanel 无后端 |
| `/api/plugins` | 插件管理 | 未实现 |
| `/api/workspace` | 工作区配置 | Workspace 设置无后端 |
| `/api/mcp/*` | MCP 服务 | MCPServices 无后端 |
---
## 更新历史
| 日期 | 变更 |
|------|------|
| 2026-03-30 | 审计后更新:新增 Admin V2 章节(12项全通过)Speech/Twitter 状态提升安全备注更新Hands 9/11 可用 |
| 2026-03-27 | 全面更新至 0.6.0:核心聊天全部通过,新增智能层章节,更新 Hands/Workflows/Triggers 状态,清理过时信息 |
| 2026-03-14 | 初始版本,完成 API 级别验证 |