chore(rig): Task 22 verified — verify-delmia-notifier step H passes on the rig (Flow Debugger live run + replay)

Rig recreated from the branch-built image through the main checkout's compose file
(deploy.sh refuses a worktree, register row 68). Fresh key delmia-flowdbg-0906 scoped to
DelmiaRecipeDownload. Full drill: A/B/E/F YES, C/G NO, takeover 29 s, rejoin 3 s, then

  H   live+replay -> YES
  live:   11 events (InboundRequest, RouteCall, ScriptRun, 7x AttributeWrite, AttributeWait)
  replay: 17 events on the first attempt — the six extra rows are the simulator's two
          cascaded ValueChange runs (2x ScriptRun + 4x AttributeWrite): inline TraceEvents
          carry the routed run's own steps, replay walks the whole execution tree.

Recorded as row H in Delmia-Recipe-Download-API.md §8; ledger marks Task 22 completed
(all 24 tasks done). Note: the rig still runs main's appsettings, so the ScriptTrace
30-day retention override lands only after merge + a deploy from main.

Claude-Session: https://claude.ai/code/session_01GSLkkHKz9JrAtmJjmQK3cP
This commit is contained in:
Joseph Doherty
2026-09-06 00:46:32 -04:00
parent 8a8b79b5c4
commit 6cd9204d69
2 changed files with 4 additions and 3 deletions
+2 -1
View File
@@ -231,7 +231,7 @@ Galaxy. Seeded by CLI only, no DB edits:
Whole-path latency through Traefik: a `curl` call returns in under 100 ms (simulator fires on the same
node, no device round-trip).
### Verified outcomes (second run, 2026-09-02 16:51 UTC)
### Verified outcomes (second run, 2026-09-02 16:51 UTC; row H from the third run, 2026-09-06 04:48 UTC — A–G re-passed, takeover 29 s, rejoin 3 s)
| Case | Setup | Result | Audit row (`ApiInbound`) |
|------|-------|--------|--------------------------|
@@ -242,6 +242,7 @@ node, no device round-trip).
| E | survivor `/health/active` = 200 — takeover measured **27 s** after the kill | `YES` (`:9001` refused → `:9002` 200) | `InboundRequest` on `central-b` |
| F | victim restarted, `memberCount=2`, victim `/health/active` = 503 (rejoined as standby) | `YES` (victim relays) | `InboundRequest` on `central-b` |
| G | `DownloadPath` = `C:\recipes\x.bad` | `NO` + `Simulated reject: bad path or missing work order` | `InboundRequest` on `central-b`, `Result=false` |
| H | Flow Debugger (2026-09-06 third run, branch `feat/flow-debugger`): `flow-debug run-method` on `DelmiaRecipeDownload`, then `flow-debug replay` on the returned root id | `YES` — live run `completed`, **11** events inline (`InboundRequest`, `RouteCall`, `ScriptRun`, 7 × `AttributeWrite`, `AttributeWait`); replay rebuilt the same root with **17** events on the first attempt (no telemetry lag hit) | `ApiInbound`/`InboundRequest` (actor = operator) + `ScriptTrace` rows; the six extra replay rows are the simulator's two cascaded `ValueChange` runs (rising + clearing edge of `RecipeDownloadFlag`, 2 × `ScriptRun` + 4 × `AttributeWrite`) — inline `TraceEvents` carry only the routed run's own steps, replay walks the whole execution tree |
The notifier's first-line contract, exit codes (`0` / `-1`), and the reason line on `NO` behaved as the
README states throughout.