Files
healthlog/docs/tasks/items/rebuild-comparison-check.md
T
av 3d24248075 docs: документация приведена к канону av-dev-pm 4
- каждая запись каталога задач получила тип вместо тега kind: и префикса
  заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок
  секций канонический
- поправлены протухшие факты: нереализованные маршруты Read API, MCP и
  `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию
  диффа, периметр перестал дублировать security.md
- замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек
  storage и parsing
2026-08-05 19:09:35 +03:00

2.9 KiB

Сверять живую витрину с пересборкой

  • Тип: feature
  • Категория: Ядро
  • Зачем: reindex печатает оба отпечатка, но сравнивать их некому — расхождение с журналом молчит
  • Теги: goal:journal-and-rebuild

healthlog reindex печатает отпечаток собранной витрины и отпечаток рабочей — то есть данные для сверки уже есть, и сравнивать их некому. Расхождение живого состояния с тем, что даёт проигрывание журнала, сегодня обнаруживается только тем, что кто-то вручную запустил пересборку и посмотрел на два числа.

Между тем расхождение — не гипотеза. Известный путь к нему записан блокером «Держать порядок журнала при конкурентных приёмах»: доставка, свёрнутая раньше своей предшественницы, уходит в failed навсегда, и живая витрина расходится с пересборкой молча. Пока тот предел не закрыт, сверка — единственный способ узнать, что он сработал.

Инвариант «состояние есть свёртка журнала» проверяем ровно этим: пересобрать в отдельный файл (рабочая база не трогается — это уже так и устроено), сверить отпечатки, расхождение — событие, которое видно. Прогон не бесплатный (на квартальном журнале десятки минут), поэтому это регламент, а не фоновая задача сервиса.

Развилка при взятии: кто запускает — cron на хосте рядом с деплоем или сам сервис по расписанию. Первое честнее (пересборка уже сейчас команда, а не режим сервиса), но требует места под второй файл базы.

Готово, когда расхождение витрины с пересборкой перестаёт зависеть от того, догадался ли человек посмотреть.

Связано: cmd/healthlog/reindex.go, наблюдаемость, деплой.

Двигает строку «Завершения» цели: «Расхождение живой витрины с пересборкой замечает сервис, а не человек».