docs.rs failed to build sz-rust-visual-1.4.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
SZ-Rust 可视化画布 (sz-rust-visual)
P2-3 生态件:Tauri 2.x 桌面应用,SDD 编排可视化 + Capability 管理 + RAG 搜索 + 应用预览。
架构
sz-rust-visual/
├── src/
│ ├── lib.rs # Tauri Builder + run() 入口 + CapabilityRegistry 注册
│ ├── main.rs # binary 入口
│ ├── error.rs # VisualError 9 变体 + Serialize + error_code()
│ ├── sdd_facade.rs # SddFacade trait (6 异步方法) + MockSddFacade
│ ├── models.rs # PhaseEvent/SddSession/SddPhase/SddStatus/...
│ ├── commands.rs # 10 个 #[tauri::command] 函数(真实接线)
│ ├── event_bridge.rs # SddEventBridge + tracing 日志转发
│ └── preview.rs # PreviewService (axum 静态文件服务 + 优雅关闭)
├── frontend/ # Vue 3 前端(已实现)
│ ├── src/
│ │ ├── api/tauri.ts # Tauri invoke/listen 封装
│ │ ├── stores/ # Pinia stores (sdd/capability/plugin)
│ │ ├── components/ # Workbench + Canvas + 7 面板
│ │ └── i18n/ # 中英文 i18n 资源
│ ├── package.json # Vue 3 + Vite 4 + Pinia + Tauri API
│ └── vite.config.ts # Vite 构建配置
├── tests/
│ └── e2e_flow.rs # 端到端全流程集成测试(12 个测试)
├── tauri.conf.json # Tauri 配置(窗口/CSP/bundle)
├── build.rs # tauri_build::build()
└── icons/ # 应用图标
Tauri Command 清单
| Command | 参数 | 返回 | 说明 |
|---|---|---|---|
sdd_start |
feature, requirement, start_phase | SddSession | 启动 SDD 编排 |
sdd_submit_review |
session_id, phase, decision, comment | SddSession | 提交 HITL 审查 |
sdd_cancel |
session_id | () | 取消编排 |
sdd_status |
session_id | SddSession | 查询编排状态 |
sdd_read_artifact |
session_id, phase | String | 读取产物 |
cap_list |
— | Vec | Capability 列表 |
cap_call |
name, args | Value | Capability 调用 |
rag_search |
query | Vec | RAG 搜索 |
preview_start |
feature, device | String | 启动预览 |
preview_stop |
url | () | 停止预览 |
Tauri Event 清单
| Event | Payload | 说明 |
|---|---|---|
sdd_phase_event |
PhaseEvent | 阶段事件 |
sdd_log |
LogEvent | 日志事件 |
sdd_status_changed |
StatusChangedEvent | 状态变更 |
SddFacade Trait
- 开源版:
MockSddFacade(占位实现) - 企业版:
SddFacadeImpl(路由到Orchestrator,feature gateenterprise)
构建
开发模式
生产构建
# Windows
# macOS
# Linux
CI/CD
.github/workflows/visual-build.yml 三端矩阵构建,产物上传 GitHub Releases。
前端开发
组件树:Workbench → Canvas → {RequirementPanel, SpecPanel, DesignPanel, TaskBoard, LogPanel, PreviewPanel, PluginPanel}
Pinia Stores
| Store | 职责 |
|---|---|
sdd.ts |
SDD 编排状态管理(start/submitReview/cancel/status/readArtifact) |
capability.ts |
Capability 列表与调用(capList/capCall/ragSearch) |
plugin.ts |
插件市场交互(search/install/uninstall/update/login) |
测试
# 全量测试
# 38 passed; 0 failed (26 unit + 12 e2e)
# 仅端到端测试
# 12 passed; 0 failed
端到端测试覆盖
| 测试 | 验证内容 |
|---|---|
e2e_sdd_full_flow_start_review_complete |
SDD 启动 → 四阶段 HITL 审查 → 状态查询 |
e2e_sdd_review_with_modify_decision |
Modify/Supplement 审查决定 |
e2e_sdd_cancel_session |
取消编排 |
e2e_sdd_read_artifact |
读取产物 |
e2e_sdd_subscribe_events |
事件订阅 |
e2e_preview_start_http_accessible_stop_releases |
预览 HTTP 服务可访问 + stop 释放端口 |
e2e_preview_device_viewport_variants |
Desktop/Tablet/Mobile 三种设备 |
e2e_preview_artifact_not_found |
产物不存在时返回 ARTIFACT_NOT_FOUND |
e2e_capability_list_and_call |
Capability 列表 + mcp.url_decode 真实调用 |
e2e_phase_event_serialization |
PhaseEvent 序列化/反序列化 |
e2e_sdd_session_trace_id_skip_serializing |
trace_id 脱敏验证 |
e2e_complete_four_phase_orchestration |
完整四阶段编排模拟 |
设计约束
#![forbid(unsafe_code)]- 所有
async fn必须Send + 'static - SddFacade trait 解耦开源版/企业版
- 敏感字段
#[serde(skip_serializing)] - CSP 策略:
default-src 'self'; connect-src 'self' ipc: http://ipc.localhost