namespace ZB.MOM.WW.ScadaBridge.SiteCallAudit; /// /// Published on the actor system EventStream when a site's Site Call Audit /// reconciliation puller transitions into or out of the "pinned" state — the /// composite (UpdatedAtUtc, TrackedOperationId) keyset cursor could not /// advance yet the site still reports MoreAvailable=true, so the backlog /// tail cannot be drained. In practice this only happens against a legacy site /// that ignores the after_id keyset field (a modern site drains a /// single-timestamp burst via the id tiebreak). Mirrors /// SiteAuditTelemetryStalledChanged: only transitions are published /// (Pinned=true on latch, Pinned=false when progress resumes), so /// a downstream health subscriber never sees a flood of redundant notifications. /// The dead-end that the previous implementation only logged is now a /// health-observable condition. /// /// The site whose reconciliation cursor pinned (or unpinned). /// True on entering the pinned state; false when the cursor makes progress again. public sealed record SiteCallReconciliationPinnedChanged(string SiteId, bool Pinned);