44644ddc7f
v2-ci / build (pull_request) Failing after 45s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (pull_request) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (pull_request) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (pull_request) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (pull_request) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (pull_request) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (pull_request) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (pull_request) Has been skipped
Live validation against wonder-sql-vd03 caught that the gateway's SendEvent handler throws when the wire event carries a client-supplied Id — so every alarm send from OtOpcUa failed (PermanentFail). AlarmEventMapper now leaves HistorianEvent.Id unset (the historian assigns event identity) and preserves the alarm's id as an 'AlarmId' property. With this, the live alarm send acks. Also harden the env-gated live tests against two gateway/historian-side limitations surfaced during validation (neither an OtOpcUa defect): the write readback uses a timezone-tolerant window (an explicit-timestamp WriteLiveValues lands offset by the deployment's local-vs-UTC delta — reproducible via raw grpcurl; OtOpcUa sends correct UTC), and the alarm ReadEvents readback skips with a clear reason when the historian's server-gated event reads (C2, won't-fix) return nothing. Read + write-persist + alarm-send are all live-validated green; the alarm send-ack is split into its own test. Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii