идентичность эпизода — интервал: блокер снят измерением

- находка 47: ключ (date,start,end) даёт 174 координаты сна против 170 по
  метке и ноль столкновений внутри доставки против 33; value в ключе лишний
- UUID в выгрузку Apple не попадает, другой идентичности у эпизода нет
- поэпизодный sleep_analysis вернулся в scope razbor-metrik-v-obekty
This commit is contained in:
av
2026-08-01 17:09:45 +03:00
parent 809153e03f
commit 3c9d226a34
11 changed files with 159 additions and 122 deletions
@@ -23,6 +23,10 @@
- **Идентичность точки — координаты** (`метрика + слой + метка`). `source` в
ключ не входит: он нестабилен и меняется задним числом. При столкновении
выигрывает **более полная** точка, а не последняя пришедшая.
- **Точка-интервал адресуется интервалом**: `метрика + слой + начало + конец`.
Под одной меткой лежит до трёх эпизодов сна, и 33 столкновения из измеренных
происходят внутри одной доставки, где тай-брейк по времени приёма неприменим.
Эпизодность выводится из формы точки, а не из списка имён метрик.
- **Канонизация с округлением** чисел до ~12 значащих цифр; хеш канонической
формы — детектор изменений, а не ключ.
- `sleep_analysis` разводится на два имени: поэпизодное и суточную сводку —
@@ -43,13 +47,7 @@
Сходимость на них проверяется скриптом поверх архива, а не командой сервиса;
- **словарь категориальных значений** (переведённые строки → коды HealthKit) —
отдельная задача; пока строка хранится дословно и без кода рядом;
- **род агрегации и каталог разрезов** — отдельная задача, она следующая;
- **хранение поэпизодного `sleep_analysis`** — вынуто ревью дизайна блокером
`identichnost-epizodnyh-metrik`: координатный ключ его схлопывает (измерено:
31 координата в 21 доставке из 89 задвоена внутри одной доставки, где
тай-брейк по времени приёма неприменим в принципе). Точки разбираются и
считаются, но не сохраняются; тела в архиве, подберёт пересборка.
Суточной сводки это не касается.
- **род агрегации и каталог разрезов** — отдельная задача, она следующая.
## Capabilities