## 背景 参考 n8n、Activepieces、Zapier、Airtable 等平台,对 ObjectStack 自动化引擎核心架构进行深度完善。目标:提升系统健壮性、兼容主流自动化场景、强化开发体验。 --- ## 🛠️ 待开发细节任务清单 ### 1. Fault Edge 错误路径支持(节点级错误分支) - [ ] 扩展 DAG 执行核心:节点执行失败时,自动查找并跳转 fault 类型的边,优先走故障分支,不中断全流程。 - [ ] 将失败信息(error/output)写入变量上下文,便于后续节点引用。 - [ ] 无 fault 路径则如旧逻辑中断。 - [ ] 单元测试覆盖:模拟节点失败,检��� fault 路径执行。 ### 2. Node Step-level 执行日志 - [ ] 执行流程时,采集每个节点 id/type/status/timing 记录到 executionLog.steps。 - [ ] 日志包含:开始时间、结束时间、耗时、执行状态(success/failure/skipped)。 - [ ] UI/API优化:execution history 展示完整 step 详情。 - [ ] 测试覆盖:断点失败/并发分支均有 step 记录。 ### 3. Retry/Backoff 递归保护与指数退避 - [ ] refine retryExecution:增加内部重试标志,防止递归调用叠加导致栈溢出。 - [ ] 支持 retryDelayMs、backoffMultiplier、maxRetryDelayMs、jitter 控制重试间隔。 - [ ] 测试覆盖:节点失败后正确指数退避重试,并最终输出 failure 日志。 ### 4. 并行分支执行 - [ ] DAG 执行时支持无条件边并发(Promise.all),条件边按顺序互斥。 - [ ] 检查多条分支同时出边场景,确保并发执行不影响变量隔离。 - [ ] 测试覆盖:并行任务执行耗时显著下降。 ### 5. 节点超时机制 - [ ] NodeExecutor 支持 timeoutMs 属性。 - [ ] 执行节点时包裹 Promise.race 超时控制,超时自动失败并记录日志。 - [ ] 测试覆盖:模拟长耗时节点,确保自动中断。 ### 6. DAG 环检测与流程校验 - [ ] registerFlow 时自动检测环路,拒绝非 DAG 流程注册。 - [ ] 用户提示友好:具体环路详情。 - [ ] 测试覆盖:注册任意递归流程时抛出异常。 ### 7. 安全表达式求值(替换 new Function) - [ ] evaluateCondition/decision 节点改用 jexl 等沙箱表达式引擎。 - [ ] 支持变量对象嵌套结构、数值/文本安全解析。 - [ ] 测试覆盖:用恶意代码字符串验证不被执行。 ### 8. 节点输入输出 Schema 校验(结构声明) - [ ] NodeExecutor 扩展 inputSchema/outputSchema 属性,用于 Studio 表单生成与运行时校验。 - [ ] 运行前自动校验节点 config 参数是否结构正确。 - [ ] 测试覆盖:节点参数类型错误能即时报错。 ### 9. Webhook/RecordChange Trigger 插件支持 - [ ] 新增标准 webhook trigger 插件,为 type=api flow 自动分配唯一 webhook URL。 - [ ] 基于 ObjectQL 的 record_change trigger 实现。 - [ ] 全流程自测:模拟外部调用触发引擎。 ### 10. 流程版本管理与回滚 - [ ] registerFlow 保留历史版本。 - [ ] executionLogEntry 记录 flowVersion。 - [ ] 支持 API/UI 回滚到历史版本。 - [ ] 测试覆盖:注册多版本流程,执行与回滚。 ### 11. 执行状态拓展 - [ ] executionLogEntry.status 增加 'running'、'paused'、'waiting'、'cancelled' 等状态。 - [ ] wait/script/approval 节点支持流程暂停与状态变更。 --- ## 验收标准 - 所有上述细节点均有单元测试覆盖。 - 与现有架构兼容,不破坏现有所有通过的 test。 - Roadmap 及时更新。 **注:每项任务建议拆分为单独 PR、issue,支持独立测试与上线。**
Activity