feat(management): FlowDebug run-method / run-value-change / replay commands (Deployer, active-node gated, inline trace)
Flow Debugger (design 2026-09-05 §7.1): FlowDebugRunMethodCommand / FlowDebugRunValueChangeCommand / FlowDebugReplayCommand on the per-node ManagementActor (Deployer role; the two run commands are long-running), all delegating to FlowDebugRunner. RunMethod refuses on a standby with STANDBY_NODE (ManagementCommandException now carries an optional Code that replaces COMMAND_FAILED), validates parameters through the real ParameterValidator/SchemaRefResolver (made public), synthesizes the inbound row (actor = operator, Extra.source = flow-debugger) and runs the method through InboundScriptExecutor with a trace-sink RouteHelper so the reply carries the RouteCall row + the site's inline events. RunValueChange does a traced routed write via IInstanceRouter, then polls IPullTraceEventsClient (interface moved to Commons so ManagementService can consume it) until a ScriptRun parented to the root settles, else NO_TRIGGER_WITHIN_WINDOW. Replay reads IAuditLogRepository.GetTraceEventsAsync. Claude-Session: https://claude.ai/code/session_01GSLkkHKz9JrAtmJjmQK3cP
This commit is contained in:
@@ -4,12 +4,12 @@
|
||||
{
|
||||
"id": 0,
|
||||
"subject": "Task 0: Amend the design doc with the four planning corrections",
|
||||
"status": "pending"
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"subject": "Task 1: Audit enums \u2014 ScriptTrace channel and four kinds",
|
||||
"status": "pending",
|
||||
"subject": "Task 1: Audit enums — ScriptTrace channel and four kinds",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
0
|
||||
]
|
||||
@@ -17,15 +17,15 @@
|
||||
{
|
||||
"id": 2,
|
||||
"subject": "Task 2: Additive Trace / trace-payload fields on the message records",
|
||||
"status": "pending",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"subject": "Task 3: ApiMethod.TraceAllCalls \u2014 entity, EF migration, management command, CLI flag",
|
||||
"status": "pending",
|
||||
"subject": "Task 3: ApiMethod.TraceAllCalls — entity, EF migration, management command, CLI flag",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
0
|
||||
]
|
||||
@@ -33,7 +33,7 @@
|
||||
{
|
||||
"id": 4,
|
||||
"subject": "Task 4: FlowStep projection + FlowGraph model + FlowGraphBuilder (pure)",
|
||||
"status": "pending",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
1,
|
||||
2
|
||||
@@ -42,15 +42,15 @@
|
||||
{
|
||||
"id": 5,
|
||||
"subject": "Task 5: FlowTraceCollector (site, per run)",
|
||||
"status": "pending",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"subject": "Task 6: ScriptRuntimeContext \u2014 traced flag, trace emission for writes and waits, flag inheritance",
|
||||
"status": "pending",
|
||||
"subject": "Task 6: ScriptRuntimeContext — traced flag, trace emission for writes and waits, flag inheritance",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
4,
|
||||
5
|
||||
@@ -58,24 +58,24 @@
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"subject": "Task 7: ScriptRunLauncher + ScriptActor \u2014 ScriptRun rows, ExecutionId + events, value-change inheritance",
|
||||
"status": "pending",
|
||||
"subject": "Task 7: ScriptRunLauncher + ScriptActor — ScriptRun rows, ExecutionId + events, value-change inheritance",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
6
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"subject": "Task 8: InstanceActor \u2014 trace arm for data-sourced writes; Trace on published changes",
|
||||
"status": "pending",
|
||||
"subject": "Task 8: InstanceActor — trace arm for data-sourced writes; Trace on published changes",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"subject": "Task 9: DeploymentManagerActor routing \u2014 pass Trace, return child id + events",
|
||||
"status": "pending",
|
||||
"subject": "Task 9: DeploymentManagerActor routing — pass Trace, return child id + events",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
7,
|
||||
8
|
||||
@@ -83,8 +83,8 @@
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"subject": "Task 10: Wire \u2014 site_command.proto trace fields, mapper, golden samples",
|
||||
"status": "pending",
|
||||
"subject": "Task 10: Wire — site_command.proto trace fields, mapper, golden samples",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
2,
|
||||
11
|
||||
@@ -92,16 +92,16 @@
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"subject": "Task 11: Wire \u2014 sitestream.proto source_execution_id/trace + PullTraceEvents RPC; site SQLite read by execution ids",
|
||||
"status": "pending",
|
||||
"subject": "Task 11: Wire — sitestream.proto source_execution_id/trace + PullTraceEvents RPC; site SQLite read by execution ids",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"subject": "Task 12: RouteHelper \u2014 always-on RouteCall audit row, WithTrace, inline trace sink",
|
||||
"status": "pending",
|
||||
"subject": "Task 12: RouteHelper — always-on RouteCall audit row, WithTrace, inline trace sink",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
1,
|
||||
2,
|
||||
@@ -111,7 +111,7 @@
|
||||
{
|
||||
"id": 13,
|
||||
"subject": "Task 13: InboundScriptExecutor.ExecuteAsync(trace) + endpoint honours TraceAllCalls",
|
||||
"status": "pending",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
12
|
||||
]
|
||||
@@ -119,14 +119,14 @@
|
||||
{
|
||||
"id": 14,
|
||||
"subject": "Task 14: IAuditLogRepository.GetTraceEventsAsync(rootExecutionId)",
|
||||
"status": "pending",
|
||||
"status": "completed",
|
||||
"blockedBy": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"subject": "Task 15: Management commands \u2014 FlowDebugRunMethod / RunValueChange / Replay",
|
||||
"subject": "Task 15: Management commands — FlowDebugRunMethod / RunValueChange / Replay",
|
||||
"status": "pending",
|
||||
"blockedBy": [
|
||||
9,
|
||||
@@ -155,7 +155,7 @@
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"subject": "Task 18: Central UI service \u2014 IFlowDebugService / FlowDebugService",
|
||||
"subject": "Task 18: Central UI service — IFlowDebugService / FlowDebugService",
|
||||
"status": "pending",
|
||||
"blockedBy": [
|
||||
15,
|
||||
@@ -164,7 +164,7 @@
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"subject": "Task 19: FlowGraphView \u2014 custom SVG swimlane renderer",
|
||||
"subject": "Task 19: FlowGraphView — custom SVG swimlane renderer",
|
||||
"status": "pending",
|
||||
"blockedBy": [
|
||||
4
|
||||
@@ -172,7 +172,7 @@
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"subject": "Task 20: Flow Debugger page \u2014 toolbar, inputs, predicted graph, run, detail panel",
|
||||
"subject": "Task 20: Flow Debugger page — toolbar, inputs, predicted graph, run, detail panel",
|
||||
"status": "pending",
|
||||
"blockedBy": [
|
||||
18,
|
||||
@@ -190,7 +190,7 @@
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"subject": "Task 22: Rig \u2014 retention override, redeploy, verification step H",
|
||||
"subject": "Task 22: Rig — retention override, redeploy, verification step H",
|
||||
"status": "pending",
|
||||
"blockedBy": [
|
||||
16,
|
||||
@@ -207,5 +207,5 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"lastUpdated": "2026-09-06T03:22:55.422160+00:00"
|
||||
"lastUpdated": "2026-09-06T03:58:13.917546+00:00"
|
||||
}
|
||||
Reference in New Issue
Block a user