mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 22:12:23 +00:00
eae8ca2a68
Real product gap exposed by closing the operator-state feature: a finding auto-dismissed while a maintenance window covered `now` would stay dismissed forever even after the window ended. Same for findings auto-dismissed under IntentionallyOffline once the operator cleared the flag. The time-bounded suppression silently became permanent. Adds a third wake condition to the dismissed-branch in FindingsStore.Add: when a finding's most recent dismissed lifecycle event carries operator_state_cause metadata, AND the provider reports no current suppression for the resource, clear the dismissal and emit a suppression_lifted lifecycle event naming the previous cause. Manual operator dismissals (no operator_state_cause) are unaffected — the findOperatorStateDismissCause helper stops at the first dismissed event when scanning newest first, so a manual dismissal that supersedes an earlier auto-dismiss is not falsely re-awakened. Tests cover both signal types, the manual-dismissal isolation, and the helper's newest-first scan order.