From f073241f529ea18022b099ce3d7414447b1bbcb6 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 2 Jun 2026 11:54:57 -0400 Subject: [PATCH] plan(2.5): ScadaBridge audit re-arch C1+C2 done (reviewed); C3 (atomic record swap) in progress --- docs/plans/2026-06-02-scadabridge-audit-rearch.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/plans/2026-06-02-scadabridge-audit-rearch.md b/docs/plans/2026-06-02-scadabridge-audit-rearch.md index 34ea463..d8aa278 100644 --- a/docs/plans/2026-06-02-scadabridge-audit-rearch.md +++ b/docs/plans/2026-06-02-scadabridge-audit-rearch.md @@ -64,3 +64,9 @@ ScadaBridge consumes the library `IAuditWriter`/`IAuditRedactor`/`AuditOutcome`. 5. **`Action=Channel.Kind`** lossiness — mitigated by `Category`(=channel) + persisted computed `Kind`; ScadaBridge-internal filtering uses those, not `Action` parsing. Delivery: `feat/adopt-zb-audit` (stacked on auth), local-only. Each stage = one implementer + classification review chain; full ScadaBridge suite at C3/C4/C5/C7. + +## Stage status (live) +- **✅ C1 DONE** `3d77dc0` (code ✅) — `AuditDetails` + deterministic `AuditDetailsCodec` (pinned byte-exact) + `AuditOutcomeProjector` + `AuditFieldBuilders` + Commons→`ZB.MOM.WW.Audit` ref; 56 tests. +- **✅ C2 DONE** `adfb4d3` + fix `5aaf9e2` (spec ✅, code ✅ after fix) — `ScadaBridgeAuditRedactor`/`SafeDefaultAuditRedactor : IAuditRedactor` on the canonical record; redaction primitives extracted into shared `AuditRedactionPrimitives`/`AuditRegexCache` (old filter delegates, behaviour-preserved); cap-selection reads `d.Status` (faithful to legacy `IsErrorStatus`); fast-path + never-throws; review-fix hardened `OverRedact` to scrub ALL free-text fields + marker alignment + outer-catch never-leak test. 61 redaction + 44 payload + 88 commons-audit green. +- **⏳ C3 IN PROGRESS** (background implementer) — atomic record swap across seams/emitters/DTO/redactor-wiring + transitional 24-col storage shim. +- ⏳ C4/C5/C6/C7 pending C3.