local-research: разобран формат экспорта Apple за 5.5 лет

- девять экспортов, версии 11→13→14; ни один тип записи не исчез, только
  добавлялись — разбор можно писать аддитивно
- Correlation (давление) появился только в 2026 и ломает парсер по одним Record;
  имя файла локализовано, DTD расходится с данными
- коды HealthKit переименовываются: те же записи сна приезжают как Asleep из
  экспорта 2021 и как AsleepUnspecified из свежего
This commit is contained in:
av
2026-08-01 14:20:54 +03:00
parent 7ed82af450
commit 7ee55057e0
4 changed files with 169 additions and 10 deletions
+13 -3
View File
@@ -11,9 +11,19 @@
появятся сами. Задача — не пропустить момент: убедиться, что новые секции
разбираются, а не молча падают в `parse_status`.
Отдельный вопрос, на который ответят эти же данные: есть ли эти секции в родном
экспорте Apple. Если нет — экспорт им не источник истины, и устаревание
нижнего слоя к ним неприменимо, держим всегда.
Часть вопроса закрыта разбором экспортов (находка 42): в Health эти данные
**есть** и в экспорте они присутствуют — `BodyMass` (1127 записей),
`BloodPressureSystolic`/`Diastolic` (по 18), `BodyTemperature` (11), `Headache`
(36), `SexualActivity` (46), `Dietary*` (по 88). Значит вопрос не «есть ли
данные», а «доедут ли они через HAE и в какой форме».
Остаётся непроверенным `stateOfMind`: в экспорте его нет ни одним типом. Если
подтвердится, что Apple его не выгружает, то экспорт ему не источник истины —
устаревание нижнего слоя к нему неприменимо, держим всегда.
Давление приезжает обёрткой `Correlation` из двух записей (находка 44) — в
экспорте точно, а вот как его отдаёт HAE, неизвестно. Это первое, на что
смотреть, когда данные появятся.
Готово, когда каждая новая секция либо разобрана, либо явно описана в
`docs/local-research.md` как не пришедшая, и ни одна не числится в ошибках