fix(dcl): broadcast SnapshotComplete sentinel to all alarm subscribers #3

Merged
dohertj2 merged 1 commits from fix/native-alarm-snapshot-complete-routing into main 2026-06-16 19:39:11 -04:00
Owner

Static-active native (MxGateway) alarms never surfaced: the SnapshotComplete framing sentinel is emitted with empty source refs and was dropped by the per-source prefix match, so NativeAlarmActor never flushed its snapshot buffer. Broadcast the sentinel to all subscribers. +regression test; 156/156 DCL tests green. Verified live on wonder (Z28061.HeartbeatTimeoutAlarm now mirrors).

Static-active native (MxGateway) alarms never surfaced: the SnapshotComplete framing sentinel is emitted with empty source refs and was dropped by the per-source prefix match, so NativeAlarmActor never flushed its snapshot buffer. Broadcast the sentinel to all subscribers. +regression test; 156/156 DCL tests green. Verified live on wonder (Z28061.HeartbeatTimeoutAlarm now mirrors).
dohertj2 added 1 commit 2026-06-16 19:39:04 -04:00
The MxGateway alarm mapper emits the SnapshotComplete framing sentinel with
empty SourceReference/SourceObjectReference. HandleAlarmTransitionReceived
routed every transition by prefix match against the subscriber's source, so
the empty-ref sentinel ('' .StartsWith("<src>.") == false) was dropped for
any specific source. The NativeAlarmActor buffers snapshot conditions and only
flushes them on SnapshotComplete, so statically-active native alarms delivered
only in the initial snapshot (no later live transition) never surfaced.

Broadcast the SnapshotComplete sentinel to all alarm subscribers (bypassing the
source match + type filter) so each NativeAlarmActor's snapshot swap completes.
Adds a regression test using the real empty-ref sentinel against a specific
(prefix) source.
dohertj2 merged commit 361e7f41ba into main 2026-06-16 19:39:11 -04:00
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#3