84620665a5
Добавлен БЛОК 5 в IncidentsWatchFailures::handle() — детекция шторма от одного supplier_lead_id. Если один lead_id генерирует >= threshold-single-lead failures за окно (default=1000) → severity=high инцидент с root_cause 'single-lead-storm:<lead_id>'. Дедуп по dedup-window как в остальных блоках. Новая опция: --threshold-single-lead=1000 (configurable). Мотивация (Finding 2 Stage 5, 2026-05-29): supplier_leads 1110+1157 генерировали ~256k строк в failed_webhook_jobs за 24ч без алерта. Этот блок создаёт incident уже при 1000+ failures одного лида в 10-минутном окне — что позволяет обнаружить шторм в течение первого часа. Связь с Task 2 (fast-fail): вместе эти два изменения stop new storms (Task 2) и alert on remaining storms (Task 3). Tests: 4 passing в SingleLeadStormTest.php - детекция шторма (>= threshold) - НЕ создаёт incident при распределённых failures - default threshold=1000 - dedup (второй запуск = 0 новых инцидентов) Task 3 plan 2026-05-29-supplier-webhook-fast-fail-and-stuck-cleanup.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>