DoraMate 项目(13) - 验收标准详解: 当前版本应该如何定义“可交付”

发布时间:2026/7/14 19:03:47

DoraMate 项目(13) - 验收标准详解: 当前版本应该如何定义“可交付” DoraMate 项目(13) - 验收标准详解: 当前版本应该如何定义“可交付”源起之道支持Supported by Upstream Labs本文基于DoraMate GitHub 存储库 中doramate-frontend与doramate-localagent的当前实现系统梳理 DoraMate 现阶段的验收标准包括功能闭环、后端边界、可测试项、非功能约束以及端到端验收方法。文章目录DoraMate 项目(13) - 验收标准详解: 当前版本应该如何定义“可交付”前言一、当前 DoraMate 的验收边界是什么二、验收前提什么环境下这套标准才成立2.1 基础环境要求2.2 当前系统依赖关系三、前端侧应该验收什么3.1 可视化编辑器闭环3.2 节点属性编辑能力3.3 模板体系3.4 文件打开、保存与 YAML 处理3.5 快捷键与编辑效率功能3.6 数据流校验3.7 运行控制、状态面板与日志面板四、LocalAgent 侧应该验收什么4.1 服务边界与安全边界4.2 健康检查与 DORA runtime 准备4.3 运行、重试与停止行为4.4 文件与模板配置接口4.5 状态流与日志流五、当前哪些内容不应该纳入验收范围5.1 大量内置官方节点5.2 深度语义校验5.3 自动备份、多版本恢复5.4 跨平台安装包与图形化安装向导5.5 未重新实测的性能与稳定性数字5.6 云端协作、多用户、在线分享六、当前可以直接核验的非功能约束七、当前测试结果说明了什么7.1 实测命令7.2 当前结果7.3 当前测试覆盖重点八、真正做验收时应该怎么执行8.1 基础编辑验收8.2 文件能力验收8.3 模板与快捷键验收8.4 运行能力验收8.5 错误分支验收九、总结十、下一步前言“验收标准”这四个字表面上是在回答一个管理问题实际上回答的是一个工程问题当前版本到底做到哪一步才算真正可交付。对于 DoraMate 这样一个本地可视化 DORA 数据流编辑器来说验收不能只看界面是不是能打开也不能只看某几个按钮是不是能点。它至少要回答下面这些问题画布编辑功能是不是形成闭环了YAML 的打开、保存、导出是不是稳定了本地代理是不是能真正承担文件系统与进程桥接职责数据流运行起来以后用户能不能看到状态和日志出错时系统给出的反馈是不是清晰、可定位、可继续处理换句话说DoraMate 当前版本的验收不是看“有没有功能点”而是看它有没有形成一条真正可用的工作链路编辑 - 保存 - 运行 - 观察 - 停止本文的目标就是把这条链路拆开讲清楚并把当前版本应该通过的标准、应该排除的范围、以及实际可执行的验收步骤全部落到纸面上。一、当前 DoraMate 的验收边界是什么先把边界说清楚。当前 DoraMate 不是一个云端协作平台也不是一个预置大量官方节点的工作流商城更不是一个已经完成跨平台安装分发体系的桌面产品。它当前的核心定位非常明确doramate-frontend是基于 Leptos WebAssembly 的可视化数据流编辑器doramate-localagent是基于 Axum 的本地代理服务真正的数据流执行仍然交由本机 DORA runtime 完成所以从验收角度看当前版本最重要的是验证这三层之间是否已经顺畅协作浏览器能不能完成可视化编辑LocalAgent 能不能承接本地文件系统和进程能力DORA runtime 能不能在需要时被正确调用并把状态和日志反馈回前端这就是当前 DoraMate 的真实验收边界。二、验收前提什么环境下这套标准才成立在开始讨论功能之前先看验收环境。2.1 基础环境要求当前版本的完整验收至少需要满足以下条件已安装 Rust stable前端可以通过trunk serve启动LocalAgent 可以通过cargo run启动如果要验收“运行数据流”本机必须可执行dora对应命令如下# 终端 1cddoramate-localagentcargorun# 终端 2cddoramate-frontend trunk serve--open2.2 当前系统依赖关系当前 DoraMate 的前后端关系不是“可选协作”而是明确分层LocalAgent 默认监听127.0.0.1:52100前端的运行、停止、目录选择、原生文件打开、原生文件保存、节点模板配置读取、状态流和日志流都依赖 LocalAgent如果 LocalAgent 不可用前端仍可以做基础编辑但在打开/保存场景下会部分退回到浏览器能力这意味着 DoraMate 当前是一套典型的本地协作架构浏览器负责编排本地代理负责系统能力DORA runtime 负责真正执行。三、前端侧应该验收什么前端验收的重点不是“页面看起来像不像工业软件”而是操作链路是否已经闭环。3.1 可视化编辑器闭环当前前端已经具备一套比较完整的基础编辑动作从节点面板拖拽模板到画布移动节点框选、多选、全选创建连接和删除连接删除选中节点并自动清理相关连线复制、剪切、粘贴、复制副本撤销、重做自动布局其中“自动布局”不是简单占位而是已经有比较明确的实现逻辑包括弱连通分量分组拓扑分层同层 barycenter 排序优化断开子图分组排布因此这一部分的验收重点不是“有没有按钮”而是节点能否稳定拖入节点和连线关系能否正确维护删除后画布状态是否一致撤销/重做能否恢复编辑动作自动布局后节点是否按拓扑方向重新整理如果这些动作都能稳定完成说明 DoraMate 当前的画布编辑器已经具备了基础可用性。3.2 节点属性编辑能力当前属性面板已经不只是改一个 label它覆盖的内容包括节点 ID节点类型节点标签节点路径环境变量输入端口输出端口YAML 配置config同时它已经内建了一些实际可用的编辑规则节点标签不能为空节点路径不能为空节点 ID 不能为保留值dora节点 ID 只能包含字母、数字、_、-节点 ID 必须全局唯一运行状态下禁止重命名节点 ID更关键的是当前属性编辑不是纯粹的局部写值。当输出端口变化时前端会同步更新连接上的端口引用下游节点对应的输入引用这说明它已经开始处理“编辑器里真正麻烦的那类联动修改”而不是只做静态表单。3.3 模板体系当前版本的模板能力应该用“可扩展”而不是“数量多”来理解。代码中当前内置的锁定模板只有 4 个python_customrust_customc_customcsharp_custom除此之外当前模板系统还支持用户在前端模板管理器中新增、编辑、删除模板用户模板持久化到浏览器localStorage当前 YAML 中出现过的节点类型自动抽取为模板来源LocalAgent 读写node_templates.yml前端合并多类模板来源形成最终模板列表因此这一部分的验收重点是节点面板中能否正常显示内置模板用户模板能否新增并在刷新后保留YAML 抽取模板能否合并重复类型前后端模板配置能否同步对 DoraMate 当前阶段来说这已经是一套足够实用的“模板驱动编辑器”能力。3.4 文件打开、保存与 YAML 处理当前 DoraMate 在文件处理这块已经形成了完整闭环。打开链路是优先通过 LocalAgent 原生文件对话框打开读取 YAML 内容前端解析为数据流图保存链路是已有路径时优先通过 LocalAgent 按路径写回没有路径时通过 LocalAgent 调起原生保存对话框如果 LocalAgent 不可用前端在“另存为”场景下回退到浏览器下载当前支持解析的格式包括DORA YAMLDoraMate 内部 YAML而布局信息当前采用 sidecar 文件保存xxx.yml.layout.json这意味着主 YAML 负责描述数据流本身布局信息单独存储。这样做的好处很明显YAML 更接近运行内容布局信息不会污染主文件再次打开时仍能恢复节点坐标、标签和缩放对应的验收重点包括现有 YAML 能否正确打开保存时是否能正确写回首次保存是否能成功另存为sidecar 是否被正确生成并在重新打开时生效最近文件列表是否符合预期3.5 快捷键与编辑效率功能当前 DoraMate 的快捷键系统已经具备可视化配置能力这在一个本地工作流工具里非常重要。当前系统支持修改快捷键检测冲突恢复默认本地持久化修改后立即生效覆盖的动作包括新建打开保存导出 YAML运行/停止切换日志撤销重做复制剪切复制副本粘贴删除选中全选自动布局清空画布因此这一块的验收重点应该是快捷键设置窗口能否正常打开修改后的快捷键是否无需刷新立即生效冲突检测是否有效恢复默认是否正确恢复核心绑定3.6 数据流校验当前前端提供的是轻量结构校验而不是深度语义分析。已经落地的校验项包括节点数量不能为 0节点 ID 不能重复连接源节点必须存在允许保留源dora连接目标节点必须存在这意味着当前“校验”功能的价值主要在于快速发现基础结构错误给出用户可读的即时反馈验收时应重点关注空画布是否能提示节点数量为 0重复 ID 是否能准确提示指向不存在节点的连接是否能准确提示校验结果是否能在 UI 上清晰展示3.7 运行控制、状态面板与日志面板前端当前已经不仅仅是“有个运行按钮”而是具备一套完整的运行观察界面。当前前端可以调用POST /api/run启动数据流调用POST /api/stop停止数据流配置工作目录展示运行时间展示运行节点数 / 总节点数展示错误节点数展示进程 ID 前缀展示当前工作目录日志面板支持WebSocket 实时日志搜索按节点过滤按级别过滤自动滚动清空导出日志所以这一块的验收标准非常明确运行成功后能拿到process_id状态面板能进入运行中状态运行时间开始计时日志面板能接收到实时日志停止后界面恢复到已停止状态四、LocalAgent 侧应该验收什么前端负责交互LocalAgent 负责把浏览器无法直接完成的事情承接下来。4.1 服务边界与安全边界当前 LocalAgent 基于 Axum默认监听127.0.0.1:52100它当前的定位非常明确是本机代理不是公网服务因此这一部分的验收要求应该包括启动后GET /api/health可访问服务不应改成公网监听文档和对外说明中必须明确“不可直接暴露到公网”4.2 健康检查与 DORA runtime 准备当前GET /api/health返回的信息已经不只是“服务活着”而是包括statusversiondora_installeddora_coordinator_runningdora_daemon_running这说明 LocalAgent 已经承担了一部分运行环境诊断职责。对应的验收重点是健康检查返回结构完整未安装dora时运行接口返回DORA_NOT_INSTALLEDruntime 初始化失败时运行接口返回DORA_RUNTIME_INIT_FAILED4.3 运行、重试与停止行为当前POST /api/run的核心逻辑已经比较工程化它不是简单地执行一条命令。它当前会做这些事情把前端 YAML 写入工作目录临时文件如果包含__doramate__元数据则先提取纯 DORA YAML检查dora是否已安装尝试确保 coordinator 与 daemon 已就绪调用dora start设置 20 秒超时最多尝试 2 次两次间隔 800ms对可恢复错误最多重试一次在失败信息中附带输出摘要和端口快照POST /api/stop的重点则在于支持停止指定process_id对未知process_id保持幂等成功不因为流程已经消失就把服务搞崩因此这部分的验收重点是写入 YAML 失败时能返回YAML_WRITE_FAILEDdora start超时、等待失败、启动失败、进程创建失败时能返回明确错误码停止未知进程不会导致异常4.4 文件与模板配置接口当前 LocalAgent 已提供的本地桥接接口包括POST /api/select-directoryPOST /api/open-dataflow-filePOST /api/read-dataflow-filePOST /api/save-dataflow-filePOST /api/write-dataflow-fileGET /api/node-templates-configPOST /api/node-templates-config这些接口当前已经覆盖了调起系统目录选择器调起系统文件打开与保存对话框按绝对路径读取文件按绝对路径写入文件自动创建父目录读取、标准化并写回模板配置所以验收重点应包括取消目录或文件选择时能返回cancelledtrue与明确错误码文件路径为空时读写接口能返回FILE_PATH_EMPTY文件读取失败时返回FILE_READ_FAILED写文件失败时返回FILE_WRITE_FAILED模板配置读写失败时返回对应错误码4.5 状态流与日志流当前 LocalAgent 提供两类关键实时通道GET /api/status-stream/:process_idGET /api/logs/:process_id当前行为很清楚状态流每 800ms 推送一次日志 backlog 上限为 1000 条日志连接建立后先回放 backlog再推送实时内容状态流在stopped或not_found后结束这意味着 LocalAgent 当前已经不只是命令执行器而是本地运行观测层。对应验收重点包括已启动流程能返回running或stopped未知流程返回not_found状态流在流程终止后主动结束日志连接建立后能先看到历史上下文再看到实时日志五、当前哪些内容不应该纳入验收范围一份成熟的验收标准不只是列出“要验什么”还要明确“哪些内容当前不算验收条件”。当前 DoraMate 不应纳入验收范围的内容包括5.1 大量内置官方节点当前代码并没有提供“20 常用 DORA 节点库”的现实实现因此不能把它写成当前版本必须通过的条件。5.2 深度语义校验包括但不限于循环依赖检测节点路径可执行性验证环境变量深度验证复杂图结构语义校验当前版本的校验重点仍然是结构完整性而不是高级语义分析。5.3 自动备份、多版本恢复当前代码没有完整落地这套能力因此不应作为当前通过条件。5.4 跨平台安装包与图形化安装向导当前仓库的核心交付物是源码项目而不是完整的安装发布体系。5.5 未重新实测的性能与稳定性数字例如50 节点 60fps首屏 1.8 秒连续运行 30 天工业级 MTBF 指标这些内容如果没有重新实测和固化就不能作为当前版本的验收基线。5.6 云端协作、多用户、在线分享这些都不属于 DoraMate 当前版本的核心交付边界。六、当前可以直接核验的非功能约束虽然当前不再使用一堆宏大指标做宣传但仍然保留了一组可以直接从代码确认的非功能约束。项目当前值 / 约束说明LocalAgent 监听地址127.0.0.1:52100本机回环地址DORA 启动超时20sDORA_START_TIMEOUT_SECSDORA 启动最大尝试次数2DORA_START_MAX_ATTEMPTSDORA 启动重试间隔800msDORA_START_RETRY_DELAY_MS状态流推送间隔800msWebSocket ticker日志 backlog 上限1000LOG_BACKLOG_LIMIT撤销/重做历史上限100HISTORY_LIMIT最近文件上限10MAX_RECENT_FILES布局 sidecar 后缀.layout.json与 YAML 同名追加这些约束的价值在于它们都来自当前真实代码而不是单独想象出来的目标数字。七、当前测试结果说明了什么截至2026-03-17当前项目已经有一组可以直接复现的测试结果。7.1 实测命令cddoramate-frontendcargotestcd../doramate-localagentcargotest7.2 当前结果doramate-frontend: 48 个测试通过0 失败doramate-localagent: 28 个测试通过0 失败7.3 当前测试覆盖重点前端侧主要覆盖自动布局复制粘贴与副本 ID 重映射最近文件规则工作目录错误提示模板合并与标准化快捷键配置YAML 转换layout sidecarLocalAgent 侧主要覆盖节点模板配置标准化run_dataflow错误分支stop_dataflow幂等与部分失败文件读写错误码UUID 解析dora start重试判定这说明当前 DoraMate 虽然仍处在本地工具持续打磨阶段但关键基础功能已经具备了最基本的自动化保护。八、真正做验收时应该怎么执行当前版本最适合的做法不是列一堆空泛 KPI而是走一套端到端清单。8.1 基础编辑验收启动前端与 LocalAgent从节点面板拖入至少 3 个节点创建至少 2 条连接完成节点属性、端口和配置编辑完成复制、粘贴、复制副本、删除、撤销、重做完成自动布局8.2 文件能力验收打开已有 YAML保存到已有路径执行首次另存为生成并读取.layout.jsonsidecar检查最近文件列表行为8.3 模板与快捷键验收新增用户模板刷新页面后模板仍存在打开快捷键设置窗口修改快捷键并立即生效验证冲突检测8.4 运行能力验收设置工作目录基于真实 YAML 或节点工程执行一次成功运行检查状态面板检查日志面板完成停止操作8.5 错误分支验收未安装dora时应给出明确错误无效工作目录或 YAML 无法写入时应给出明确错误文件路径无效时应返回明确错误码这份清单最大的价值就在于每一项都能真正操作、真正观察、真正复现。这才是当前 DoraMate 真正有意义的验收方式。九、总结当前 DoraMate 的验收标准可以概括为一句话以真实代码形成的可用闭环为准而不是以理想形态为准。对当前版本来说真正重要的不是“说自己有多大规模”而是下面这几件事是否已经成立画布编辑是否闭环文件打开保存是否稳定模板体系是否可持续使用快捷键和编辑效率功能是否可用LocalAgent 是否能承担本地桥接职责数据流是否能真正运行、观察、停止错误提示是否清晰如果这些都成立那么 DoraMate 当前版本就已经具备了“本地可视化 DORA 编辑器”的核心交付能力。对于一个仍在持续演进的 Rust 全栈项目来说这样的验收标准有两个明显好处它让功能边界更清晰它让后续迭代更容易对齐真实工程目标也就是说当前版本的验收标准不是为了“看起来厉害”而是为了让 DoraMate 的每一步演进都建立在可信的工程事实之上。十、下一步第十四章: 本地执行架构设计详解 - Rust 全栈实现工业级本地代理服务第十五章: 工业级 UI 组件库设计详解 - Leptos 高性能可复用组件架构源起之道支持Supported by Upstream Labs日期: 2025-03-17系列: DoraMate 项目技术博客系列上一篇: 12-数据模型设计详解 - Rust 全栈类型系统与文件系统架构

相关新闻