- Правило покрытия получило второй разряд (условный, как у точек), запрет вырождения формы и счёт содержательных элементов ряда: скелет из скаляров и ряд из null больше не затирают маршрут. Победитель внутри доставки стал функцией множества версий — общим помощником с точками, — а провенанс поднимается и при совпавшем хеше, иначе отложенная доставка возвращала витрину к прежнему содержимому. - Одно поле не того типа больше не уносит сущность, а пропуски видны в учётной записи доставки (миграция 00008, NULL = «не измерялось»); каноническая форма считается один раз и вне транзакции; откат бинаря поверх новой схемы отказывает на старте; текст ошибки разбора не несёт значений из тела. - Ревью кода профилем deep (девять проходов) нашло две регрессии и обе закрыты: безусловный второй разряд запирал законный досчёт навсегда, а выбор победителя был квадратичен по числу присланных версий одного ключа.
30 lines
2.1 KiB
Markdown
30 lines
2.1 KiB
Markdown
# Активный алерт «данных нет N часов»
|
|
|
|
**Приоритет:** низкий
|
|
|
|
Пропажу потока сейчас замечает человек. `/stats` покажет факт, но только если
|
|
туда заглянуть — а заглядывают ровно тогда, когда уже что-то заподозрили.
|
|
|
|
Активное уведомление закрывает разрыв: сервис сам сообщает, что данных нет
|
|
дольше порога. Канал — тот же, что у остальных моих проектов.
|
|
|
|
Порог не единый: быстрый проход идёт каждые 5 минут, но ночью телефон
|
|
заблокирован и тишина штатна (находка 28). Значит порог считается по времени
|
|
суток или по последней успешной доставке каждой автоматизации отдельно.
|
|
|
|
Приоритет низкий, пока сервис на рабочей машине и я вижу его каждый день.
|
|
После деплоя на rivendell поднимется.
|
|
|
|
|
|
## Источник алерта не может жить внутри `serve`
|
|
|
|
Отказ стража версии схемы (база новее бинаря) останавливает процесс, а
|
|
`restart: unless-stopped` даёт цикл перезапуска. Значит алерт «данных нет N
|
|
часов», живущий внутри сервиса, на эту причину остановки не сработает **по
|
|
построению** — он не поднимется вместе с ним. Обоснование стража («откат делает
|
|
оператор, он в этот момент рядом») верно для ручного отката и не покрывает
|
|
перезапуск хоста или откат деплоя.
|
|
|
|
Пришло из задачи «Дозакрыть находки ревью по слиянию сущностей» (проход `ops`,
|
|
`negative`).
|