feat(hands): restructure Hands UI with Chinese localization
Major changes: - Add HandList.tsx component for left sidebar - Add HandTaskPanel.tsx for middle content area - Restructure Sidebar tabs: 分身/HANDS/Workflow - Remove Hands tab from RightPanel - Localize all UI text to Chinese - Archive legacy OpenClaw documentation - Add Hands integration lessons document - Update feature checklist with new components UI improvements: - Left sidebar now shows Hands list with status icons - Middle area shows selected Hand's tasks and results - Consistent styling with Tailwind CSS - Chinese status labels and buttons Documentation: - Create docs/archive/openclaw-legacy/ for old docs - Add docs/knowledge-base/hands-integration-lessons.md - Update docs/knowledge-base/feature-checklist.md - Update docs/knowledge-base/README.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# ZClaw OpenFang 迁移 - 新会话提示词
|
||||
|
||||
> **更新日期**: 2026-03-13
|
||||
> **状态**: Phase 1-2 基础设施已完成,继续 Phase 3-7
|
||||
> **更新日期**: 2026-03-13 (Session 4)
|
||||
> **状态**: Phase 1-7 基本完成
|
||||
|
||||
---
|
||||
|
||||
@@ -9,36 +9,66 @@
|
||||
|
||||
### ✅ 已完成
|
||||
|
||||
1. **OpenFang 打包架构** (Phase 1-2)
|
||||
1. **OpenFang 打包架构** (Phase 1-2) ✅
|
||||
- 创建 `prepare-openfang-runtime.mjs` 跨平台下载脚本
|
||||
- 更新 Rust `lib.rs` 支持二进制运行时
|
||||
- 配置 Tauri 打包 `resources/openfang-runtime/`
|
||||
- 验证构建成功
|
||||
|
||||
2. **OpenFang 特性 UI 组件**
|
||||
- `HandsPanel.tsx` - Hands 管理界面
|
||||
2. **OpenFang 特性 UI 组件** ✅
|
||||
- `HandsPanel.tsx` - Hands 管理界面 (含审批流程)
|
||||
- `WorkflowList.tsx` - 工作流列表
|
||||
- `SecurityStatus.tsx` - 16层安全状态
|
||||
- `TriggersPanel.tsx` - 触发器管理
|
||||
- `AuditLogsPanel.tsx` - 审计日志
|
||||
- `AuditLogsPanel.tsx` - 审计日志 (已集成到 RightPanel)
|
||||
|
||||
3. **状态管理更新**
|
||||
3. **状态管理更新** ✅
|
||||
- `gatewayStore.ts` 添加 OpenFang 类型定义
|
||||
- `gateway-config.ts` 配置管理
|
||||
- `loadHands()`, `loadWorkflows()`, `loadTriggers()`, `loadSecurityStatus()` 方法
|
||||
- `approveHand()`, `cancelHand()`, `cancelWorkflow()` 方法
|
||||
- `isLoading` 状态管理
|
||||
- `connect()` 后自动加载 OpenFang 数据
|
||||
|
||||
### 🔄 进行中
|
||||
4. **Gateway Client** ✅
|
||||
- `gateway-client.ts` 已适配 OpenFang 协议
|
||||
- WebSocket 连接到 `ws://127.0.0.1:4200/ws`
|
||||
- REST API 调用 `/api/*` 端点
|
||||
- Ed25519 设备认证 + JWT
|
||||
- Hand 审批/取消 API
|
||||
|
||||
- **OpenFangClient 实现**: 需要完成 WebSocket 客户端适配 OpenFang 协议
|
||||
5. **后端切换功能** ✅
|
||||
- `Settings/General.tsx` 添加后端类型选择器
|
||||
- 支持 OpenClaw (TypeScript) 和 OpenFang (Rust) 切换
|
||||
- localStorage 持久化 `zclaw-backend`
|
||||
|
||||
### 📋 待完成 (Phase 3-7)
|
||||
6. **Tauri 后端完善** (Phase 5) ✅
|
||||
- `openfang_process_list` - 列出 OpenFang 进程
|
||||
- `openfang_process_logs` - 获取进程日志
|
||||
- `openfang_version` - 获取版本信息
|
||||
- 前端 `tauri-gateway.ts` 适配
|
||||
|
||||
7. **Hand 审批流程** (Phase 6.1) ✅
|
||||
- `approveHand()` / `cancelHand()` API
|
||||
- `HandsPanel.tsx` 审批 UI (批准/拒绝按钮)
|
||||
- 运行中取消执行功能
|
||||
|
||||
8. **测试基础设施** (Phase 7) ✅
|
||||
- `tests/fixtures/openfang-mock-server.ts` - 完整 Mock Server
|
||||
- 支持 REST API 和 WebSocket 模拟
|
||||
- `tests/desktop/integration/openfang-api.test.ts` - 34 个集成测试
|
||||
- 所有 63 个桌面端测试全部通过
|
||||
|
||||
9. **构建脚本修复** ✅
|
||||
- `tauri-build-bundled.mjs` 更新为使用 `prepare-openfang-runtime.mjs`
|
||||
|
||||
### 📋 可选后续工作
|
||||
|
||||
| Phase | 任务 | 状态 |
|
||||
|-------|------|------|
|
||||
| Phase 3 | 状态迁移 (gatewayStore 适配) | 待开始 |
|
||||
| Phase 4 | 插件迁移 (zclaw-*) | 待开始 |
|
||||
| Phase 5 | Tauri 后端完善 | 待开始 |
|
||||
| Phase 6 | UI 增强 (Hands/Workflow) | 待开始 |
|
||||
| Phase 7 | 测试验证 | 待开始 |
|
||||
| Phase 7.3 | E2E 测试 (Playwright) | 可选 |
|
||||
| - | CSP 配置 (生产环境) | 可选 |
|
||||
| - | chinese-writing 插件迁移 | 待定 |
|
||||
|
||||
---
|
||||
|
||||
@@ -74,37 +104,36 @@ ZClaw-Desktop-Setup.exe
|
||||
|
||||
---
|
||||
|
||||
## 测试
|
||||
|
||||
### 运行测试
|
||||
|
||||
```bash
|
||||
# 所有桌面端测试 (63 个)
|
||||
pnpm vitest run tests/desktop/
|
||||
|
||||
# 仅集成测试 (34 个)
|
||||
pnpm vitest run tests/desktop/integration/
|
||||
|
||||
# 单元测试
|
||||
pnpm vitest run tests/desktop/chatStore.test.ts
|
||||
pnpm vitest run tests/desktop/gatewayStore.test.ts
|
||||
```
|
||||
|
||||
### Mock Server
|
||||
|
||||
Mock Server (`tests/fixtures/openfang-mock-server.ts`) 提供:
|
||||
|
||||
- **REST API**: 所有 `/api/*` 端点
|
||||
- **WebSocket**: `/ws` 路径握手
|
||||
- **可配置数据**: Hands, Workflows, Triggers, Agents, Security Layers
|
||||
- **审计日志**: 可添加自定义日志条目
|
||||
|
||||
---
|
||||
|
||||
## 下一步工作
|
||||
|
||||
### 优先级 1: OpenFangClient 实现
|
||||
|
||||
文件: `desktop/src/lib/openfang-client.ts`
|
||||
|
||||
```typescript
|
||||
// 需要实现
|
||||
class OpenFangClient implements GatewayBackend {
|
||||
private ws: WebSocket;
|
||||
private url = 'ws://127.0.0.1:4200/ws';
|
||||
|
||||
async connect(): Promise<void> { /* OpenFang 认证协议 */ }
|
||||
async chat(message: string, opts?: ChatOptions): Promise<{runId: string}> { /* chat 格式 */ }
|
||||
onStream(callback: StreamCallback): () => void { /* 流式事件 */ }
|
||||
}
|
||||
```
|
||||
|
||||
### 优先级 2: gatewayStore 适配
|
||||
|
||||
文件: `desktop/src/store/gatewayStore.ts`
|
||||
|
||||
```typescript
|
||||
// 添加后端切换
|
||||
interface GatewayStore {
|
||||
backendType: 'openclaw' | 'openfang';
|
||||
switchBackend(type: 'openclaw' | 'openfang'): void;
|
||||
}
|
||||
```
|
||||
|
||||
### 优先级 3: 测试 OpenFang 集成
|
||||
### 优先级 1: 真实 OpenFang 集成测试
|
||||
|
||||
```bash
|
||||
# 1. 启动 OpenFang
|
||||
@@ -120,6 +149,12 @@ pnpm tauri:dev
|
||||
# - Hands/Workflow 功能
|
||||
```
|
||||
|
||||
### 优先级 2: 插件迁移 (chinese-writing)
|
||||
|
||||
将 `plugins/zclaw-chinese-models` 中的模型配置迁移到 OpenFang TOML 格式。
|
||||
|
||||
参考: `config/chinese-providers.toml`
|
||||
|
||||
---
|
||||
|
||||
## 构建命令
|
||||
@@ -152,9 +187,9 @@ pnpm prepare:openfang-runtime
|
||||
我正在开发 ZClaw Desktop,一个从 OpenClaw 迁移到 OpenFang 的 AI Agent 桌面客户端。
|
||||
|
||||
当前状态:
|
||||
- OpenFang 打包架构已完成
|
||||
- UI 组件已创建 (Hands, Workflow, Security)
|
||||
- 需要继续: OpenFangClient 实现、状态迁移、插件迁移
|
||||
- Phase 1-7 基本完成
|
||||
- 63 个测试全部通过
|
||||
- Mock Server 集成测试可用
|
||||
|
||||
请阅读 docs/new-session-prompt-openfang-migration.md 了解详细上下文,然后继续以下工作:
|
||||
[具体任务]
|
||||
|
||||
Reference in New Issue
Block a user