Notification flood prevention:

Notification flood prevention: heartbeat subtask completions must be classified, not individually notified. Sentinel (5 categories) and Homeostasis (11 categories) create individual subtasks per heartbeat, completing in 2-3 minutes each, generating ~30 Telegram messages/hour. Fix: Classification gate in polling.py — detect heartbeat tasks by (agent_name in HEARTBEAT_AGENTS) AND (title contains HEARTBEAT_TITLE_PATTERNS), route to Redis digest buffer. Buffer flushed as expert-formatted summary every 4h by heartbeat_digest.py. Anomaly detection checks ONLY verdicts, NOT titles — title keywords cause false positives. Buffer safety: peek→send→clear pattern — peek_digest() reads without deleting, clear_digest() only after confirmed Telegram msg_id.