Files
ScadaBridge/docs/plans/2026-09-06-flow-debugger-outbound-calls.md.tasks.json
T
Joseph Doherty 3a933e3f68 docs(plans): Flow Debugger outbound calls — plan + mockup for API/DB/notification nodes on an External lane
Gap verified 2026-09-06: the projector and predictor already know the three outbound
channels, but the live FlowTraceCollector is fed only by EmitTrace (writes/waits) and
the replay query filters to ScriptTrace + the inbound row, so a run leaves every
predicted outbound node as a ghost. Central method-script Database.* calls are not
audited at all.

Plan (11 tasks): three step kinds ApiCall/DbCall/Notify on a fourth External lane;
one node per operation with the cached/notify lifecycle folded in (Pending/Parked
outcomes, Lifecycle tab); sync calls in the chain, async ones on dashed branch edges;
site rows ride the existing collector, replay filter widens, central DB helper gets
DbOutbound rows; the page refreshes pending outcomes via the existing Replay command;
spawn edges styled and Response linked from the route call (the "two parallel paths"
question). Mockup: docs/plans/…-mockup.html, published as a Claude artifact.

Claude-Session: https://claude.ai/code/session_01GSLkkHKz9JrAtmJjmQK3cP
2026-09-06 01:33:41 -04:00

101 lines
2.2 KiB
JSON

{
"planPath": "docs/plans/2026-09-06-flow-debugger-outbound-calls.md",
"tasks": [
{
"id": 0,
"subject": "Task 0: Commons \u2014 kinds, lane, outcomes, lifecycle row",
"status": "pending"
},
{
"id": 1,
"subject": "Task 1: Commons \u2014 FlowStepProjector maps outbound rows",
"status": "pending",
"blockedBy": [
0
]
},
{
"id": 2,
"subject": "Task 2: Commons \u2014 FlowGraphBuilder groups operations, async branches, spawn edges, Response origin",
"status": "pending",
"blockedBy": [
0,
1
]
},
{
"id": 3,
"subject": "Task 3: Site runtime \u2014 outbound rows flow through the trace collector",
"status": "pending",
"blockedBy": [
0
]
},
{
"id": 4,
"subject": "Task 4: Central \u2014 audit InboundDatabaseHelper (DbOutbound) and feed the trace sink",
"status": "pending",
"blockedBy": [
0
]
},
{
"id": 5,
"subject": "Task 5: Central replay filter + site pull verification",
"status": "pending",
"blockedBy": [
0
]
},
{
"id": 6,
"subject": "Task 6: FlowShapePredictor \u2014 three kinds on the External lane, async edges",
"status": "pending",
"blockedBy": [
0
]
},
{
"id": 7,
"subject": "Task 7: FlowGraphView \u2014 External lane, status pills, async/spawn edge styles, pending state",
"status": "pending",
"blockedBy": [
0,
1,
2
]
},
{
"id": 8,
"subject": "Task 8: FlowStepDetail \u2014 Lifecycle tab and outbound fields",
"status": "pending",
"blockedBy": [
0,
2
]
},
{
"id": 9,
"subject": "Task 9: Flow Debugger page \u2014 pending refresh after a Live run",
"status": "pending",
"blockedBy": [
7,
8
]
},
{
"id": 10,
"subject": "Task 10: CLI projection, docs, rig demo + verification",
"status": "pending",
"blockedBy": [
3,
4,
5,
6,
9
]
}
],
"lastUpdated": "2026-09-06T05:32:15.141670+00:00"
}