feat(flow-debugger): FlowStep carries the audit CorrelationId; CLI table adds a correlation column

Claude-Session: https://claude.ai/code/session_01NcMG6xXdsJbmD2wYAgkK29
This commit is contained in:
Joseph Doherty
2026-09-06 10:58:50 -04:00
parent 4769e192e3
commit 7e3e809a70
7 changed files with 35 additions and 4 deletions
@@ -81,6 +81,11 @@ public sealed record FlowLifecycleRow(
/// (<see cref="Lifecycle"/>; outbound-calls plan 2026-09-06 D3). Never serialized to the wire;
/// the wire carries the audit events themselves (design §5.4).
/// </summary>
/// <remarks>
/// <c>CorrelationId</c> is the audit row's own: the <c>TrackedOperationId</c> of a cached call or the
/// <c>NotificationId</c> of a notification — the key the Site Calls / Notification report pages accept as
/// <c>?correlationId=</c> (follow-ups plan 2026-09-06 D1/D2). Null for sync one-shots and trace rows.
/// </remarks>
public sealed record FlowStep(
Guid EventId,
Guid? ExecutionId,
@@ -100,4 +105,5 @@ public sealed record FlowStep(
string? Instance,
string? Target,
ScriptTraceExtra? Extra,
IReadOnlyList<FlowLifecycleRow>? Lifecycle = null);
IReadOnlyList<FlowLifecycleRow>? Lifecycle = null,
Guid? CorrelationId = null);
@@ -42,7 +42,8 @@ public static class FlowStepProjector
Node: evt.SourceNode ?? extra?.Node,
Instance: d.SourceInstanceId,
Target: evt.Target,
Extra: extra);
Extra: extra,
CorrelationId: evt.CorrelationId);
}
/// <summary>Projects one outbound audit row onto its lifecycle entry (<see cref="FlowStep.Lifecycle"/>).</summary>