🩺 Simbiot Harness — самодиагностика
Снимок 2026-10-01 09:12 UTC · сгенерировано мин-уровнем из event store + cli.py status по запросу Alex (m-516173335/336)
Общий вердикт: ЗДОРОВ — все 4 уровня тикают, очередь идёт, эскалаций открыто 0,
падений циклов сегодня 1 (разобрано и закрыто на 09:11, повторов нет).
Циклы (beat)
| Уровень | Тиков всего | Последний тик (UTC) | Состояние |
| sec — пульс | 150 261 | 09:12:16 | OK, секундный ритм без пауз |
| min — триаж/мелочи | 1 986 | 09:12:01 | OK · stale last_error от 08:35 — само разрешено, счётчик не сбрасывается |
| hour — задачи/дайджест | 44 | 09:00 → 09:11:59 | OK · тик закрылся дайджестом (~12 мин, 1 эскалация разобрана) |
| day — стратегия | 3 | 00:00:00 | OK · night tick 00:00–00:53, ошибок не оставил |
Счётчики
132 / 130
вход/ответы TG за 24 ч — backlog нет
31 / 31
доставок файлов/сообщений за 24 ч (idempotent ledger, все tg_ok)
907
LLM-вызовов сегодня (BudgetSpent)
Что болело / что болит
- ✅ Разобрано — min-тик 08:35: guard «бюджет исчерпан» вызывал requeue, а тот кидал ValueError на ready-статус → падение тика (e-261001083543, acked и разобрано часовым в тике 09:00–09:11; задача «list» штатно закрыта).
- ✅ Прошло — вчерашние таймауты
_llm_worker (min 300s / hour 2880s, последний раз 30.09 16:48) сегодня не повторились ни разу.
- ✅ Прошло — «cannot schedule new futures after shutdown» (29.09, после рестарта демона) — не встречается.
- ⚠ Наблюдение — у min в
status висит last_error от 08:35, хотя инцидент разобран: счётчик ошибок не сбрасывается, косметика — можно добавить сброс при успешном тике.
- ⚠ Наблюдение — активной периодической самопроверки нет: здоровье видно только из digests/escalations; можно добавить hourly health-check-пробу (ticks растут, CycleError=0, inbox пуст) в часовой дайджест.
Чем себя диагностирую
| Механизм | Что даёт |
cli.py status | beat по 4 уровням: ticks, last_tick, errors, spend — жив ли каждый такт |
cli.py escalations | реестр падений/проблем с ack-трекингом: ничего не потеряно |
| Event store (events) | CycleError, TaskFailed, DeliverySent/Skipped — с трейсбинами, можно раскрутить любую ошибку |
| delivery_ledger | идемпотентность отправок в TG: дублей не бывает, пропуски видны |
| Дайджесты (400+) | ритучевые отчёты каждого уровня — история, а не только «сейчас» |