修复: Wave5 审批子系统收尾(R7补 types.ts + R9⑪ failed_node + R8 Request 测试)
- R7补: types.ts event.type string→WorkflowEventType 字面量联合(11 变体 snake_case),静态拦截写错 type - R9⑪: workflow.rs WorkflowFailed failed_node String::new()→状态机取首个 Failed/Cancelled 节点 - R8: human_node 加 request_is_emitted_to_bus 测试,验证 R6(Request 真发到 EventBus) cargo/vue-tsc 0 err / df-nodes 15 test pass
This commit is contained in:
@@ -132,11 +132,20 @@ pub async fn run_workflow(
|
||||
state_registry.lock().await.remove(&exec_id);
|
||||
|
||||
// 执行失败时补发 WorkflowFailed(执行器内部只发 NodeFailed)
|
||||
// failed_node 从状态机取首个失败/取消节点(R9⑪: 原 String::new() 空值)
|
||||
if let Some(error) = error {
|
||||
use df_core::types::NodeStatus;
|
||||
let failed_node = executor
|
||||
.state_machine()
|
||||
.snapshot()
|
||||
.into_iter()
|
||||
.find(|(_, s)| matches!(s, NodeStatus::Failed | NodeStatus::Cancelled))
|
||||
.map(|(id, _)| id)
|
||||
.unwrap_or_default();
|
||||
event_bus
|
||||
.send(WorkflowEvent::WorkflowFailed {
|
||||
error,
|
||||
failed_node: String::new(),
|
||||
failed_node,
|
||||
})
|
||||
.await;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user