fix(wfe-core): propagate step_name into execution pointers
Sets step_name on execution pointers when advancing to next steps, compensation steps, and parallel branch children so that runtime consumers can identify steps by name without lookup.
This commit is contained in:
@@ -67,6 +67,9 @@ pub fn handle_error(
|
||||
&& let Some(comp_step_id) = step.compensation_step_id
|
||||
{
|
||||
let mut comp_pointer = ExecutionPointer::new(comp_step_id);
|
||||
comp_pointer.step_name = definition.steps.iter()
|
||||
.find(|s| s.id == comp_step_id)
|
||||
.and_then(|s| s.name.clone());
|
||||
comp_pointer.predecessor_id = Some(pointer.id.clone());
|
||||
comp_pointer.scope = pointer.scope.clone();
|
||||
new_pointers.push(comp_pointer);
|
||||
|
||||
@@ -36,6 +36,9 @@ pub fn process_result(
|
||||
let next_step_id = find_next_step(step, &result.outcome_value);
|
||||
if let Some(next_id) = next_step_id {
|
||||
let mut next_pointer = ExecutionPointer::new(next_id);
|
||||
next_pointer.step_name = definition.steps.iter()
|
||||
.find(|s| s.id == next_id)
|
||||
.and_then(|s| s.name.clone());
|
||||
next_pointer.predecessor_id = Some(pointer.id.clone());
|
||||
next_pointer.scope = pointer.scope.clone();
|
||||
new_pointers.push(next_pointer);
|
||||
@@ -59,6 +62,9 @@ pub fn process_result(
|
||||
for value in branch_values {
|
||||
for &child_step_id in &child_step_ids {
|
||||
let mut child_pointer = ExecutionPointer::new(child_step_id);
|
||||
child_pointer.step_name = definition.steps.iter()
|
||||
.find(|s| s.id == child_step_id)
|
||||
.and_then(|s| s.name.clone());
|
||||
child_pointer.context_item = Some(value.clone());
|
||||
child_pointer.scope = child_scope.clone();
|
||||
child_pointer.predecessor_id = Some(pointer.id.clone());
|
||||
|
||||
@@ -181,6 +181,9 @@ impl WorkflowExecutor {
|
||||
if let Some(next_id) = next_step_id {
|
||||
let mut next_pointer =
|
||||
crate::models::ExecutionPointer::new(next_id);
|
||||
next_pointer.step_name = definition.steps.iter()
|
||||
.find(|s| s.id == next_id)
|
||||
.and_then(|s| s.name.clone());
|
||||
next_pointer.predecessor_id =
|
||||
Some(workflow.execution_pointers[idx].id.clone());
|
||||
next_pointer.scope =
|
||||
|
||||
Reference in New Issue
Block a user