From 637eb38bceb0f8633f36e0d802729d0a1a89a5f3 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Tue, 4 Aug 2026 13:40:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20unseen-sections-check?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tasks/SPRINT.md | 1 - docs/tasks/items/unseen-sections-check.md | 68 ----------------------- 2 files changed, 69 deletions(-) delete mode 100644 docs/tasks/items/unseen-sections-check.md diff --git a/docs/tasks/SPRINT.md b/docs/tasks/SPRINT.md index 5826844..9438c7f 100644 --- a/docs/tasks/SPRINT.md +++ b/docs/tasks/SPRINT.md @@ -5,4 +5,3 @@ Урожай спринта поднимается `tasks.py list --tag sprint:2026-08-03` — это первая порция переоценки на сессии. ## Набор -- [Активная проверка: поток принёс секцию, которой раньше не было](items/unseen-sections-check.md) — Момент появления новой секции фиксируется в базе, но заметить его может только тот, кто догадается заглянуть в колонку diff --git a/docs/tasks/items/unseen-sections-check.md b/docs/tasks/items/unseen-sections-check.md deleted file mode 100644 index c47dd8b..0000000 --- a/docs/tasks/items/unseen-sections-check.md +++ /dev/null @@ -1,68 +0,0 @@ -# Активная проверка: поток принёс секцию, которой раньше не было - -- **Секция:** ядро -- **Зачем:** Момент появления новой секции фиксируется в базе, но заметить его может только тот, кто догадается заглянуть в колонку -- **Теги:** goal:parsing-and-storage - -Разбор пишется по тем данным, что видел поток, а он приносил только `metrics`, -`workouts` и `stateOfMind`. Не виденны живьём: `symptoms`, `ecg`, -`heartRateNotifications`, `cycleTracking`, `medications`, а также вес — а вес -агенту-медику нужен наверняка. - -Пользователь настраивает оставшиеся метрики на телефоне, так что данные -появятся сами. **Задача — не пропустить момент.** Разбор самих секций сюда не -входит и входить не может: их формы никто не видел, и вслепую разбор -сознательно не пишется. Каждая приехавшая секция станет отдельной задачей — -тогда, когда её будет на чём проверить. - -## Что уже сделано - -Разбор перечисляет непокрытые секции и пишет их в `delivery.uncovered_sections` -(change `2026-08-01-nerazobrannye-sekcii-dostavki`). Событие **фиксируется** — -но ничем не наблюдается: узнать о нём можно только запросом в базу руками. - -Модель под секции с собственным `id` заложена (change -`2026-08-02-trenirovki-i-zapisi`): таблица `record` ключуется парой -`род + id`, и новая секция добавляется **одной строкой** в множество покрытых -имён разбора, а не миграцией. - -## Что известно про сами секции - -Часть вопроса закрыта разбором экспортов (находка 42): в Health эти данные -**есть** и в экспорте присутствуют — `BodyMass` (1127 записей), -`BloodPressureSystolic`/`Diastolic` (по 18), `BodyTemperature` (11), `Headache` -(36), `SexualActivity` (46), `Dietary*` (по 88). Значит вопрос не «есть ли -данные», а «доедут ли они через HAE и в какой форме». - -Остаётся непроверенным `stateOfMind`: в экспорте его нет ни одним типом. Если -подтвердится, что Apple его не выгружает, то экспорт ему не источник истины — -устаревание нижнего слоя к нему неприменимо, держим всегда. - -Давление приезжает обёрткой `Correlation` из двух записей (находка 44) — в -экспорте точно, а вот как его отдаёт HAE, неизвестно. Это первое, на что -смотреть, когда данные появятся. - -## Критерии приёмки - -- имя секции, которого разбор раньше не встречал, порождает событие уровня выше - рутины — оракул: тест на доставке с выдуманной секцией, в логе ровно одна - строка с этим именем -- то же имя во второй доставке события больше не порождает — оракул: тот же - тест на двух доставках подряд, вторая молчит -- список всего, что поток когда-либо приносил и разбор не покрыл, достаётся - одной командой, без ручного SQL — оракул: прогон команды на живой базе, - вывод сходится с `SELECT DISTINCT` по `delivery.uncovered_sections` -- перечень не виденных живьём секций в `docs/research/apple-health.md` сходится - с множеством покрытых имён в `internal/hae` — оракул: глазами, сверка двух - списков поимённо -- повторный прогон живого архива даёт то же состояние — оракул: - `task verify:archive` - -## Рамки - -Схема не трогается: колонка `uncovered_sections` уже есть. Разбор новых секций -не пишется. Данные только читаются; перезапуск сервиса допустим. - -Связано: `docs/architecture.md` → «Неразобранные секции доставки», находки 42, -44; идея [monthly-manual-sections-pass](monthly-manual-sections-pass.md) ждёт -тех же данных.