Joseph Doherty
74794f4365
docs(archreview): R3-02 execution notes — T18 sweep + outstanding live gate
2026-08-20 11:34:18 -04:00
Joseph Doherty
93704f64ab
docs(archreview): R3-02 status
2026-08-20 11:33:56 -04:00
Joseph Doherty
62c5bc3aad
fix(runtime): a stopping driver child announces comms loss so restart/respawn latches its nodes Bad
2026-08-20 11:07:02 -04:00
Joseph Doherty
1d251cc037
Merge branch 'master' into fix/r3-02-stale-good-family
...
# Conflicts:
# src/Server/ZB.MOM.WW.OtOpcUa.Runtime/Drivers/DriverHostActor.cs
# tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests/Harness/V3ArtifactSeeder.cs
2026-08-20 11:03:02 -04:00
Joseph Doherty
5dc8d34472
docs: the stale-Good quality contract, stated once (R3-02)
2026-08-20 10:56:16 -04:00
Joseph Doherty
e3a72dc385
fix(runtime): virtual tags hold on Bad inputs and inherit the worst input status (archreview 02/S14)
2026-08-20 10:53:26 -04:00
Joseph Doherty
cc9b845f99
feat(engines): IVirtualTagEvaluator snapshot overload; Roslyn read cache stops fabricating Good (02/S14)
2026-08-20 10:45:11 -04:00
Joseph Doherty
d79d51dd4f
Merge branch 'fix/r3-01-mesh-grpc-allowanonymous' — R3-01: mesh gRPC + LocalDb sync endpoints opt out of the AdminUI cookie FallbackPolicy (PSK interceptors are the gate); real-auth-stack boundary tests + map-convention guard; rig DisableLogin parameterised (archreview 03/S14 Critical)
2026-08-20 10:43:49 -04:00
Joseph Doherty
60e5b40228
fix(calculation): read cache carries real input status + timestamps
2026-08-20 10:40:15 -04:00
Joseph Doherty
851e4cf5e0
Merge branch 'fix/r3-03-restart-resubscribe-watchdog' — R3-03: SpawnChild always sends the desired set (operator Restart + supervision restart re-provision, stale-alarm-set re-subscribe, incarnation check, 10 s backoff); watchdog grace = max(LastSuccessfulRead, connectedSince) (archreview 03/S16, S17, U6)
2026-08-20 10:40:11 -04:00
Joseph Doherty
6d0002889a
docs(archreview): R3-03 review outcome — F1/F2/F3 fixed with red-before evidence
2026-08-20 10:39:47 -04:00
Joseph Doherty
48efdac600
fix(calculation): hold evaluation on Bad inputs and propagate the worst input status; status-keyed dedup (05/STAB-19)
2026-08-20 10:37:29 -04:00
Joseph Doherty
3f8d5815b3
fix(runtime): mux adapter forwards the dependency's real status code (05/STAB-19)
2026-08-20 10:30:14 -04:00
Joseph Doherty
b725788954
docs(plans): R3-01 execution notes (T1-T9) - filter gotcha, T4/T5 fixture scope, observed cookie-challenge signature
2026-08-20 10:28:55 -04:00
Joseph Doherty
ae97b32c82
test(runtime): comms-loss → identical-value recovery contract + silent-resubscribe control (03/S15)
2026-08-20 10:27:48 -04:00
Joseph Doherty
b8911eaa14
docs(plans): mark R3-01 T9 done; T10 remains pending (live gate, orchestrator-run)
2026-08-20 10:27:45 -04:00
Joseph Doherty
4dde5cb8bf
docs(plans): mark R3-01 T7 and T8 done
2026-08-20 10:25:12 -04:00
Joseph Doherty
9bd3366b28
docs(plans): mark R3-01 T6 done
2026-08-20 10:21:01 -04:00
Joseph Doherty
e475f7b4ab
Merge branch 'fix/r3-05-acl-hot-path-expiry' — R3-05: bounded ConfigDb API-key lookup (deadline + TTL) and clock-driven key-expiry revalidation of live monitored items (archreview 03/S18, 03/S19)
2026-08-20 10:19:13 -04:00
Joseph Doherty
62515f3279
fix(security): pin the cached-key expiry guard, meter cache_hit after it, and close two wiring gaps (review fixes)
2026-08-20 10:18:52 -04:00
Joseph Doherty
7d98ef9332
feat(runtime): audit refs still BadNoCommunication after a reconnect (dedup-trap tripwire)
2026-08-20 10:16:01 -04:00
Joseph Doherty
353ed6bb58
docs(plans): mark R3-01 T5 done
2026-08-20 10:15:03 -04:00
Joseph Doherty
c1ad9e24d2
docs(archreview): R3-03 execution notes — final verification + deviation summary
2026-08-20 10:11:16 -04:00
Joseph Doherty
815423bd88
docs(plans): restore literal UTF-8 em-dashes in R3-01 tasks.json (cosmetic)
2026-08-20 10:07:20 -04:00
Joseph Doherty
12c4028474
docs: restart re-provisioning + per-connection watchdog grace (R3-03)
2026-08-20 10:07:20 -04:00
Joseph Doherty
97f4ea0c9e
fix(runtime): comms loss marks raw + UNS value nodes BadNoCommunication, value retained (archreview 03/S15)
2026-08-20 10:07:12 -04:00
Joseph Doherty
af9d3a69ac
docs(plans): mark R3-01 T4 done
2026-08-20 10:06:55 -04:00
Joseph Doherty
14094e3a18
docs(archreview): file R3-05 residuals R1/R2 (Gitea #562/#563); execution notes
2026-08-20 10:06:00 -04:00
Joseph Doherty
5c7e5725a5
test(runtime): first supervision-restart test — child re-initialises + re-subscribes (archreview 03/U6)
...
Crash seam: the planned null-Snapshot OnDataChange (no SupervisorStrategy fallback needed).
Seen RED with T6 reverted: InitializeCount 1, not 2 — with a preceding ShutdownCount>=1
assertion proving the restart really happened, so the red is not ambiguous with 'never crashed'.
2026-08-20 10:05:45 -04:00
Joseph Doherty
a9b592aeb8
docs(security): correct revocation latency (activation vs open session) + S18/S19 knobs
2026-08-20 10:04:03 -04:00
Joseph Doherty
04019e9414
feat(runtime): publish actor routes status-only batches to the sink
2026-08-20 10:03:25 -04:00
Joseph Doherty
dfab7f614d
test(integration): key expiry stops a live subscription over the wire, with no deploy
2026-08-20 10:00:52 -04:00
Joseph Doherty
ec5b48bfcd
feat(opcua): IOpcUaAddressSpaceSink.WriteStatuses — status-only batch write retaining the node value (03/S15)
2026-08-20 10:00:47 -04:00
Joseph Doherty
2b9a397b2d
fix(runtime): re-provision a driver child after a supervision restart (archreview 03/S6, S16)
2026-08-20 09:56:05 -04:00
Joseph Doherty
6874a562f3
test+docs(mqtt): end-to-end Bad-then-identical-replay recovery
2026-08-20 09:55:11 -04:00
Joseph Doherty
a4f12bccef
fix(host): run monitored-item revalidation on a low-frequency timer (archreview 03/S19)
2026-08-20 09:55:01 -04:00
Joseph Doherty
d97e441979
test(runtime): operator restart re-subscribes the respawned child (archreview 03/S16, U6)
...
Seen RED against a T3-reverted build: all 4 failed, Created[1].SubscribeCount == 0
on the headline case. 20x isolation run green after the fix was restored.
2026-08-20 09:53:38 -04:00
Joseph Doherty
b7d20d14a8
fix(mqtt/sparkplug): initial push on subscribe + BadNoCommunication on connection loss
2026-08-20 09:52:15 -04:00
Joseph Doherty
1759f60476
docs(plans): mark R3-01 T3 done
2026-08-20 09:51:43 -04:00
Joseph Doherty
b09f78396f
test(opcua): pin clock-driven expiry in the revalidation pass; correct the only-trigger remark
2026-08-20 09:50:39 -04:00
Joseph Doherty
ac2f8dc801
fix(mqtt): stale observed refs BadNoCommunication on connection loss so the identical replay recovers (05/STAB-18 shape a)
2026-08-20 09:46:56 -04:00
Joseph Doherty
bd80ff96ca
feat(security): AclRevalidationTimer — clock-driven monitored-item revalidation (archreview 03/S19)
2026-08-20 09:46:56 -04:00
Joseph Doherty
2f90156408
docs(plans): mark R3-01 T2 done
2026-08-20 09:46:40 -04:00
Joseph Doherty
39a10a277a
fix(security): wrap the ConfigDb key store on admin nodes + registration guard
2026-08-20 09:45:08 -04:00
Joseph Doherty
6048257dfe
feat(observability): meter bounded API-key store lookups
2026-08-20 09:43:07 -04:00
Joseph Doherty
ac9a71bcbd
docs(plans): mark R3-01 T1 done
2026-08-20 09:43:06 -04:00
Joseph Doherty
b3a71f6655
test(runtime): recording subscribable driver factory + enabled-driver v3 seed
2026-08-20 09:42:33 -04:00
Joseph Doherty
7af9baab39
fix(mqtt): initial push of cached snapshots on (re)subscribe — the push-model forceRaise (05/STAB-18 shape b)
2026-08-20 09:42:25 -04:00
Joseph Doherty
37288d4df5
feat(security): short TTL read-through cache in front of the ConfigDb key store
2026-08-20 09:40:56 -04:00
Joseph Doherty
3b56e5bd01
fix(security): bound the API-key store call under the SessionManager lock (archreview 03/S18)
2026-08-20 09:38:41 -04:00