From 0bacc3630e04919ce57bae278e96894eb3eafc44 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Wed, 9 Sep 2026 13:03:37 -0400 Subject: [PATCH] =?UTF-8?q?chore(plans):=20flow-debugger=20step=20logs=20?= =?UTF-8?q?=E2=80=94=20all=2015=20tasks=20complete,=20gate=20evidence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-09-09-flow-debugger-step-logs.md | 2 ++ ...9-09-flow-debugger-step-logs.md.tasks.json | 32 +++++++++---------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/plans/2026-09-09-flow-debugger-step-logs.md b/docs/plans/2026-09-09-flow-debugger-step-logs.md index 1aa9092a..1bb1b29a 100644 --- a/docs/plans/2026-09-09-flow-debugger-step-logs.md +++ b/docs/plans/2026-09-09-flow-debugger-step-logs.md @@ -2,6 +2,8 @@ > **For Claude:** REQUIRED SUB-SKILL: Use superpowers-extended-cc:executing-plans to implement this plan task-by-task. +**Status:** all 15 tasks complete 2026-09-09 (branch `feat/flow-debugger-step-logs`); every task spec- and code-reviewed; 7 test projects green (4 499 tests); rig rebuilt via `docker/deploy.sh`, `verify-delmia-notifier.sh` H/H2/I/**J** all YES (J root `5793ddc2-5273-4e62-86c2-ccfc8de0e080`); browser-verified. Deviations from the plan text: `FlowTraceCollector.Add(evt, lowPriority:)` instead of `AddLowPriority` (Commons 3-public-method constraint); inline shared scripts share the caller's `ScriptLogger` (design §5, not a per-child logger); `LogsTruncated` clears once a refresh merges in more log rows; the inbound editor host `InboundScriptHost` also mirrors `Log`. + **Goal:** A traced Flow Debugger run shows, on the node that produced them, the exception a failing step threw (type, message, stack) and every log line the script or the runtime wrote during that step — in Live and in Replay. **Architecture:** One new audit kind, `ScriptTrace.ScriptLog`, one row per line, riding the existing collector (Live) and audit store (Replay); `FlowGraphBuilder` folds the rows into their owning step (`stepEventId`, else the execution's anchor step) and never draws them as nodes. Scripts get a `Log` global on all four compile surfaces; the site context wraps its own logger while traced so runtime warnings inside a helper step land on that step. Exception detail is the `errorDetail` field that already exists on `AuditDetails` — populated on the site `ScriptRun` row and the central inbound row, projected onto `FlowStep.ErrorDetail`. diff --git a/docs/plans/2026-09-09-flow-debugger-step-logs.md.tasks.json b/docs/plans/2026-09-09-flow-debugger-step-logs.md.tasks.json index 5bd4c333..c0840497 100644 --- a/docs/plans/2026-09-09-flow-debugger-step-logs.md.tasks.json +++ b/docs/plans/2026-09-09-flow-debugger-step-logs.md.tasks.json @@ -4,17 +4,17 @@ { "id": 1, "subject": "Task 1: Commons \u2014 ScriptLog kind, trace extra fields, FlowStep.ErrorDetail/Logs", - "status": "pending" + "status": "completed" }, { "id": 2, "subject": "Task 2: Commons \u2014 FlowTraceCollector.AddLowPriority + LogsTruncated", - "status": "pending" + "status": "completed" }, { "id": 3, "subject": "Task 3: Commons \u2014 FlowGraphBuilder attaches log lines to steps", - "status": "pending", + "status": "completed", "blockedBy": [ 1 ] @@ -22,7 +22,7 @@ { "id": 4, "subject": "Task 4: SiteRuntime \u2014 ScriptLogger, TraceStepScope, TraceCapturingLogger", - "status": "pending", + "status": "completed", "blockedBy": [ 1 ] @@ -30,7 +30,7 @@ { "id": 5, "subject": "Task 5: SiteRuntime \u2014 wire Log into ScriptRuntimeContext + ScriptGlobals", - "status": "pending", + "status": "completed", "blockedBy": [ 1, 2, @@ -40,7 +40,7 @@ { "id": 6, "subject": "Task 6: SiteRuntime \u2014 launcher errorDetail, dropped-lines flush, MaxLogLinesPerRun", - "status": "pending", + "status": "completed", "blockedBy": [ 5 ] @@ -48,7 +48,7 @@ { "id": 7, "subject": "Task 7: Script surfaces \u2014 ScriptCompileSurface.Log, sandbox mirrors, trust pin", - "status": "pending", + "status": "completed", "blockedBy": [ 5 ] @@ -56,7 +56,7 @@ { "id": 8, "subject": "Task 8: InboundAPI \u2014 InboundScriptContext.Log + MaxLogLinesPerRun", - "status": "pending", + "status": "completed", "blockedBy": [ 1 ] @@ -64,7 +64,7 @@ { "id": 9, "subject": "Task 9: InboundAPI \u2014 exception detail on the inbound row", - "status": "pending", + "status": "completed", "blockedBy": [ 8 ] @@ -72,7 +72,7 @@ { "id": 10, "subject": "Task 10: ManagementService \u2014 runner inbound row ErrorDetail; LogsTruncated on results", - "status": "pending", + "status": "completed", "blockedBy": [ 9 ] @@ -80,7 +80,7 @@ { "id": 11, "subject": "Task 11: CentralUI \u2014 FlowGraphView log badge + failed-node exception subtitle", - "status": "pending", + "status": "completed", "blockedBy": [ 1 ] @@ -88,7 +88,7 @@ { "id": 12, "subject": "Task 12: CentralUI \u2014 FlowStepDetail Log tab", - "status": "pending", + "status": "completed", "blockedBy": [ 1 ] @@ -96,7 +96,7 @@ { "id": 13, "subject": "Task 13: CentralUI \u2014 Flow Debugger page strip counts, truncation notes, selection hookup", - "status": "pending", + "status": "completed", "blockedBy": [ 3, 10, @@ -107,7 +107,7 @@ { "id": 14, "subject": "Task 14: CLI \u2014 logs column and --show-logs", - "status": "pending", + "status": "completed", "blockedBy": [ 3 ] @@ -115,7 +115,7 @@ { "id": 15, "subject": "Task 15: Specs, register, rig demo + verification step J, full build", - "status": "pending", + "status": "completed", "blockedBy": [ 6, 7, @@ -124,5 +124,5 @@ ] } ], - "lastUpdated": "2026-09-09T15:20:12.803167+00:00" + "lastUpdated": "2026-09-09T17:03:37.474386+00:00" } \ No newline at end of file