Merge pull request 'docs(#420): final reconciliation — alarms-over-gateway feature complete; C.1 superseded' (#467) from docs/420-alarms-gateway-reconciliation into master
v2-ci / build (push) Successful in 4m12s
v2-ci / unit-tests (push) Failing after 9m34s

This commit was merged in pull request #467.
This commit is contained in:
2026-07-15 15:24:04 -04:00
2 changed files with 37 additions and 2 deletions
+11 -2
View File
@@ -1,7 +1,16 @@
# Alarms D.1 — smoke artifact
> **Status (2026-05-29): alarm-source leg VERIFIED. Historian-write leg still
> pending the Windows sidecar + live AVEVA Historian.**
> **Status (2026-05-29): alarm-source leg VERIFIED.** ~~Historian-write leg still
> pending the Windows sidecar + live AVEVA Historian.~~
>
> ✅ **UPDATE 2026-07-15 (Gitea #420): the historian-write leg is no longer a
> Wonderware-sidecar concern — it was cut over to the HistorianGateway.** Alarm
> events now write through `GatewayAlarmHistorianWriter` (the gateway `SendEvent`
> path behind `SqliteStoreAndForwardSink`), and alarm `SendEvent`→`ReadEvents`+ack
> was **live-verified 2026-07-15** against the real AVEVA historian (R2-06/R2-08,
> 6/6 green). The bespoke Wonderware sidecar + `SdkAlarmHistorianWriteBackend`
> were retired. So this D.1 artifact's alarm-source leg is verified and the
> write-back leg is superseded-and-verified via the gateway.
>
> **Re-confirmed 2026-05-31** against the same gateway (`http://10.100.0.48:5120`):
> the Skip-gated live test passed again, pulling a native `Raise` transition
+26
View File
@@ -29,6 +29,32 @@
> → AVEVA Historian write-back live smoke (C.1's `Live_*` leg) and a full
> running-server → OPC UA A&C round-trip — both need the Windows parity rig.
>
> ✅ **FINAL RECONCILIATION 2026-07-15 (Gitea #420 closed) — feature complete
> on both sides; the C.1 leg is SUPERSEDED, not pending.** Current-master state:
> **(A.2/A.4)** the mxaccessgw worker serves native MxAccess alarms via the
> **wnwrap consumer** (`WnWrapAlarmConsumer` wrapping
> `WNWRAPCONSUMERLib.wwAlarmConsumerClass`) + `FailoverAlarmConsumer` +
> `AlarmDispatcher` — the design landed after the 2026-05-01 probes ruled out
> the WM_APP-pump premise this plan/issue was written against; active-alarm
> snapshot serves `StreamAlarms` (20 alarms verified live). **(A.3)**
> `NotWiredAlarmRpcDispatcher` is gone (only in generated proto); ack routes
> `MxGatewayClient.AcknowledgeAlarmAsync` → gateway `AlarmClient.AlarmAckByGUID`.
> **(lmxopcua)** `GalaxyDriver : IAlarmSource` wires `GatewayGalaxyAlarmFeed`
> (→ `OnAlarmEvent`, native metadata incl. operator-comment) + inbound ack via
> `GatewayGalaxyAlarmAcknowledger`; native feed live-proven by
> `GatewayGalaxyAlarmFeedLiveTests`. **(C.1 — SUPERSEDED)** the whole
> **Wonderware historian sidecar was retired** and the alarm-history write path
> cut over to the **HistorianGateway** (`GatewayAlarmHistorianWriter`, the
> gateway `SendEvent` path behind `SqliteStoreAndForwardSink`); alarm
> `SendEvent`→`ReadEvents`+ack was **live-verified 2026-07-15** against the real
> AVEVA historian (R2-06/R2-08, 6/6). So `SdkAlarmHistorianWriteBackend` /
> `aahClientManaged` no longer exist in the tree — the C.1 acceptance item is
> obsolete, not outstanding. **Sole residual:** a full running-server → OPC UA
> A&C round-trip on the Windows parity rig (Part 9 Acknowledge from a live OPC UA
> client → gateway → AVEVA, with a real Galaxy alarm raised via the System
> Platform IDE) — needs live Galaxy + human IDE interaction; any final mxaccessgw
> integration-test polish is tracked in that repo.
>
> ⚠️ **[SUPERSEDED — kept for history] Worker-side native alarm
> subscription blocked on a dev-rig finding (2026-04-30):** the MXAccess
> COM Toolkit at