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
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:
@@ -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() 硬编码问题 |
|
||||
|
||||
Reference in New Issue
Block a user