⌂ все дашборды/Инфраструктура и рутины← Connectors-Health · DR-Delivery-Sessions →

⚡ Крон -> Событийка: где поллинг стоит заменить триггером

Аудит-сессия auto-hub-260819-cron-to-event-audit · хаб A-2022BAYAREA · 19.08.2026 18:10 Лиссабон · приказ Антона 17:08
Все цифры взяты из логов, state-файлов и token_audit. Где замера нет — написано «нет замера», не выдумано.
Тиков в сутки (хаб+Маяк)
9 066
хаб 5 142 · Маяк 3 924
Поллеров чаще 30 мин
45 + 26
хаб / Маяк
Фон в токенах / сут
679.4M
60% всего расхода (замер 19.08)
Экономия топ-1
~15.6M
токенов/сут, голосовая полоса
Событийная рельса
ЖИВА
n8n WAKE-hub, исполнение 19.08 17:13
Главное за 30 секунд. Рельсу «событие в Telegram -> пробуждение хаба» не надо изобретать, она уже работает: воркфлоу n8n WAKE hub on chat-03 bus msg (ID X7N18A5MtmTZLAZe, 3 узла: TG-триггер -> фильтр -> HTTP) отстрелял сегодня минимум 5 раз, последнее исполнение 430644 в 17:13, принимающая сторона \wake-listener висит в Running на хабе. Вторая дверь, Github PR webhook (rdHrKw3uuQ1IM48W), активна и имеет НОЛЬ исполнений — построена и не подключена к репозиториям. Вопрос не «можно ли», а «почему остальные полосы до сих пор на будильнике».

Корзина А — перевести на событие (источник доступен n8n, реакция нужна быстро, тиков впустую много)

ПолосаКто тикает сейчасТикСобытий реальноВпустуюЦена сейчасЧто даёт переводРиск
Голосовые Антона
чат «00 Архив ГОЛОСА»
voice-dispatcher (LLM-сессия)
voice-triage (LLM-сессия)
Claude Voice Backstop
Voice Dispatch Watch
8/сут
1/сут
96/сут
4/сут
0.57/сут
4 голосовых за 7 дн,
voice_sessions.py status
~93% 17.7M ток/сут
10.1M dispatcher (5 зап.)
+ 7.6M triage (2 зап.)
замер token_audit 19.08
сессия поднимается только по факту голосовой
≈15.6M ток/сут экономии
n8n лёг -> голосовая ждёт
митигация: суточный крон-бэкстоп остаётся
GitHub: входящее
чужие PR, комменты, issue
Claude PR Watch Nightly
contrib_watch.py
1/сут
не запланирован вообще
потока нет замера
исторический факт: 5 PR
от 3 незнакомцев лежали 4 суток (05.08)
н/д токенов мало,
структурно ломается SLA §4.7 «≤24ч»
ночной детект + утренний ответ
детект за секунды,
SLA 24ч -> минуты
дверь уже построена
шум от ботов
фильтр по типу события
Ответ Антона «+» / QQQ
чат 02 POLICE
Claude Approval Reping (хаб)
approval.py due (Маяк)
96/сут
96/сут
= 192/сут
682 полезных поста
за 44 дня (лог 6118 строк)
57%
«nothing due» 2072
+ «quiet hours» 1407
0 токенов (python),
но ответ ждёт 0–15 мин
медиана ~7.5 мин
«+» ловится за секунды;
тик остаётся только под ре-пинг -> 1×/час
−72 тика/сут
подписантов трое
фильтр по user_id, а не по чату
Шина / инбокс
межмашинные пачки
inbox_ack.py (Маяк)
ClaudeBusWipeGuard
inbox-robot
720/сут
96/сут
1/сут
чистого замера потока нет;
в логе 3937 строк «квитировать нечего»
высоко 0 токенов, но 720 тиков —
самый частый поллер флота
рельса УЖЕ работает (WAKE-hub);
тик -> бэкстоп 1×/час
−696 тиков/сут
потеря пачки при простое n8n
бэкстоп закрывает
Лид-треды
внешние лиды в TG
lead-thread-watch
lead-thread-reply (LLM)
12/сут
2/сут
69 пингов
на 375 проверок
81.6% отдельного замера токенов нет ответ лиду в минутах, а не в полусутках ⚠️ ЗОНА СЕССИИ-СТРОИТЕЛЯ
auto-hub-260819-n8n-event-rail-build
здесь не трогаю
Входящее от людей
личка TG / WA
auto-hub-260806-inbound-triage-daily 1/сут (2 прогона) потока нет замера низко (вход почти всегда есть) 49.3M ток/сут
2-й едок фона
выигрыш в ЛАТЕНТНОСТИ, не в тиках;
токены чинятся диетой, не событием
слабый кандидат — перевод не окупится токенами
Звонки call-monitor-daemon
Granola / Fireflies Nightly Pull
144/сут
1/сут
нет замера н/д 0 токенов у Fireflies есть webhook -> пулл по факту звонка низкий приоритет

Корзина Б — оставить кроном (событий нет: время само = событие)

Архитектурное правило, которое здесь важнее экономии. Сторож-мертвец ловит ОТСУТСТВИЕ события. Его вход — сама тишина, а тишина не приходит вебхуком. Перевести такого сторожа на событийку значит просто его выключить. Второе: §5.5 «сторож не живёт в том, что сторожит» — n8n у нас сам под присмотром Claude n8n Watchdog (20 мин). Переселить сторожей флота в n8n значит замкнуть круг: n8n сторожит то, что сторожит n8n. Полоса ниже остаётся на кроне намеренно, а не по недосмотру.
КлассКтоТиков/сут (оценка)Почему остаётся
Сторожа-мертвецыRoutine Supervisor · Mayak Dead-Man · hub-deadman · node-health-beat · Cron Watchdog · Proc Patrol · ack-watchdog · Fleet Deadman Ping · heartbeat-relay · beat-watch~900вход = тишина; событие невозможно по определению
Сторожа сервисовSyncthing Hub Watchdog · MCP Daemons Watchdog · Desktop Watchdog · Search UI / Second Brain / Dashboards Server Watchdog · headless-llm-watchdog · Claude n8n Watchdog~800сторожат процессы на ЭТОЙ машине; n8n до них не дотягивается и не должен
Ночной тяжёлый фонбэкапы · реиндекс мозга · регресс-сетка · ночные оптимизаторы · дайджесты · day-ledger~60расписание = сам смысл (§4.6, окно 23:00–06:00)
Локальная ФС и gitClaude Git Sync · Canon Publish · Config Git Snapshot · Brain Shard Tick · fleet-pull~460источник = файлы на диске узла; волт и secrets\ к n8n не подключаем (жёсткий барьер §3.4)

Корзина В — убить, уредить или починить

НаходкаУликаЧто предлагаюСтатус
12 задач «включены», но молчат 10 суток последний прогон у всех 09.08, result=0, next armed на завтра:
Conflict Sweeper · MD Daily Optimizer · Dashboard Refresh · Missed Jobs Catchup · Rule Liveness · Session Archive · Skill Usage Scan · CLAUDE.md Guard · HealthArch · HealthBrain · HealthTgWatch · Declined Guard.
Версия «висит прошлый экземпляр и блокирует новый» проверена и отвергнута: в состоянии Running только 5 демонов, ни одной из этих задач.
это рецидив класса dead-scheduled-task — по §5.10 идёт отдельной ремонтной сессией, а не заплаткой из аудита факт ✅ доказан
причина 🤔 гипотеза
Цикл ошибки в шине, 3386 повторов _inbox_ack_log.txt: 3386 строк REFUSING TO SEND: unknown target 'unknown' и столько же парных AUTO-ACK от MacBook-Anton. MACHINE_KEY не разрешается — робот бьётся в стену и молчит об этом наружу починить MACHINE_KEY на MacBook-Anton; заодно это часть тех самых 720 тиков/сут не чинил: чужой узел
Ложно-красный сторож голосовых voice-dispatch-watch кричит «ВЫХОД ПРОТУХ, тишина 199ч, рельса встала» — а рабочая рельса voice_sessions / voice-triage сегодня в 10:00 разобрала 2 голосовые. Сторож меряет реестр voice_dispatch, которым уже никто не пользуется перенацелить сторожа на живой реестр либо погасить: красный, который врёт, обесценивает все остальные красные кандидат, нужна своя проверка
Pulse Live Refresh: 480 тиков/сут тик каждые 3 минуты — самый частый на хабе. pulse_tg_state.json двинулся один раз за последние 18 часов кандидат на 15 минут (−384 тика/сут) — но сперва назвать потребителя и доказать, что ему нужна 3-минутная свежесть не трогал: потребитель не проверен
⚠️ Я ничего не выключил, и причина названа: идёт заморозка стройки до 20.08, а правка расписаний флота по правилу канарейки требует одного узла-канарейки и проверки полного цикла. Все четыре строки выше — предложения, решает Антон.

Топ-3 «до -> после» на реальных цифрах

1. Голосовые Антона — самая дорогая пустая полоса флота

ДО (замер 19.08)
  • voice-dispatcher будит LLM-сессию 8 раз в сутки: 8, 10, 12, 14, 16, 18, 20, 22
  • фактически 19.08 отстрелял 5 раз = 10.1M токенов
  • плюс voice-triage, 2 прогона = 7.6M
  • плюс Voice Backstop 96 тиков и Voice Dispatch Watch 4
  • вход за 7 дней: 4 голосовые = 0.57 в сутки
  • итого 17.7M токенов в сутки на 0.57 голосовой
ПОСЛЕ
  • n8n TG-триггер на чате «00 Архив ГОЛОСА» -> тот же wake-listener, что уже принимает WAKE-hub
  • сессия поднимается только когда голосовая пришла: ~0.6 сессии в сутки вместо 9
  • крон остаётся, но 1×/сут в ночном окне, как бэкстоп
  • экономия ≈15.6M токенов/сут, это ~87% полосы
  • бонус: задержка разбора с 0–2 часов до секунд
Потребитель: Антон — его голосовая и есть задача. Рельса доклада: та же, что сейчас — дайджест в приватную папку и пинг в 03. Откат: выключить один воркфлоу n8n и вернуть крону 8 запусков, две минуты.

2. GitHub-входящее — дверь построена и ни разу не открывалась

ДО
  • Claude PR Watch Nightly — один тик в 03:40
  • contrib_watch.py лежит на диске без единого расписания
  • реглумент §4.7 требует ответа постороннему инженеру ≤24ч
  • ночной детект плюс утренний ответ = SLA ломается структурно, а не по лени
  • факт 05.08: 5 PR от 3 незнакомцев пролежали 4 суток
  • воркфлоу Github PR webhook активен, исполнений 0
ПОСЛЕ
  • прописать webhook в наших репозиториях на уже существующий воркфлоу
  • событие «чужой PR / коммент / issue» приходит за секунды
  • сессия /pr-reply или /contrib-watch поднимается по факту, а не по будильнику
  • SLA 24ч -> минуты, ночной тик остаётся бэкстопом
  • токенов почти не экономит, платит репутацией по миссии №2
Потребитель: живой внешний инженер, который ждёт ответа. Рельса доклада: строка в 03 и карточка в CRM, как сейчас в /contrib-watch. Откат: снять webhook в настройках репозитория.

3. Ответ Антона «+» в 02 POLICE — 192 тика в сутки ради 7 минут ожидания

ДО
  • Claude Approval Reping на хабе — 96 тиков/сут
  • approval.py due на Маяке — ещё 96 тиков/сут
  • лог за 44 дня, 6118 строк: «nothing due» 2072, «quiet hours» 1407 -> 57% тиков заведомо впустую
  • Антон жмёт «+», машина узнаёт через 0–15 минут
  • в очереди 507 pending-записей
ПОСЛЕ
  • n8n TG-триггер на чате 02 с фильтром по трём подписантам (Антон, Руслана, Наталья)
  • «+» / QQQ / НЕТ ловится за секунды, ACK уходит сразу
  • тик остаётся только под ре-пинг и эскалацию: 1×/час вместо 4×/час
  • −72 тика/сут на хабе, столько же можно снять на Маяке
  • тихие часы отсекает фильтр n8n, а не 1407 холостых запусков питона
Потребитель: та сессия, что задала вопрос и стоит в ожидании. Рельса доклада: ACK «✅ принял #id» в 02, как сейчас. Откат: вернуть крону 15 минут.

Ограничения архитектуры — что n8n НЕ получает

Что НЕ покрыто, честно. Ноут ZBookG8 и машины Наташи с Русланой в инвентарь не входили — считал хаб и Маяк. Поток входящих GitHub-событий и сообщений в личку не замерен, там прямо написано «нет замера». Причина 10-суточного молчания 12 задач остаётся гипотезой; доказан только сам факт молчания.