namespace ScadaLink.AuditLog.Site; /// /// Default registered by /// on /// every node. Bundle G replaces this binding with a real counter that bridges /// into the Site Health Monitoring report payload as /// SiteAuditWriteFailures — until then, /// emits to a silent sink rather than NRE-ing /// on a null collaborator. /// /// /// Audit-write failures must NEVER abort the user-facing action (alog.md §7), /// so the counter is best-effort by contract. A NoOp default is the correct /// safe fallback while the health metric is being wired in. /// public sealed class NoOpAuditWriteFailureCounter : IAuditWriteFailureCounter { /// public void Increment() { // Intentionally empty. Bundle G overrides this binding with the real // counter once Site Health Monitoring is wired. } }