47dda97226
`disabled_rules` stopped the loop from creating new nudges and did nothing about the ones already sent. The sev4 repeat path does not consult the rule set at all: RepeatUnacked re-sends any telegram nudge still at outcome=pending every repeat_interval (5m by default), driven by store.UnackedTelegramRules. So service_down kept arriving on a five-minute cadence after being switched off, from a row written hours earlier — two messages after the deploy, which is how it was found. That cadence, not the unsealed database, is what "she keeps spamming me" always was. The seal bug erased the acks that would have stopped it. Filter the repeat keys against the wired rule set. Filtering on wired rather than on the disabled list also silences a rule deleted from the code: nothing can ack what the UI no longer lists. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TrVSBKe3RFDF4fGYKWYQnX