From 8e57b172e1c50c9eb7127cf88137f877bf4ff2d0 Mon Sep 17 00:00:00 2001 From: kjgbot Date: Sat, 5 Sep 2026 21:06:02 +0200 Subject: [PATCH] docs(scoreboard): the gate 2 row was wrong in both directions #167. The row claimed gate 2 was missing "a test proving a duplicate event does not double-execute". That was already false when the issue was filed -- the test existed and was mutation-bound -- and tonight's work went further, so the row now understates progress and the gate at once. Dedupe, with each claim checked against main rather than remembered: sequential duplicates #14 concurrent racing deliveries, under the #171 production topology of one Engine per protocol request claims that survive the process that #171 (boot id), #182 (panic) made them resume adopting only a journal it can #177, #186 actually use Still genuinely missing, and stated narrowly: the RFC-0001 Appendix A wake-time context contract. `wake_context` carries an epoch summary and the triggering event, but nothing specifies what is GUARANTEED present, or that a resumed run observes the SAME context rather than a recomputed one. And the correction #167 cared about most: the row has been understating the gate. RFC-0001 s3's bar is `hn-monitor` running as a relayflow IN PRODUCTION, on its real events, with zero bespoke persistence -- not a passing test suite. Anyone scoping gate-2 work off this row alone would have mis-sized it in both directions. No counts in the row, deliberately. Counts drift with the base; PR numbers and test names do not. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FtQSAcGDta5VH9xiZFT4sR Session-Id: c228933d-4f94-4d83-9a9a-daf3c83b94f1 --- ops/SCOREBOARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ops/SCOREBOARD.md b/ops/SCOREBOARD.md index 6b06c05d2..9b0066bbb 100644 --- a/ops/SCOREBOARD.md +++ b/ops/SCOREBOARD.md @@ -6,7 +6,7 @@ Every row starts RED and moves only on evidence. AMBER blocks nothing here | Gate | State | Evidence | |---|---|---| | 1 — a relayflow can run | **GREEN** | Closed on `main` at `9e1d9eb` (PR #8, merged by Khaliq) and extended on WP-12 by the live authored-surface seam: the built `sdk/dist/cli.js` submits `hello-deterministic.flow.yaml` to a real `relayflowd`, distinguishes worker-unavailable and `needs_human` parked states from typed snapshots, bounds worker waits by their leases, journals `step_failed`, and resumes after `kill -9` with one successful completion per step. WP-12 branch verification: kernel **74 passed / 0 failed**, SDK **150 passed / 9 files**, including **7/7** built-binary and **7/7** live-kernel cases; the same 150-test SDK suite passed from recoverably moved `dist` and `node_modules`. Residual, documented in DESIGN.md §1.9: a worker dying after the provider call but before confirming performs an effect twice — closing it needs gate 4's mount-as-writer. | -| 2 — proactive agent | **AMBER** | **in progress** — PR #14 landed wake.rs, event.rs, the subscription registry with (flow, subscription, key) dedupe and claim repair, and the SDK event.submit verb. Missing: the RFC-0001 Appendix A wake-time context contract, and a test proving a duplicate event does not double-execute. Was — first of the 2-4 sequence gate 6 waits on; harness shims wait on it | +| 2 — proactive agent | **AMBER** | **in progress** — PR #14 landed wake.rs, event.rs, the subscription registry with (flow, subscription, key) dedupe and claim repair, and the SDK event.submit verb. Dedupe is DONE and mutation-bound: sequential duplicates (#14), concurrent racing deliveries under the production topology of one Engine per request (#171), and claims that survive the process that made them (#171, #182), plus resume adopting only a journal it can actually use (#177, #186). Missing: the RFC-0001 Appendix A wake-time context contract -- nothing specifies what `wake_context` guarantees, or that a resumed run observes the SAME context rather than a recomputed one. And the row has been understating the gate: RFC-0001 s3's bar is `hn-monitor` running as a relayflow IN PRODUCTION on its real events with zero bespoke persistence, not a passing test suite (#167). Was — first of the 2-4 sequence gate 6 waits on; harness shims wait on it | | 3 — Software Garden | **AMBER** | started — PR #20 merged the backlog picker: a flow that reads ops/BACKLOG.md and emits a work package, with selection determinism asserted across 25 repeated runs (sdk/src/backlog-picker.ts). That is the seed of flows proposing their own work; the Garden itself is far from done. | | 4 — chief / harness | RED | not started | | 5 — memory | RED | scoped by harness directive 3 (relayfile + relayhistory per customer) |