R2-08: Conventions & Hygiene round-2 fixes (T3-T10,T12; T1/T2 needs-user deferred) #11

Closed
dohertj2 wants to merge 1 commits from r2-plan08 into main
Owner

Round-2 architecture-review fixes — PLAN-R2-08 (Conventions & Hygiene), the automatable tasks (T3–T10, T12). Source: archreview/08-conventions-tests-underdeveloped.md.

TDD/verify per task; per-task pathspec commits; targeted + both-composition-root suites green.

  • T3 90cdb6e5 root secret-capture guards — .gitignore patterns + opt-in pre-commit secret scan (NF1)
  • T4 8ddcbbd6 CHANGELOG refresh — fix false Operator/Engineer claim, summarize arch-review initiative + M7/M8 (NF3)
  • T5 e0dddac0 eager validation for AuditLog site sub-options (SiteWriter/SiteTelemetry/SiteRetention) (NF4)
  • T6 f85f036b eager validation for AuditLog central sub-options (PartitionMaintenance/Purge/Reconciliation) (NF4)
  • T7 4a0462e4 validate Host Node/Database/Logging options — empty NodeName fails fast instead of NULLing SourceNode (NF4)
  • T8 973e59de functional fix — bind+validate OperationTrackingOptions AND register the site IOperationTrackingStore that two comments falsely claimed AddSiteRuntime provided (it was unregistered → site cached-call tracking ran degraded) (NF4)
  • T9 7943d73e canonicalize Communication/DataConnection config sections to ScadaBridge:*; drop the duplicate Host bindings masking the drift (NF8)
  • T10 4f39cfd6 re-consolidate deferral tracking — SBR gap + wonder-app overlay rows into the register, prune landed Fix-now rows, repoint fired perf-envelope trigger at PLAN-R2-01 (NF5)
  • T12 80b96768 fix stale area-export comment in EntitySerializer (NF6)

NOT in this PR (needs-user / out-of-band):

  • T1 rotate the exposed wonder-app-vd03 Inbound API key (dual-key flow; needs host access + caller cutover)
  • T2 / T11 / T13-deletions delete untracked live-credential + generated files (test.txt, ldap_login.txt, sql_login.txt, sqllogin.txt, deferred.md, root ScadaBridge-docs-*.md) — unrecoverable; deferred to explicit user confirmation. (T13 commit-half already satisfied at base 1429ddaa.)

Note: T10 edits 00-MASTER-TRACKER.md (also edited by R2-06) — reconcile at merge. Part of the round-2 initiative (8 plans / 86 tasks).

Round-2 architecture-review fixes — **PLAN-R2-08 (Conventions & Hygiene)**, the automatable tasks (T3–T10, T12). Source: `archreview/08-conventions-tests-underdeveloped.md`. TDD/verify per task; per-task pathspec commits; targeted + both-composition-root suites green. - **T3** `90cdb6e5` root secret-capture guards — `.gitignore` patterns + opt-in pre-commit secret scan (NF1) - **T4** `8ddcbbd6` CHANGELOG refresh — fix false Operator/Engineer claim, summarize arch-review initiative + M7/M8 (NF3) - **T5** `e0dddac0` eager validation for AuditLog site sub-options (SiteWriter/SiteTelemetry/SiteRetention) (NF4) - **T6** `f85f036b` eager validation for AuditLog central sub-options (PartitionMaintenance/Purge/Reconciliation) (NF4) - **T7** `4a0462e4` validate Host Node/Database/Logging options — empty NodeName fails fast instead of NULLing SourceNode (NF4) - **T8** `973e59de` **functional fix** — bind+validate OperationTrackingOptions AND register the site `IOperationTrackingStore` that two comments falsely claimed `AddSiteRuntime` provided (it was unregistered → site cached-call tracking ran degraded) (NF4) - **T9** `7943d73e` canonicalize Communication/DataConnection config sections to `ScadaBridge:*`; drop the duplicate Host bindings masking the drift (NF8) - **T10** `4f39cfd6` re-consolidate deferral tracking — SBR gap + wonder-app overlay rows into the register, prune landed Fix-now rows, repoint fired perf-envelope trigger at PLAN-R2-01 (NF5) - **T12** `80b96768` fix stale area-export comment in EntitySerializer (NF6) **NOT in this PR (needs-user / out-of-band):** - **T1** rotate the exposed wonder-app-vd03 Inbound API key (dual-key flow; needs host access + caller cutover) - **T2 / T11 / T13-deletions** delete untracked live-credential + generated files (`test.txt`, `ldap_login.txt`, `sql_login.txt`, `sqllogin.txt`, `deferred.md`, root `ScadaBridge-docs-*.md`) — unrecoverable; deferred to explicit user confirmation. (T13 commit-half already satisfied at base 1429ddaa.) Note: T10 edits `00-MASTER-TRACKER.md` (also edited by R2-06) — reconcile at merge. Part of the round-2 initiative (8 plans / 86 tasks).
dohertj2 added 9 commits 2026-07-13 11:01:15 -04:00
VERIFY-THEN-FIX: the plan-authoring discovery is CONFIRMED. No code anywhere in
src/ registered IOperationTrackingStore in DI, yet AkkaHostedService and
AuditLog SCE both comment that AddSiteRuntime provides it. Every consumer
resolved it via GetService (null-tolerant) and silently ran degraded:
cached-drain scheduler never armed, PullSiteCalls reconciliation seam never
wired, Tracking.Status degraded to audit-only. This is a FUNCTIONAL FIX riding
the hygiene plan: AddSiteRuntime now registers the store (site-only), so
site-local cached-call tracking runs in its intended mode. OperationTrackingOptions
is now bound + eagerly validated in the Host site-options block.
dohertj2 added 1 commit 2026-07-13 11:24:25 -04:00
R2-08 T7 added an eager NodeName validator (empty NodeName NULLs the SourceNode
audit column) but only patched Host.Tests fixtures; the IntegrationTests
WebApplicationFactory never set it, so every host-boot test failed
OptionsValidationException. Integration-surfaced; belongs with plan R2-08 T7.
Author
Owner

Merged to main via the r2-integration fast-forward (main @ 1930f19b, pushed to origin). All commits from this branch are in main; the two integration-surfaced test fixes (IntegrationTests NodeName host-boot config, compile-cache assertion relax) landed on main as well. Closing — content fully integrated.

Merged to main via the r2-integration fast-forward (main @ 1930f19b, pushed to origin). All commits from this branch are in main; the two integration-surfaced test fixes (IntegrationTests NodeName host-boot config, compile-cache assertion relax) landed on main as well. Closing — content fully integrated.
dohertj2 closed this pull request 2026-07-13 11:48:38 -04:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/ScadaBridge#11