Files
zclaw_openfang/docs/superpowers/specs/2026-03-24-v0.2.0-release-plan-design.md
2026-03-24 01:16:52 +08:00

19 KiB
Raw Blame History

ZCLAW v0.2.0 发布计划设计文档

创建日期: 2026-03-24 状态: 待审核 目标发布: 2026-05 中旬 (6-8 周)


一、发布目标与范围

1.1 核心定位

面向中文用户的 AI Agent 桌面客户端,提供流畅的对话体验和基础自动化能力。

1.2 发布范围

类别 功能 状态
必须完成 流式响应 完整实现
必须完成 MCP 协议 完整实现(全规范)
必须完成 Browser Hand playwright-rust 实现
必须完成 工具安全验证 基础白名单
必须完成 核心对话流程 无阻塞
推迟 Ollama/Local 驱动 v0.3.0
推迟 Gemini 驱动 v0.3.0
推迟 CI/CD v0.3.0

1.3 发布形式

  • 平台: Windows 安装包
  • 签名: 自签名证书(用户需手动信任)
  • 分发: GitHub Releases

二、时间线与里程碑

2.1 8 周发布计划

Week 1-2: 流式响应
├── 修改 LlmDriver trait 添加 stream() 方法
├── 实现 Anthropic/OpenAI 流式 API
├── 前端 Tauri 事件接收
└── 测试验证

Week 3: MCP 协议
├── MCP 客户端基础架构
├── 工具发现和调用
├── 资源订阅
├── 提示词支持
└── 采样功能

Week 4-5: Browser Hand
├── playwright-rust 集成
├── navigate/click/input/screenshot 基础操作
├── wait/evaluate 高级操作
├── 错误处理和超时
└── 审批流程集成

Week 6: 工具安全 + 测试
├── shell_exec 命令白名单
├── file_read/write 路径限制
├── 单元测试补充(目标 70%
├── E2E 测试新增用例
└── Bug 修复

Week 7: 文档 + 打包
├── 用户手册更新
├── CHANGELOG 编写
├── Windows 安装包构建
├── 自签名证书配置
└── 安装测试

Week 8: 发布 + 快速响应
├── GitHub Release 发布
├── 用户反馈渠道建立
├── 监控崩溃报告
└── v0.2.1 hotfix 准备

2.2 关键里程碑

里程碑 时间 验收标准
M1: 流式可用 Week 2 末 对话流式显示正常
M2: MCP 可用 Week 3 末 连接 filesystem-mcp 成功
M3: Browser 可用 Week 5 末 基础网页操作正常
M4: 测试通过 Week 6 末 核心流程 E2E 全绿
M5: 正式发布 Week 8 GitHub Release 上线

三、技术架构设计

3.1 流式响应架构

┌─────────────────────────────────────────────────────────────┐
│                        流式响应数据流                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  LLM API (SSE)                                              │
│       │                                                     │
│       ▼                                                     │
│  ┌─────────────┐                                            │
│  │ LlmDriver   │  stream() -> impl Stream<Item = Chunk>     │
│  │ (Anthropic/ │                                            │
│  │  OpenAI)    │                                            │
│  └─────────────┘                                            │
│       │                                                     │
│       ▼                                                     │
│  ┌─────────────┐                                            │
│  │ LoopRunner  │  发送 Tauri 事件                           │
│  │             │  app.emit("stream:chunk", chunk)           │
│  └─────────────┘                                            │
│       │                                                     │
│       ▼ (Tauri IPC)                                         │
│  ┌─────────────┐                                            │
│  │ 前端        │  listen<StreamChunk>("stream:chunk")       │
│  │ ChatStore   │  逐字更新 UI                               │
│  └─────────────┘                                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

关键改动

文件 改动说明
crates/zclaw-runtime/src/driver/mod.rs trait 新增 stream() 方法
crates/zclaw-runtime/src/loop_runner.rs 流式循环实现
desktop/src/store/chatStore.ts 事件监听和 UI 更新

3.2 MCP 协议架构

┌─────────────────────────────────────────────────────────────┐
│                        MCP 协议栈                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐          │
│  │   Tools     │  │  Resources  │  │   Prompts   │          │
│  │  工具调用   │  │  资源订阅   │  │  提示词模板 │          │
│  └─────────────┘  └─────────────┘  └─────────────┘          │
│         │                │                │                 │
│         └────────────────┼────────────────┘                 │
│                          ▼                                  │
│  ┌─────────────────────────────────────────────┐            │
│  │              MCP Client                      │            │
│  │  - JSON-RPC 2.0 通信                        │            │
│  │  - stdio / HTTP / WebSocket 传输           │            │
│  │  - 能力协商                                 │            │
│  └─────────────────────────────────────────────┘            │
│                          │                                  │
│                          ▼                                  │
│  ┌─────────────────────────────────────────────┐            │
│  │           MCP Server (外部)                  │            │
│  │  filesystem-mcp, github-mcp, etc.           │            │
│  └─────────────────────────────────────────────┘            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

关键改动

文件 改动说明
crates/zclaw-protocols/src/mcp.rs 完整 MCP 客户端实现
crates/zclaw-protocols/src/mcp_client.rs 新增 - 连接管理
crates/zclaw-protocols/src/mcp_types.rs 新增 - 类型定义

3.3 Browser Hand 架构

┌─────────────────────────────────────────────────────────────┐
│                     Browser Hand 架构                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────┐            │
│  │           BrowserHand (Rust)                │            │
│  │  impl Hand trait                            │            │
│  └─────────────────────────────────────────────┘            │
│                          │                                  │
│                          ▼                                  │
│  ┌─────────────────────────────────────────────┐            │
│  │           playwright-rust                    │            │
│  │  - chromium/firefox/webkit                  │            │
│  │  - Page, Element, Frame API                 │            │
│  └─────────────────────────────────────────────┘            │
│                          │                                  │
│         ┌────────────────┼────────────────┐                 │
│         ▼                ▼                ▼                 │
│  ┌───────────┐    ┌───────────┐    ┌───────────┐            │
│  │ navigate  │    │  click    │    │ screenshot│            │
│  │ input     │    │  wait     │    │ evaluate  │            │
│  └───────────┘    └───────────┘    └───────────┘            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

关键改动

文件 改动说明
crates/zclaw-hands/src/hands/browser.rs 新增 - Browser Hand 实现
crates/zclaw-hands/Cargo.toml 添加 playwright 依赖
hands/browser.HAND.toml 更新触发词和权限

四、工具安全与风险缓解

4.1 工具安全策略

┌─────────────────────────────────────────────────────────────┐
│                      工具安全层级                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Level 1: 审批控制                                          │
│  ├── needs_approval 标记的 Hand 需用户确认                  │
│  └── 敏感操作弹窗提示                                        │
│                                                             │
│  Level 2: 命令/路径白名单                                   │
│  ├── shell_exec: 允许的命令列表 (git, npm, cargo...)        │
│  ├── file_read: 允许的目录前缀                              │
│  └── file_write: 禁止写入系统目录                           │
│                                                             │
│  Level 3: 资源限制                                          │
│  ├── 超时控制 (默认 60s)                                    │
│  ├── 输出大小限制 (1MB)                                     │
│  └── 并发执行限制                                           │
│                                                             │
│  Level 4: 审计日志                                          │
│  ├── 所有工具调用记录                                       │
│  ├── 输入/输出摘要                                          │
│  └── 可追溯查询                                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

具体实现

工具 安全措施 配置位置
shell_exec 命令白名单 + 超时 config/security.toml
file_read 路径前缀检查 代码硬编码
file_write 禁止系统目录 + 大小限制 代码硬编码
web_fetch SSRF 防护 (禁止内网) 代码硬编码

4.2 风险缓解计划

风险 概率 影响 缓解措施
流式响应延期 Week 2 评估,必要时切换 SSE 方案
MCP 兼容问题 优先测试主流服务器 (filesystem, github)
Browser 依赖问题 Week 4 前验证 playwright-rust 可用性
自签名警告投诉 文档说明 + 安装指南
崩溃问题 崩溃报告收集 + 快速 hotfix 流程

4.3 发布后响应策略

┌─────────────────────────────────────────────────────────────┐
│                    问题响应流程                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  P0 问题 (数据安全/崩溃)                                    │
│  └── 24h 内 hotfix → v0.2.1                                 │
│                                                             │
│  P1 问题 (功能阻塞)                                         │
│  └── 72h 内修复 → v0.2.2                                    │
│                                                             │
│  P2 问题 (体验优化)                                         │
│  └── 收集反馈 → v0.3.0 统一处理                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

五、验收标准与发布检查清单

5.1 功能验收标准

功能 验收标准 测试方法
流式响应 消息逐字显示,延迟 < 500ms 手动测试 + E2E
MCP 协议 连接 filesystem-mcp读取文件成功 集成测试
Browser Hand 打开网页、点击、截图成功 E2E 测试
工具安全 恶意命令被拦截 单元测试
核心对话 发送消息 → 收到响应 → 无崩溃 E2E 全流程
分身管理 创建/切换/删除分身正常 手动测试
配置保存 重启后配置持久化 手动测试

5.2 发布前检查清单 (Go/No-Go)

┌─────────────────────────────────────────────────────────────┐
│  v0.2.0 发布检查清单                                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  □ 流式响应功能正常                                         │
│  □ MCP 至少连接 1 个外部服务器成功                          │
│  □ Browser Hand 基础操作正常                                │
│  □ 工具安全白名单生效                                       │
│  □ 核心对话流程 E2E 测试全绿                                │
│  □ 无已知数据安全问题                                       │
│  □ Windows 安装包构建成功                                   │
│  □ 自签名证书配置完成                                       │
│  □ 用户手册更新完成                                         │
│  □ CHANGELOG 编写完成                                       │
│  □ GitHub Release 草稿准备                                  │
│  □ 反馈渠道建立 (GitHub Issues)                             │
│                                                             │
│  决策: □ GO  □ NO-GO (需完成: _______________)             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

5.3 发布物料清单

物料 负责人 状态
Windows 安装包 - 待制作
用户手册 - 待更新
CHANGELOG - 待编写
GitHub Release Notes - 待编写
自签名证书 - 待生成

六、关键文件清单

文件 优先级 说明
crates/zclaw-runtime/src/loop_runner.rs P0 流式响应核心
crates/zclaw-runtime/src/driver/mod.rs P0 LlmDriver trait
crates/zclaw-protocols/src/mcp.rs P0 MCP 协议实现
crates/zclaw-hands/src/hands/browser.rs P0 Browser Hand
crates/zclaw-runtime/src/tool/builtin/shell_exec.rs P1 工具安全
desktop/src/store/chatStore.ts P0 前端流式处理
config/security.toml P1 安全配置

七、决策记录

决策项 选择 日期
发布时间 6-8 周内v0.2.0 正式版 2026-03-24
内测策略 跳过内测,直接发布 2026-03-24
流式响应 完整实现Tauri 事件) 2026-03-24
MCP 协议 完整实现(全规范) 2026-03-24
Browser Hand playwright-rust 2026-03-24
本地模型 推迟到 v0.3.0 2026-03-24
代码签名 自签名证书 2026-03-24
发布路线图 方案 A功能优先 2026-03-24