feat(commons): Flow Debugger outbound kinds, External lane, Pending/Parked outcomes, FlowLifecycleRow

FlowLane.External (3); FlowStepKind.External replaced by ApiCall/DbCall/Notify;
FlowStepOutcome gains Pending/Parked; new FlowLifecycleRow + additive
FlowStep.Lifecycle; FlowEdge gains Async/Spawn (default false). Predictor and
graph-view references renamed compile-only (full work in Tasks 6/7).

Claude-Session: https://claude.ai/code/session_01NcMG6xXdsJbmD2wYAgkK29
This commit is contained in:
Joseph Doherty
2026-09-06 01:37:29 -04:00
parent 3a933e3f68
commit cc1bbf3975
8 changed files with 99 additions and 15 deletions
@@ -199,8 +199,8 @@ public class FlowShapePredictorTests
(FlowStepKind.ScriptRun, "Handshake"),
(FlowStepKind.AttributeWrite, "Cmd"),
(FlowStepKind.AttributeWait, "Ack"),
(FlowStepKind.External, "ExternalSystem.Call(Mes)"),
(FlowStepKind.External, "Notify.Send"),
(FlowStepKind.ApiCall, "ExternalSystem.Call(Mes)"),
(FlowStepKind.Notify, "Notify.Send"),
], flow.Nodes.Select(n => (n.Kind, n.Title)).ToList());
Assert.DoesNotContain(flow.Nodes, n => n.Lane == FlowLane.Central);
Assert.All(flow.Edges, e => Assert.False(e.CrossesBoundary));