свёртка доставки в объекты и сшивка с приёмом

- internal/fold — свёртка по идентификатору доставки, тело из архива: тот же
  код, каким пойдёт пересборка витрины
- приём зовёт свёртку на context.WithoutCancel с собственным дедлайном;
  исход разбора на код ответа не влияет
- слой доставки хранится в delivery.derived_layer и наследуется от
  ПРЕДШЕСТВУЮЩЕЙ доставки автоматизации: без границы по времени свёртка
  переставала быть функцией от префикса журнала (1737 объектов против 1742)
- task verify:archive — сходимость на живом архиве, 99 доставок из 99
This commit is contained in:
av
2026-08-01 18:03:59 +03:00
parent c9ddf0b4dd
commit 32f21044e4
17 changed files with 898 additions and 36 deletions
+15 -5
View File
@@ -410,14 +410,24 @@ hour метки выровнены на час heart_rate 00:00:00
(находка 31). Правило:
1. **Плотная метрика** (не меньше десяти точек в доставке) классифицируется
**сама по себе** по выравниванию своих меток. У десяти несуммированных
точек шанс всем лечь на ровную минуту исчезающе мал.
**сама по себе** по выравниванию своих меток — по **самому мелкому**
встретившемуся, а не преобладающему: метка ровно на часе одновременно
является и минутной, и у плотных метрик они перемешаны (`active_energy`
1320 минутных и 21 часовая). У десяти несуммированных точек шанс всем лечь
на ровную минуту исчезающе мал.
2. **Редкая метрика** (меньше десяти точек) наследует **преобладающий слой
доставки** — самый мелкий среди плотных. У неё выравнивание ничего не
доказывает, а Apple многие редкие показатели пишет прямо на границе часа.
3. Плотных метрик в доставке нет вовсе — слой наследуется от предыдущей
доставки той же автоматизации; если её не было, берём заголовок
(`Minutes``minute`, `Hours``hour`, иначе `raw`).
3. Плотных метрик в доставке нет вовсе — слой наследуется от **предшествующей**
доставки той же автоматизации; если её не было, берём **надёжный** заголовок
(`Minutes``minute`, `Hours``hour`). Иначе точки не сохраняются вовсе:
молчаливый `raw` создал бы призрачный разрез, который поедет в каталог и в
правило Read API «самый мелкий слой, покрывающий диапазон».
Слово «предшествующей» в третьем пункте несёт вес: слой обязан быть функцией от
**префикса журнала**. Наследование от последней доставки вообще делает свёртку
зависящей от истории, и пересборка даёт не то состояние, что живой приём —
поймано прогоном архива, 1737 объектов против 1742 (docs/review-journal.md).
Классифицировать доставку целиком нельзя: при перенастройке автоматизации
приезжают **смешанные доставки**, где часть метрик уже минутная, а часть ещё