fix(dev-server): 修复开发服务器和前端兼容性问题
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

修复内容:
1. 修复 dev_server.rs 编译错误 - 使用 Vec::new() 替代数组转换
2. 修复 pipeline-client.ts - 添加 Tauri 运行时检测和开发服务器 fallback
3. 更新 troubleshooting.md - 添加开发服务器使用说明

测试结果:
- 所有前端模块正常加载
- 开发服务器 API 响应正确
- 类型检查通过
This commit is contained in:
iven
2026-03-26 18:10:55 +08:00
parent 85bf47bebb
commit 9ee23e444c
8 changed files with 394 additions and 381 deletions

View File

@@ -1664,7 +1664,69 @@ pub enum InputType {
---
## 11. 相关文档
## 11. 开发调试问题
### 11.1 Web 端无法连接后端进行调试
**症状**:
- Web 端 (`pnpm dev`) 无法连接后端 Gateway
- 只能通过 Tauri 桌面端调试,效率低下
- Vite 代理配置正确但仍然无法连接
**根本原因**: Tauri 应用在开发模式下不暴露 API 端口给外部
**解决方案**: 使用开发模式服务器
ZCLAW 提供了可选的开发模式 HTTP/WebSocket 服务器,通过 feature flag 控制:
**启动方式**:
```bash
# 启动带开发服务器的 Tauri
pnpm tauri:dev:web
# 常规开发模式(无服务器)
pnpm tauri:dev
```
**技术实现**:
- 服务器代码: `desktop/src-tauri/src/dev_server.rs`
- Feature flag: `dev-server`
- 端口: `localhost:50051` (与生产 Gateway 相同)
- 协议: HTTP + WebSocket
**安全设计**:
1. **Feature Flag 控制**: 只有显式启用 `dev-server` feature 才会编译服务器代码
2. **仅 localhost 绑定**: 不暴露到外部网络
3. **CORS 白名单**: 只允许 Vite 开发服务器端口 (1420, 5173)
4. **生产构建排除**: `tauri build` 不会包含服务器代码
**API 端点**:
| 端点 | 方法 | 说明 |
|------|------|------|
| `/health` | GET | 健康检查 |
| `/ws` | GET | WebSocket 连接 |
| `/api/kernel/status` | GET | 内核状态 |
| `/api/agents` | GET | Agent 列表 |
| `/api/skills` | GET | 技能列表 |
| `/api/hands` | GET | Hands 列表 |
| `/api/pipelines` | GET | Pipeline 列表 |
| `/api/rpc` | POST | JSON-RPC 调用 |
**验证服务器运行**:
```bash
curl http://localhost:50051/health
# 应返回: {"status":"ok","mode":"development",...}
```
**注意事项**:
- 开发服务器仅提供基础 API 端点,完整功能需要 Tauri 运行时
- 生产构建 (`tauri build`) 自动排除开发服务器代码
- 如果端口 50051 被占用,服务器会跳过启动并输出警告
---
## 12. 相关文档
- [OpenFang 配置指南](./openfang-configuration.md) - 配置文件位置、格式和最佳实践
- [Agent 和 LLM 提供商配置](./agent-provider-config.md) - Agent 管理和 Provider 配置
@@ -1676,6 +1738,7 @@ pub enum InputType {
| 日期 | 变更 |
|------|------|
| 2026-03-26 | 添加 11.1 节Web 端无法连接后端进行调试 - 开发模式服务器方案 |
| 2026-03-24 | 添加 9.6 节:日志截断导致 UTF-8 字符边界 Panic - floor_char_boundary 修复方案 |
| 2026-03-24 | 添加 9.5 节:阿里云百炼 Coding Plan 工具调用 400 错误 - 流式+工具不兼容、响应解析优先级、JSON 序列化问题 |
| 2026-03-24 | 添加 10.2 节:`skills_dir: None` 导致技能系统完全失效 - from_provider() 硬编码问题 |