release(v0.2.0): streaming, MCP protocol, Browser Hand, security enhancements

## Major Features

### Streaming Response System
- Implement LlmDriver trait with `stream()` method returning async Stream
- Add SSE parsing for Anthropic and OpenAI API streaming
- Integrate Tauri event system for frontend streaming (`stream:chunk` events)
- Add StreamChunk types: Delta, ToolStart, ToolEnd, Complete, Error

### MCP Protocol Implementation
- Add MCP JSON-RPC 2.0 types (mcp_types.rs)
- Implement stdio-based MCP transport (mcp_transport.rs)
- Support tool discovery, execution, and resource operations

### Browser Hand Implementation
- Complete browser automation with Playwright-style actions
- Support Navigate, Click, Type, Scrape, Screenshot, Wait actions
- Add educational Hands: Whiteboard, Slideshow, Speech, Quiz

### Security Enhancements
- Implement command whitelist/blacklist for shell_exec tool
- Add SSRF protection with private IP blocking
- Create security.toml configuration file

## Test Improvements
- Fix test import paths (security-utils, setup)
- Fix vi.mock hoisting issues with vi.hoisted()
- Update test expectations for validateUrl and sanitizeFilename
- Add getUnsupportedLocalGatewayStatus mock

## Documentation Updates
- Update architecture documentation
- Improve configuration reference
- Add quick-start guide updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
iven
2026-03-24 03:24:24 +08:00
parent e49ba4460b
commit 3ff08faa56
78 changed files with 29575 additions and 1682 deletions

View File

@@ -0,0 +1,211 @@
# ZCLAW 上线发布分析 & 头脑风暴计划
## 一、项目现状总结
### 1.1 整体完成度评估
| 层级 | 完成度 | 关键问题 |
|------|--------|----------|
| **Rust 后端** | 72% | 流式响应、MCP 协议、驱动完整性 |
| **前端界面** | 85% | 技能创建 UI、工作流可视化 |
| **基础设施** | 60% | CI/CD 缺失、测试覆盖不足 |
### 1.2 各模块详细状态
#### Rust 后端 (72%)
| Crate | 完成度 | 关键缺失 | 风险 |
|-------|--------|----------|------|
| zclaw-types | 90% | 测试覆盖 | 低 |
| zclaw-memory | 85% | 迁移管理 | 中 |
| **zclaw-runtime** | **70%** | 流式响应未实现、Gemini/Local 驱动占位符 | **高** |
| zclaw-kernel | 80% | 配置加载、权限验证 | 中 |
| zclaw-skills | 75% | WASM/Native 执行器 | 中 |
| zclaw-hands | 85% | Browser Hand 未实现 | 中 |
| **zclaw-protocols** | **60%** | MCP 协议通信未实现 | **高** |
#### 前端界面 (85%)
| 模块 | 完成度 | 状态 |
|------|--------|------|
| 聊天界面 | 90% | 流式响应、多模型切换 ✅ |
| 分身管理 | 85% | CRUD 完成 |
| Hands 自动化 | 80% | 缺少实时执行进度 |
| 技能市场 | 70% | 缺少创建/编辑 UI |
| 工作流编辑 | 75% | 缺少可视化编辑器 |
| 配置管理 | 85% | 安全存储已实现 ✅ |
#### 基础设施 (60%)
| 项目 | 状态 | 影响 |
|------|------|------|
| E2E 测试 | 12 个 spec | 覆盖核心流程 |
| Rust 单元测试 | 34 个 | 需要扩展 |
| **CI/CD** | **缺失** | 无自动化构建/测试 |
| 文档 | 90+ md | 文档齐全 |
| Skills 定义 | 76+ | 生态丰富 |
| Hands 配置 | 11 个 | 核心能力覆盖 |
---
## 二、关键问题分级
### P0 - 阻塞发布 (必须有)
1. **流式响应实现**
- 位置: `crates/zclaw-runtime/src/loop_runner.rs:125`
- 状态: TODO 占位符
- 影响: 用户等待体验差v0.2.0 核心卖点
2. **MCP 协议 MVP**
- 位置: `crates/zclaw-protocols/src/mcp.rs:151,155`
- 状态: 所有方法返回 "Not implemented"
- 影响: 无法接入 Claude Code 等工具生态
3. **Browser Hand 实现**
- 位置: `hands/browser.HAND.toml` (配置存在,实现缺失)
- 状态: 仅有配置,无 Rust 实现
- 影响: 最常用的自动化能力缺失
### P1 - 核心体验 (应该有)
4. **Ollama/Local 驱动**
- 位置: `crates/zclaw-runtime/src/driver/local.rs`
- 影响: 本地模型用户无法使用
5. **工具安全验证**
- 位置: `crates/zclaw-runtime/src/tool/builtin/shell_exec.rs`
- 状态: 返回模拟输出
- 影响: 安全风险
6. **测试覆盖提升**
- 当前: ~60%
- 目标: 70%+
### P2 - 完善功能 (可以有)
7. CI/CD 自动化
8. 技能创建 UI
9. 工作流可视化编辑器
10. Gemini 驱动
---
## 三、头脑风暴核心问题
### 3.1 发布策略
**Q1: 发布版本选择**
- A. v0.2.0-beta (内测) - 仅邀请用户
- B. v0.2.0-rc (公测) - 开放下载
- C. v0.2.0 (正式) - 完整发布
**Q2: 功能取舍**
- 流式响应: Plan A (完整实现) vs Plan B (SSE 简化) vs Plan C (优化模拟)
- MCP 协议: MVP (基础连接) vs 完整实现
- Browser Hand: 基础功能 vs 完整功能
**Q3: 时间线**
- 2 周内发布 (仅 P0)
- 4 周内发布 (P0 + P1)
- 6 周内发布 (完整功能)
### 3.2 技术决策
**Q4: 流式响应技术选型**
- 方案 A: 修改 LlmDriver trait + Tauri 事件
- 方案 B: SSE 端点 + EventSource
- 方案 C: WebSocket 流式通道
**Q5: Browser Hand 技术选型**
- headless-chrome (原生)
- playwright-rust
- puppeteer (Node.js 依赖)
**Q6: 代码签名**
- 自签名 (内测可接受)
- 购买证书 (正式发布必需)
### 3.3 用户策略
**Q7: 内测规模**
- 10-20 位核心用户
- 50-100 位早期用户
- 开放申请
**Q8: 反馈收集**
- GitHub Issues
- 专属反馈群
- 应用内反馈表单
---
## 四、推荐发布路径
```
Week 1-2: P0 完成
├── 流式响应实现 (Plan A/B)
├── MCP MVP 实现
└── 工具安全基础
Week 3-4: P1 完成
├── Browser Hand 基础
├── Ollama 驱动
└── 测试覆盖提升
Week 5-6: 测试+修复
├── 全量测试
├── Bug 修复
└── 文档完善
Week 7-8: 内测
├── 10-20 用户
├── 收集反馈
└── 问题修复
Week 9+: 公测/正式
├── 开放下载
├── 迭代优化
└── 正式发布
```
---
## 五、风险评估
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| 流式响应延期 | 高 | 高 | SSE 简化方案备选 |
| MCP 兼容问题 | 中 | 中 | 先测试主流服务器 |
| Browser 依赖问题 | 中 | 中 | 预先验证 playwright |
| 内测反馈问题多 | 高 | 中 | 控制用户数量 |
| 安全漏洞 | 低 | 严重 | 安全审计 |
---
## 六、下一步行动
### 立即需要回答的问题
1. **发布时间目标**: 期望何时发布?
2. **功能优先级**: P0/P1 哪些必须完成?
3. **内测策略**: 邀请制还是开放申请?
4. **资源投入**: 全职开发还是兼职?
### 需要验证的技术点
1. `loop_runner.rs` 流式响应实现复杂度
2. `mcp.rs` MCP 协议最小实现范围
3. Browser Hand 技术选型验证
---
## 七、关键文件清单
| 文件 | 优先级 | 说明 |
|------|--------|------|
| `crates/zclaw-runtime/src/loop_runner.rs` | P0 | 流式响应核心 |
| `crates/zclaw-protocols/src/mcp.rs` | P0 | MCP 协议实现 |
| `crates/zclaw-runtime/src/tool/builtin/shell_exec.rs` | P1 | 工具安全 |
| `crates/zclaw-runtime/src/driver/local.rs` | P1 | 本地驱动 |
| `docs/superpowers/specs/2026-03-23-v0.2.0-release-design.md` | 参考 | v0.2.0 设计规格 |