8a13d189bb35ca5e969fd8c722b0fd5cf10349d8
It repeated every five minutes for over two hours. WasAcked was the only stop condition and nothing reachable from telegram can mark a nudge acked — the only ack is a voice 'готово' on a box that runs no voice loop. Two endings now. The condition cleared, which the rule answers through the new Rule.StillTrue — deliberately not Predicate, which is edge-triggered and reads false one tick after the alarm is raised, so building the stop on it would cancel every alarm immediately. Or the alarm got old, which is the bound that needs no cooperation from the rule. A rule with no StillTrue is never read as resolved and stops only on age. Covered by tests including the flap case, since none of it can be reproduced by hand without waiting hours. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Merge pull request 'Kuma: a fact per monitor, so she can name the service that is down' (#147) from task/444-kuma-a-fact-per-monitor-so-she-can-name into master
Description
No description provided
Languages
Go
97.1%
HTML
0.9%
Shell
0.6%
CSS
0.5%
Makefile
0.3%
Other
0.6%