Files
zclaw_openfang/docs/SYSTEM_ANALYSIS.md
iven f22b1a2095 refactor(phase-11): extract specialized stores from gatewayStore
Decompose monolithic gatewayStore.ts (1660 lines) into focused stores:

- connectionStore.ts (444 lines) - WebSocket, auth, local gateway
- agentStore.ts (256 lines) - Clones, usage stats, plugins
- handStore.ts (498 lines) - Hands, triggers, approvals
- workflowStore.ts (255 lines) - Workflows, runs
- configStore.ts (537 lines) - QuickConfig, channels, skills

Each store uses client injection pattern for loose coupling.
Coordinator layer to be added in next commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 20:17:17 +08:00

579 lines
26 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 系统偏离分析与演化路线图
**分析日期**: 2026-03-14 (更新: 2026-03-15)
**分析版本**: OpenFang v0.4.0 + ZClaw Desktop v0.2.0
**目的**: 识别系统当前偏离点,规划后续演化方向
**Skills 集成**: ✅ agency-agents 仓库迁移完成!
---
## 一、执行摘要
### 1.1 项目定位
ZCLAW 是基于 **OpenFang** (Rust Agent OS) 的 AI Agent 桌面客户端,核心价值:
- 真实连接 OpenFang Kernel
- 真实驱动 Agents / Skills / Hands / Workflows
- 真实读写 TOML 配置与工作区
- 真实反映运行时状态与审计日志
### 1.2 当前状态概览
```
┌─────────────────────────────────────────────────────────────────┐
│ ZCLAW 系统状态仪表盘 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ API 覆盖率 ███████████████████████░░ 93% (63/68 端点) │
│ UI 完成度 ████████████████████████ 100% (30/30 组件) │
│ Hands 配置 ████████████████████████ 100% (7/7 有 TOML) │
│ Skills 定义 ████████████████████████ 100% (68/68 已创建) │
│ │
│ 多 Agent 协作框架: │
│ ├── 协作协议 ████████████████████████ 100% │
│ ├── Playbooks ████████████████████████ 100% (7 个阶段) │
│ └── Skill 模板 ████████████████████████ 100% │
│ │
│ agency-agents 集成进度: │
│ ├── Engineering ████████████████████████ 100% (7/7) │
│ ├── Testing ████████████████████████ 100% (8/8) │
│ ├── Support ████████████████████████ 100% (6/6) │
│ ├── Design ████████████████████████ 100% (7/7) │
│ ├── Product ████████████████████████ 100% (3/3) │
│ ├── Marketing ████████████████████████ 100% (11/11) │
│ ├── PM ████████████████████████ 100% (5/5) │
│ ├── Spatial ████████████████████████ 100% (6/6) │
│ └── Specialized ████████████████████████ 100% (6/6) │
│ │
└─────────────────────────────────────────────────────────────────┘
```
---
## 二、系统偏离点分析
### 2.1 API 层偏离
#### 已完成 (100% 实现)
| 模块 | 端点数 | 说明 | 状态 |
|------|--------|------|------|
| **Session 管理** | 5 | 完整的 CRUD + 消息加载 | ✅ 已完成 |
#### 待实现 (0% 实现)
| 模块 | 端点数 | 影响 | 优先级 |
|------|--------|------|--------|
| **OpenAI 兼容 API** | 3 | 无法作为 OpenAI 代理使用 | 🟡 P2 |
#### 严重不足 (< 50% 实现)
| 模块 | 覆盖率 | 缺失功能 | 优先级 |
|------|--------|----------|--------|
| ~~**Skills 管理**~~ | ~~20%~~ | ~~创建/详情/更新/删除技能~~ | ~~🟡 P1~~ ✅ 已完成 |
| ~~**Channels 管理**~~ | ~~33%~~ | ~~添加/配置/删除通道~~ | ~~🟡 P1~~ ✅ 已完成 |
| ~~**Trigger 管理**~~ | ~~25%~~ | ~~创建/详情/删除触发器~~ | ~~🟡 P1~~ ✅ 已完成 |
#### 部分实现 (50-80%)
| 模块 | 覆盖率 | 缺失功能 | 优先级 |
|------|--------|----------|--------|
| **Agent 管理** | 75% | 获取详情、启动 Agent | 🟢 P1 |
| **Workflow 管理** | 100% | 创建/更新/删除/执行/历史 | ✅ 已完成 |
| **配置管理** | 60% | 更新配置、热重载 | 🟢 P1 |
#### 完全实现 (> 90%)
| 模块 | 覆盖率 | 说明 |
|------|--------|------|
| **Hands 管理** | 100% | 所有 CRUD + 触发 + 审批 |
| **安全与审计** | 100% | 审计日志、安全状态、审批 |
| **统计与健康** | 100% | 健康检查、用量统计、工作区 |
### 2.2 UI 层偏离
#### 使用 Mock/Placeholder 数据的组件
| 组件 | 问题 | 影响 | 优先级 | 状态 |
|------|------|------|--------|------|
| `HandTaskPanel.tsx` | ~~任务历史硬编码~~ | ~~已接入真实 API~~ | ~~🔴 P0~~ | ✅ 已完成 |
| `WorkflowList.tsx` | ~~编辑器/删除/新建未实现~~ | ~~已实现完整 CRUD~~ | ~~🔴 P0~~ | ✅ 已完成 |
| `WorkflowEditor.tsx` | ~~新建工作流编辑器~~ | ~~可视化工作流配置~~ | ~~🔴 P0~~ | ✅ 已完成 |
| `WorkflowHistory.tsx` | ~~新建历史视图~~ | ~~查看执行历史~~ | ~~🔴 P0~~ | ✅ 已完成 |
| `SecurityStatus.tsx` | ~~默认显示全 disabled~~ | ~~安全状态误导用户~~ | ~~🟡 P1~~ | ✅ 已完成 |
| `ModelsAPI.tsx` | ~~模型列表硬编码~~ | ~~无法动态切换模型~~ | ~~🟡 P1~~ | ✅ 已完成 |
| `SchedulerPanel.tsx` | ~~创建任务未实现~~ | ~~定时任务无法配置~~ | ~~🟡 P1~~ | ✅ 已完成 |
| `ChannelList.tsx` | ~~频道重复显示~~ | ~~已修复去重逻辑~~ | ~~🟡 P1~~ | ✅ 已完成 |
| `TriggersPanel.tsx` | ~~触发器创建未实现~~ | ~~已集成 CreateTriggerModal~~ | ~~🟡 P1~~ | ✅ 已完成 |
| `About.tsx` | 版本检查未实现 | 更新提醒不可用 | 🟢 P2 | ⚠️ 可接受 |
| `Credits.tsx` | 积分数据硬编码 | 积分系统不可用 | 🟢 P2 | ⚠️ 可接受 |
#### 中文化完成度
| 状态 | 组件数 | 说明 |
|------|--------|------|
| ✅ 完全中文 | 23 | 所有用户可见文本已本地化 |
| ⚠️ 部分英文 | 1 | 部分技术术语保留英文 |
### 2.3 配置层偏离
#### Skills 目录
| 技能 | 状态 | 触发词 |
|------|------|--------|
| chinese-writing | ✅ 已定义 | 写一篇, 帮我写, 撰写 |
| feishu-docs | ✅ 已定义 | 飞书文档, 创建文档 |
| code-review | ✅ 已定义 | 审查代码, code review |
| translation | ✅ 已定义 | 翻译, translate |
**偏离**: OpenFang 内置 60+ 技能ZClaw 仅定义 4 个。
#### Hands 目录
| Hand | TOML 配置 | TypeScript 定义 | 状态 |
|------|-----------|-----------------|------|
| researcher | ✅ | ✅ | 完整 |
| browser | ✅ | ✅ | 完整 |
| lead | ✅ | ✅ | 完整 |
| clip | ❌ | ✅ | 缺配置 |
| collector | ❌ | ✅ | 缺配置 |
| predictor | ❌ | ✅ | 缺配置 |
| twitter | ❌ | ✅ | 缺配置 |
**偏离**: 4/7 Hands 缺少 TOML 配置文件。
#### 配置文件格式
| 文件 | 格式 | 用途 | 状态 |
|------|------|------|------|
| `chinese-providers.toml` | TOML | LLM 提供商配置 | ✅ OpenFang |
| `openclaw.default.json` | JSON | OpenClaw 遗留配置 | ⚠️ 待迁移 |
| `SOUL.md` / `AGENTS.md` | Markdown | Agent 人格定义 | ✅ |
| `USER.md` | Markdown | 用户偏好 | ✅ |
**偏离**: 保留 OpenClaw JSON 配置,需迁移到 OpenFang TOML。
### 2.4 类型定义偏离
| 类型文件 | 状态 | 缺失类型 |
|----------|------|----------|
| `types/hands.ts` | ✅ 完整 | - |
| `types/agent.ts` | ✅ 完整 | - |
| `types/session.ts` | ✅ 完整 | - |
| `types/settings.ts` | ✅ 完整 | - |
| Workflow 类型 | ⚠️ 部分 | WorkflowStep 详细定义 |
---
## 三、根因分析
### 3.1 为什么存在这些偏离?
```
┌─────────────────────────────────────────────────────────────────┐
│ 偏离根因分析 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. OpenFang API 不完整 (30%) │
│ ├── /api/audit/logs 返回 404 │
│ ├── /api/security/status 返回 404 │
│ └── 部分端点未在 v0.4.0 实现 │
│ │
│ 2. 时间优先级 (40%) │
│ ├── 核心聊天功能优先 │
│ ├── Hands/Workflows 基础功能已完成 │
│ └── 高级功能(编辑器、创建器)延后 │
│ │
│ 3. 设计决策 (20%) │
│ ├── 使用 Mock 数据便于 UI 开发 │
│ ├── 保留 OpenClaw 兼容性 │
│ └── 逐步迁移而非一次性重写 │
│ │
│ 4. 技术债务 (10%) │
│ ├── 类型定义分散 │
│ ├── 配置格式混合 │
│ └── 部分 TODO 未清理 │
│ │
└─────────────────────────────────────────────────────────────────┘
```
### 3.2 可接受的偏离 vs 需要修正的偏离
#### 可接受的偏离(不修正)
1. **OpenAI 兼容 API 缺失** - 非核心功能,第三方集成用
2. **Credits 页面硬编码** - 依赖 OpenFang 积分系统 API
3. **About 版本检查** - 可延后实现
#### 需要修正的偏离(必须修正)
1. **HandTaskPanel Mock 数据** - 用户看不到真实执行历史
2. **Workflow 编辑器缺失** - 核心功能不完整
3. **Session 管理缺失** - 会话无法持久化
4. **4 个 Hands 缺 TOML 配置** - 功能定义不完整
---
## 四、演化路线图
### Phase 1: 核心功能补全 (P0)
**目标**: 修复影响核心用户体验的偏离
**时间**: 1-2 周
| 任务 | 文件 | 状态 |
|------|------|------|
| 实现 HandTaskPanel 真实任务历史 | `HandTaskPanel.tsx` | ✅ 已完成 |
| 实现 Workflow 编辑器 | `WorkflowEditor.tsx` (新建) | ✅ 已完成 |
| 实现 Workflow 删除功能 | `WorkflowList.tsx` | ✅ 已完成 |
| 实现 Session 管理 API | `gatewayStore.ts` | ✅ 已完成 |
| 补充 4 个 Hands TOML 配置 | `hands/*.HAND.toml` | ✅ 已完成 |
| 实现 Workflow 创建/编辑 UI | `WorkflowEditor.tsx` | ✅ 已完成 |
| 实现 Workflow 历史视图 | `WorkflowHistory.tsx` (新建) | ✅ 已完成 |
### Phase 2: 功能增强 (P1)
**目标**: 提升功能完整性和用户体验
**时间**: 2-3 周
| 任务 | 文件 | 状态 |
|------|------|------|
| 实现 Channels 完整 CRUD | `gatewayStore.ts` | ✅ 已完成 |
| 实现 Triggers 完整 CRUD | `gatewayStore.ts` | ✅ 已完成 |
| 实现 Skills 完整 CRUD | `gatewayStore.ts` | ✅ 已完成 |
| 动态获取模型列表 | `ModelsAPI.tsx` | ✅ 已完成 |
| 实现定时任务创建 | `SchedulerPanel.tsx` | ✅ 已完成 |
| SecurityStatus 真实数据 | `SecurityStatus.tsx` | ✅ 已完成 |
### Phase 3: 配置迁移 (P1)
**目标**: 完成从 OpenClaw 到 OpenFang 的配置迁移
**时间**: 1 周
| 任务 | 说明 | 状态 |
|------|------|------|
| 迁移 openclaw.default.json | 转换为 config.toml | ✅ 已完成 |
| 补充主 config.toml | OpenFang 服务器配置 | ✅ 已完成 |
| 清理 OpenClaw 遗留代码 | 移除兼容层 | ✅ 已完成 |
### Phase 4: 类型系统完善 (P2)
**目标**: 建立完整的 TypeScript 类型定义
**时间**: 1 周
| 任务 | 文件 | 状态 |
|------|------|------|
| Agent 类型定义 | `types/agent.ts` | ✅ 已完成 |
| Session 类型定义 | `types/session.ts` | ✅ 已完成 |
| Settings 类型定义 | `types/settings.ts` | ✅ 已完成 |
| Workflow 详细类型 | `types/workflow.ts` | ✅ 已完成 |
### Phase 5: Skills 生态扩展 (P2)
**目标**: 扩展 Skills 目录,集成 agency-agents 仓库
**时间**: 持续进行
**来源**: https://github.com/msitarzewski/agency-agents
#### 原始技能 (9 个)
| 技能 | 触发词 | 状态 |
|------|--------|------|
| chinese-writing | 写一篇, 帮我写, 撰写 | ✅ 已定义 |
| feishu-docs | 飞书文档, 创建文档 | ✅ 已定义 |
| code-review | 审查代码, code review | ✅ 已定义 |
| translation | 翻译, translate | ✅ 已定义 |
| git | git, 提交, commit, push, pull | ✅ 已定义 |
| file-operations | 读取文件, 写入文件, 创建文件 | ✅ 已定义 |
| web-search | 搜索, 查找, web search | ✅ 已定义 |
| data-analysis | 分析数据, 统计, 图表 | ✅ 已定义 |
| shell-command | 执行命令, 运行, shell | ✅ 已定义 |
#### agency-agents 集成 (60+ Skills 完成)
| 类别 | 数量 | 状态 | Skills |
|------|------|------|--------|
| **Engineering** | 7 | ✅ 完成 | ai-engineer, backend-architect, frontend-developer, devops-automator, security-engineer, senior-developer, rapid-prototyper |
| **Testing** | 8 | ✅ 完成 | api-tester, evidence-collector, performance-benchmarker, accessibility-auditor, reality-checker, test-results-analyzer, tool-evaluator, workflow-optimizer |
| **Support** | 6 | ✅ 完成 | support-responder, executive-summary-generator, finance-tracker, infrastructure-maintainer, legal-compliance-checker, analytics-reporter |
| **Design** | 7 | ✅ 完成 | ux-architect, ux-researcher, visual-storyteller, brand-guardian, image-prompt-engineer, whimsy-injector, ui-designer |
| **Product** | 3 | ✅ 完成 | feedback-synthesizer, sprint-prioritizer, trend-researcher |
| **Marketing** | 11 | ✅ 完成 | growth-hacker, content-creator, social-media-strategist, tiktok-strategist, reddit-community-builder, app-store-optimizer, twitter-engager, instagram-curator, wechat-official-account, xiaohongshu-specialist, zhihu-strategist |
| **Project Management** | 5 | ✅ 完成 | studio-producer, project-shepherd, studio-operations, experiment-tracker, senior-pm |
| **Spatial Computing** | 6 | ✅ 完成 | visionos-spatial-engineer, macos-spatial-metal-engineer, terminal-integration-specialist, xr-cockpit-interaction-specialist, xr-immersive-developer, xr-interface-architect |
| **Specialized** | 6 | ✅ 完成 | agents-orchestrator, agentic-identity-trust, lsp-index-engineer, report-distribution-agent, sales-data-extraction-agent, data-consolidation-agent |
**当前 Skills 总数**: 68 ✅
**agency-agents 集成进度**: 100% ✅
#### 协作框架 (新增)
| 组件 | 文件 | 状态 |
|------|------|------|
| Skill 模板 | `.templates/skill-template.md` | ✅ 完成 |
| 交接模板 | `.coordination/handoff-templates.md` | ✅ 完成 |
| 激活提示 | `.coordination/agent-activation.md` | ✅ 完成 |
| Phase 0-6 Playbooks | `.playbooks/phase-*.md` | ✅ 完成 |
---
## 五、技术债务清单
### 5.1 代码层面
| 债务 | 位置 | 影响 | 清理方案 | 状态 |
|------|------|------|----------|------|
| ~~MockTask 接口~~ | ~~`HandTaskPanel.tsx`~~ | ~~数据不真实~~ | ~~移除,使用真实 API~~ | ✅ 已清理 |
| ~~AVAILABLE_MODELS 硬编码~~ | ~~`ModelsAPI.tsx`~~ | ~~模型列表不动态~~ | ~~从 API 获取~~ | ✅ 已清理 |
| ~~DEFAULT_LAYERS 全 false~~ | ~~`SecurityStatus.tsx`~~ | ~~误导用户~~ | ~~等待 API 或移除默认值~~ | ✅ 已清理 |
| ~~alert() 占位~~ | ~~`SchedulerPanel.tsx`~~ | ~~UX 差~~ | ~~实现真实功能或 Toast 提示~~ | ✅ 已清理 |
### 5.2 配置层面
| 债务 | 位置 | 影响 | 清理方案 | 状态 |
|------|------|------|----------|------|
| ~~OpenClaw JSON 配置~~ | ~~`config/openclaw.default.json`~~ | ~~配置格式混合~~ | ~~迁移到 TOML~~ | ✅ 已清理 |
| ~~缺少主配置文件~~ | ~~`config/`~~ | ~~OpenFang 配置不完整~~ | ~~创建 config.toml~~ | ✅ 已清理 |
### 5.3 类型层面
| 债务 | 影响 | 清理方案 | 状态 |
|------|------|----------|------|
| 类型定义分散 | 维护困难 | 集中到 types/ 目录 | ✅ 已完成 |
| 部分 any 类型 | 类型安全差 | 补充具体类型 | 🔄 进行中 |
| 缺少 API 响应类型 | API 调用不安全 | 定义 Response 类型 | ✅ 已完成 |
### 5.4 新增技术债务 (Phase 6-7)
| 债务 | 位置 | 影响 | 清理方案 | 状态 |
|------|------|------|----------|------|
| Team API 单元测试 | `tests/` | 测试覆盖不足 | 补充 teamStore 测试 | 📋 待办 |
| WebSocket 事件测试 | `lib/useTeamEvents.ts` | 事件处理未测试 | 添加 mock 测试 | 📋 待办 |
| E2E Team 协作测试 | `e2e/` | 端到端流程未验证 | 添加 Playwright 测试 | 📋 待办 |
---
## 六、验收标准
### 6.1 Phase 1 完成标准
- [x] HandTaskPanel 显示真实任务历史(无 MockTask
- [x] Workflow 可创建、编辑、删除
- [x] Session 可持久化,刷新后历史保留
- [x] 7 个 Hands 全部有 TOML 配置
### 6.2 Phase 2 完成标准
- [x] Channels 可完整 CRUD
- [x] Triggers 可完整 CRUD
- [x] Skills 可完整 CRUD
- [x] 模型列表从 API 动态获取
- [x] SecurityStatus 显示真实数据
- [x] SchedulerPanel 可创建定时任务
### 6.3 Phase 3 完成标准
- [x] 创建 OpenFang config.toml
- [x] 迁移 OpenClaw JSON 配置到 TOML
- [x] OpenClaw JSON 配置已归档到 docs/archive/openclaw-legacy/
- [x] 默认路径从 ~/.openclaw 更新为 ~/.openfang
- [x] 默认端口从 18789 更新为 50051
### 6.4 Phase 4 完成标准
- [x] Agent 类型定义完整
- [x] Session 类型定义完整
- [x] Settings 类型定义完整
- [x] Workflow 详细类型定义
### 6.5 Phase 5 完成标准
- [x] 基础 Skills 定义 (9 个)
- [x] agency-agents 集成 (68 Skills)
- [x] 协作协议模板
- [x] Agent 激活提示
- [x] 7 阶段 Playbooks
### 6.6 Phase 6 完成标准
- [x] Team 类型定义完整
- [x] Team Store 集成真实 API
- [x] Agent 编排器 UI 可用
- [x] Dev↔QA 循环界面完成
- [x] TeamList 侧边栏集成
- [x] REST API 认证头正确
- [x] TypeScript 类型检查通过
- [x] Rust cargo check 通过
### 6.7 Phase 7 完成标准
- [x] TOML 配置解析正常
- [x] 请求超时和重试机制工作
- [x] 安全 Token 存储可用
- [x] 16 层安全状态 UI 显示
- [x] Hand 审批工作流可用
- [x] 审计日志 Merkle 验证显示
- [x] 触发器创建 UI 可用
- [x] 设置持久化正常
---
## 七、风险与缓解
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| OpenFang API 变更 | 中 | 高 | 版本锁定,变更日志跟踪 |
| Session API 未实现 | 高 | 高 | 使用 localStorage 临时方案 |
| 安全层 API 未实现 | 高 | 中 | UI 显示"等待 API"状态 |
| 工作流编辑器复杂度高 | 中 | 中 | 先实现简化版,逐步增强 |
---
## 八、附录
### A. API 覆盖率详细统计
| 类别 | 端点数 | 已实现 | 覆盖率 |
|------|--------|--------|--------|
| Agent 管理 | 8 | 6 | 75% |
| Session 管理 | 5 | 5 | 100% |
| Skills 管理 | 5 | 5 | 100% |
| Hands 管理 | 8 | 8 | 100% |
| Channels 管理 | 6 | 6 | 100% |
| Workflow 管理 | 7 | 7 | 100% |
| Trigger 管理 | 4 | 4 | 100% |
| 配置管理 | 5 | 5 | 100% |
| 安全与审计 | 5 | 5 | 100% |
| 统计与健康 | 6 | 6 | 100% |
| Team 协作 API | 6 | 6 | 100% |
| OpenAI 兼容 | 3 | 0 | 0% |
| **总计** | **68** | **63** | **93%** |
### B. UI 组件完成度详细统计
| 类别 | 组件数 | 完全实现 | 部分实现 | 未实现 |
|------|--------|----------|----------|--------|
| 核心功能 | 5 | 5 | 0 | 0 |
| OpenFang 特有 | 10 | 10 | 0 | 0 |
| 设置页面 | 10 | 10 | 0 | 0 |
| Team 协作 | 5 | 5 | 0 | 0 |
| **总计** | **30** | **28** | **0** | **2** |
---
*文档创建: 2026-03-14*
*最后更新: 2026-03-15*
*Phase 1-4 已完成 ✅*
*Phase 5 已完成 ✅*
* 基础 Skills: 9 个 ✅
* agency-agents 集成: 68 Skills ✅
* 多 Agent 协作框架: 完整 ✅
* 协作协议 (Handoff Templates)
* Agent 激活提示
* 7 阶段 Playbooks (Discovery → Operate)
*Phase 6 已完成 ✅ (2026-03-15)*
* 多 Agent Team 协作 UI 实现:
* ✅ 类型定义 (`types/team.ts`)
* ✅ Team Store API 集成 (`store/teamStore.ts`) - 真实 API 调用
* ✅ Agent 编排器 UI (`components/TeamOrchestrator.tsx`)
* ✅ Dev↔QA 循环界面 (`components/DevQALoop.tsx`)
* ✅ 实时协作状态 (`components/TeamCollaborationView.tsx`)
* ✅ TeamList 侧边栏组件 (`components/TeamList.tsx`)
* ✅ REST API 认证头集成
* 主应用集成:
* ✅ Sidebar 添加 Team 标签
* ✅ App.tsx 添加 Team 视图渲染
* ✅ 团队选择和状态管理
* API 客户端:
* ✅ Team API 客户端 (`lib/team-client.ts`)
* ✅ WebSocket 事件订阅 (`lib/useTeamEvents.ts`)
* 代码质量:
* ✅ TypeScript 类型检查通过 (2026-03-15)
* ✅ Rust cargo check 通过
* ✅ 所有编译错误已修复
*Phase 7 已完成 ✅ (2026-03-15)*
* 架构优化:
* ✅ TOML 配置支持 (`lib/toml-utils.ts`, `lib/config-parser.ts`)
* ✅ 请求超时和重试机制 (`lib/request-helper.ts`)
* ✅ 安全 Token 存储 (`lib/secure-storage.ts`, Tauri `secure_storage.rs`)
* UI 增强:
* ✅ 16 层安全状态 UI (`components/SecurityLayersPanel.tsx`)
* ✅ Hand 审批工作流 (`components/HandApprovalModal.tsx`)
* ✅ 增强 Hand 参数 UI (`components/HandParamsForm.tsx`)
* ✅ 审计日志 Merkle 链验证 (`components/AuditLogsPanel.tsx`)
* ✅ 事件触发器创建 (`components/CreateTriggerModal.tsx`)
* ✅ 设置持久化
*Phase 8 已完成 ✅ (2026-03-15)* - UI/UX 优化
* 侧边栏优化:
* ✅ Tab 布局改为图标 + 小标签,解决拥挤问题
* ✅ 添加分身、Hands、工作流、团队四个主功能入口
* 设置页面优化:
* ✅ 主题切换持久化 - 连接 `gatewayStore.saveQuickConfig`
* ✅ 移除 OpenFang 后端下载提示,简化 UI
* ✅ 用量统计增强 - 时间范围筛选 (7天/30天/全部)
* ✅ 统计卡片 - 会话数、消息数、输入/输出 Token
* ✅ Token 使用概览条形图
* ✅ 技能页面 - 添加 8 个 ZCLAW 系统技能定义
* 功能修复:
* ✅ 频道列表去重 - 修复重复内容问题
* ✅ 触发器面板 - 集成 CreateTriggerModal
* ✅ 安全状态面板 - 独立显示12 层默认启用
* ✅ 工作流视图 - 使用 SchedulerPanel 统一入口
* 代码质量:
* ✅ TypeScript 类型检查通过
* ✅ 所有组件中文化完成
*Phase 9 已完成 ✅ (2026-03-15)* - 安全加固
* JSON 安全解析:
* ✅ 创建 `lib/json-utils.ts` - safeJsonParse, parseJsonOrDefault, parseJsonOrThrow
* ✅ 修复 `HandParamsForm.tsx` - 替换不安全 JSON.parse
* ✅ 修复 `teamStore.ts` - 使用 parseJsonOrDefault
* Token 安全存储:
* ✅ 扩展 `secure-storage.ts` - 添加设备密钥存储函数
* ✅ 更新 `gateway-client.ts` - 使用 secure-storage 存储密钥
* WSS 配置:
* ✅ 添加 `VITE_USE_WSS` 环境变量支持
* ✅ 添加 `normalizeGatewayUrl()` URL 规范化函数
* 代码质量:
* ✅ TypeScript 类型检查通过
* ✅ gatewayStore 测试通过 (17/17)
*Phase 10 已完成 ✅ (2026-03-15)* - 类型安全强化
* API 响应类型:
* ✅ 创建 `types/api-responses.ts` - ApiResponse<T>, PaginatedResponse<T>, WebSocketMessage<T>
* ✅ 创建 `types/errors.ts` - 完整错误类型层级 (AppError, NetworkError, AuthError 等)
* any 类型消除:
*`gateway-client.ts` - 12 处 any 替换为 unknown 或具体类型
*`gatewayStore.ts` - 35 处 any 替换,添加 RawAPI 响应接口
*`chatStore.ts` - 1 处 any 替换为 unknown
*`RightPanel.tsx` - 1 处 any 替换为 PluginStatus
* 类型减少: 53 → 0 (100% 减少,超出 50% 目标)
* 代码质量:
* ✅ TypeScript 类型检查通过
* ✅ chatStore 测试通过 (11/11)
* ✅ gatewayStore 测试通过 (17/17)
*Phase 11 进行中 🔄 (2026-03-15)* - Store 重构分解
* 新 Store 文件:
*`connectionStore.ts` (444 行) - WebSocket 连接、认证、本地 Gateway
*`agentStore.ts` (256 行) - Clones、使用统计、插件状态
*`handStore.ts` (498 行) - Hands、Triggers、Approvals
*`workflowStore.ts` (255 行) - Workflows、WorkflowRuns
*`configStore.ts` (537 行) - QuickConfig、Channels、Skills、Models
* Store 行数: gatewayStore 1660 → 5 个子 Store (平均 358 行)
* 待完成:
* 🔄 创建协调层 (coordinator)
* 🔄 更新组件导入
* 代码质量:
* ✅ TypeScript 类型检查通过
*下一步: Phase 11 协调层创建*