simbiot-harness/docs/digests/hour-2026-10-03-1000.md

5.2 KiB
Raw Blame History

Дайджест часа 2026-10-03 10:00–11:00 (UTC) — тик hour-497506

Главное: авто-схлопывание старых фейлов (просьба Alex) — в проде

  • Фреймворк-фича сделана и запушена (коммиты d8a7c89 + 3b3e3d1, база 03d3dff):
    • новый статус closed («архив»): событие TaskClosed, проекция в es.py; терминальный, но обратимый (requeue принимает closed → ready);
    • демон-архиватор: archive_stale_failed() в delivery-демоне (каждые 15с) — failed старше 24ч автоматически → closed; now — параметр (тестиру);
    • CLI: simbiot close <id> [-r reason] (только failed, идемпотентен);
    • дашборд: порядок ready→running→failed→done→архив; «закрыты» под одной строкой-счётчиком (тумблер раскрывает полностью); counter «архив» в статусбаре; .pill.closed;
    • тест tests/test_close_stale_failed.py — 15 проверок (порог через симуляцию +25ч, done не трогается, полный цикл closed→ready→failed→closed) — все PASS; смежные тесты (batch/delivery/guards/timeout) — зелёные.
  • Бонус-фикс (3b3e3d1): батч-фаза тика закрывает TaskCompleted только ещё-running задач — requeue'd/close'd решения воркера дайджестом тика больше не перезаписываются (причина найдена при работе над e-261003094432: иначе requeue'd задачи нечестно закрывались бы дайджестом поверх готовых).

Эскалации

  • e-261003094432-fd7c10 (warn, min→hour) — ЗАКРЫТА (acked): просили «штатный способ failed→done». Дано лучше: failed→closed (архив, обратимо) + авто по 24ч. Полная цепочка ea2fa5: failed 09:10 → requeue 09:42 → claimed 10:00 → complete → done.
  • Открытых эскалаций: 0.

Зонтик-задача ea2fa5 [L] — done

  • Закрыта complete'ом с объяснением: дубль двух живых тикетов, работа идёт подзадачами (см. ниже). Написано и в TG.

Батч 6 задач: 1 закрыта, 5 — честно requeue'd в ready

  • ✅ t-261003090843-ea2fa5 [L] — done (зонтик, см. выше).
  • ↩️ 6da069 (авто-мониторинг ошибок портала), 950702 (виджет обратной связи), 579783 (экспорт simbiot-агента), a1f38c (выжимки-память в экспорт), 20b6fb (выжимка Гермеса при переносе) — контекст часа ушёл на фикс закрытия, сами задачи не начинались → каждая возвращена requeue с осмысленным reason «час-тик ушёл на фикс, не начиналась» — для следующего такта, очередь в правильном порядке (6da069 старейшая).
  • Готовность к след. такту: 5 ready [M], суммарно ~300м — не влезут целиком в один час-тик, идти строго по очереди от старейшей.

Входящие TG

  • m-516173562 (Alex, 10:00) «лучше да сделать авто схлопывание тех фейлд которые старше 24 часов» — закрыто: мин-тик ответил в 10:02:43 (JS-схлопывание), этот тик отправил follow-up (tg-notify, ключ hour-261003-ecfd7c-followup): механика closed/архива + requeue + simbiot close, коммиты, тесты. Повтор reply SKIP-нулся идемпотентность — дубля нет.

Статусы

  • Демон рестарта: safe-restart (pid 460899, с 10:12) ловит тихое окно — оба коммита подхватятся рестартом без битья по живым тикам (orphan-requeue страхует).
  • Дашборд: перезапущен сразу, API отдаёт closed (tasks_by_status: {ready,running,failed,done,closed}).
  • Доска: ready 5 / done 91 / failed 0 / closed 0.
  • AUM: не замерен (burn 24ч = 171.1, 7д = 2521.59 у.е. — минус к AUM).
  • Спенд тика: hour 168 LLM-вызовов / 9.16M prompt + 96K completion; min 102 вызовов / 1.19M prompt.

Следующему тику

  • Батч: 6da069 → 950702 → 579783 → a1f38c → 20b6fb (не пересортировывать).
  • Если safe-restart не успел к 11:00 — проверить tail /tmp/simbiot-safe-restart.log, повтор scripts/safe-restart.sh.
  • Проверить первый реальный авто-закрыт в архиве (когда появится старый failed).