Joseph Doherty
b9b3cf9a58
docs(plans): R3-04 live gate — PASS on docker-dev (pre-fix control at 7c77a8c7: Cluster:Roles-only site-b-2 booted roles=[] and timed out the fleet deploy 5/6, miscased site-a-2 ServiceLevel 0; post-fix: six banners source=Configured, deploy Sealed 6/6 in 224 ms, one Primary + standby per pair, disagreement Warning fires, unknown role refuses to start)
2026-08-20 13:44:31 -04:00
Joseph Doherty
027c423502
docs(plans): R3-04 execution notes — T6-T12 deviations recorded, T13 marked pending (live gate deferred to orchestrator)
2026-08-20 10:33:07 -04:00
Joseph Doherty
985de0b6ad
chore(docker-dev): site-b-2 is Cluster:Roles-only, site-a-2 pins a miscased Cluster:Roles entry (archreview 01/S-12, 01/C-9)
...
T11: site-b-2 drops OTOPCUA_ROLES entirely — Cluster:Roles is its sole role source, the rig's
only node that can exhibit the two-role-authority split (01/S-12). Expected to fail every
deploy on a pre-R3-04 build.
T12: site-a-2 pins Cluster__Roles__0="Driver" (capital D) as the standing 01/C-9 case-mismatch
pin, keeping cluster-SITE-A verbatim. Pre-fix this un-elects the SITE-A Primary.
Combined into one commit (deviation from the plan's two separate T11/T12 commits): the header
comment block documenting all six nodes' role sources interleaves both nodes on adjacent lines,
so a clean split was not practical. Recorded in the plan's Execution notes.
Compose edits only — the rig is NOT brought up as part of this change.
2026-08-20 10:32:18 -04:00
Joseph Doherty
b8d2d50006
docs: one role authority — precedence, normalization, and the overlay invariant (R3-04)
2026-08-20 10:29:37 -04:00
Joseph Doherty
659d5f51e4
test(integration): a Cluster:Roles-only node wires the driver stack
2026-08-20 10:26:34 -04:00
Joseph Doherty
e2497c908d
test(cluster): guard that role reads live only in the authority (archreview theme 4)
2026-08-20 10:21:36 -04:00
Joseph Doherty
4380e2e78a
fix(cluster): fail start when a late config layer changes Cluster:Roles (role overlays may not set it)
2026-08-20 10:11:25 -04:00
Joseph Doherty
3314a1f98d
feat(host): warn when Cluster:Roles and OTOPCUA_ROLES disagree; boot banner names the winning source
2026-08-20 10:08:03 -04:00
Joseph Doherty
e46c1db5e5
fix(cluster): gossiped-role predicates compare case-insensitively — a miscased peer no longer un-elects the Primary
2026-08-20 10:04:16 -04:00
Joseph Doherty
bcec88ef70
fix(cluster): all four role-scoped validators read the authority — 'Driver' no longer skips every driver rule (archreview 01/C-9)
2026-08-20 09:51:23 -04:00
Joseph Doherty
792e8f422a
fix(host): Program.cs derives roles from the one authority, not OTOPCUA_ROLES alone (archreview 01/S-12 = 03/C5)
2026-08-20 09:46:27 -04:00
Joseph Doherty
7dfd6dcc9f
fix(cluster): AkkaClusterOptions.Roles is the EffectiveRoles instance, not a second derivation
2026-08-20 09:43:54 -04:00
Joseph Doherty
7702616716
feat(cluster): EffectiveRoles — one role authority with one precedence + two-layer normalization (archreview 01/S-12, 01/C-9)
2026-08-20 09:41:54 -04:00
Joseph Doherty
a011a53329
docs(archreview): round-3 tranche-1 plans R3-01 (mesh gRPC AllowAnonymous) + R3-04 (one role authority); 00-INDEX round-3 table with executor model assignments
2026-08-20 09:27:17 -04:00