diff --git a/archreview/plans/00-INDEX.md b/archreview/plans/00-INDEX.md index 5fa01302..de1c71a1 100644 --- a/archreview/plans/00-INDEX.md +++ b/archreview/plans/00-INDEX.md @@ -33,6 +33,8 @@ sonnet, with the adversarial review on opus. R3-02 and R3-05 change hot-path sem the SDK session-activation callback) — opus executes. The rig gate that flips `DisableLogin=false` is the one step that reasons about an observed failure rather than following a recipe — fable. +**Status 2026-08-20: all five EXECUTED, REVIEWED, MERGED and LIVE-GATED (PASS) — see `STATUS.md`.** + **Execution shape.** One branch per plan (`fix/r3-0N-…`) in an isolated worktree; unit suite of the touched projects green before review; opus code-review against the plan; `--no-ff` merge to master in the order **R3-03 → R3-01 → R3-04 → R3-05 → R3-02** (R3-03 and R3-02 both touch `DriverHostActor`; the small one diff --git a/archreview/plans/STATUS.md b/archreview/plans/STATUS.md index dce5ca18..e5a5fe76 100644 --- a/archreview/plans/STATUS.md +++ b/archreview/plans/STATUS.md @@ -513,7 +513,21 @@ bare-role-literal guard caught R3-02's `"driver"` meter tag key — neither bran | R3-04 | 01/S-12 = 03/C5, 01/C-9 | FIX-FIRST ×2 → fixed | Post-overlay guard was unreachable by construction (equal-by-PostConfigure) — now reads live config; `_roleLeaders` back to Ordinal. Residual: `Health.Akka` `OldestUpMember` matches ordinally (external) | | R3-05 | 03/S18, S19 | FIX-FIRST ×1 → fixed | Per-op ACL path does NO SQL (report overstated); revocation is activation-scoped on both node kinds — docs corrected. Residuals filed #562/#563 | -Live gates: R3-01 PASS; R3-03/R3-05/R3-04/R3-02 recorded in each plan's "Live gate result" section. +**Live gates (docker-dev, 2026-08-20) — ALL FIVE PASS**, each with a pre-fix control that failed first +(R3-01 0/6 acks on 302; R3-03 155 s silence after Restart; R3-04 site-b-2 TimedOut + ServiceLevel 0). The R3-05 +S18 leg FAILED on its first run — the 2 s deadline was a cooperative token SqlClient ignores on a black-holed +socket (42.9 s hang, 57 s stall of open subscriptions) — fixed as a hard `Task.WhenAny` race (`f665e8b8`) and +re-gated: denied in 2.4 s, open subscription max gap 1.0 s. R3-02: raw + UNS + Calculation went Bad and +recovered Good with an UNCHANGED plant value (the non-vacuous leg); the MQTT leg was not run (needs the mqtt +overlay) — see the plan's Outstanding section. + +**Follow-ups surfaced by the gates (not fixed):** (1) rig LDAP login broken by the GLAuth credential rotation, +masked by `DisableLogin=true` (compose `Security__Ldap__*`, README, no `alice` user); (2) a fail-start +exception (`Cluster:Roles` unknown role) leaves the `dotnet` process alive instead of exiting — restart +policies never see it, only the healthcheck; (3) `Health.Akka` `OldestUpMember` still matches roles ordinally +(external package); (4) "last value retained" on a Bad status is unobservable over the wire — the SDK nulls +`WrappedValue` for any Bad; (5) #562/#563 (R3-05 residuals); (6) the opc-plc `--alm` alarms don't match +authored `SourceNode` refs, so a native-alarm transition leg cannot run on this rig. **Tranche 2 = action items 6–12, not yet planned.** ---