From b1d3b25827286d5c161f6d838782f23d82d9787a Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Tue, 4 Aug 2026 18:47:16 +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=20read-api-points-period?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tasks/SPRINT.md | 1 - docs/tasks/items/read-api-points-period.md | 36 ---------------------- 2 files changed, 37 deletions(-) delete mode 100644 docs/tasks/items/read-api-points-period.md diff --git a/docs/tasks/SPRINT.md b/docs/tasks/SPRINT.md index d8a2a0c..5402b2b 100644 --- a/docs/tasks/SPRINT.md +++ b/docs/tasks/SPRINT.md @@ -7,7 +7,6 @@ Урожай спринта поднимается `tasks.py list --tag sprint:2026-08-04` — это первая порция переоценки на сессии. ## Набор -- [Точки за период](items/read-api-points-period.md) — Точки лежат в витрине и наружу не отдаются: «вес за год» достаётся только sqlite3 на хосте - [Условный запрос по точкам](items/read-api-points-conditional.md) — Агент опрашивает по расписанию, а каждый повтор стоит полного чтения: на каталоге это 693 мс и +153 МиБ - [Свёртка по сетке](items/read-api-points-bucket.md) — «Шаги за неделю по дням» — базовый запрос трекера и игры, и сегодня его нечем задать - [Порог неполного ведра](items/read-api-partial-bucket.md) — Текущий час неполон всегда, и без порога свёртка отдаёт его наравне с полными — клиент видит провал вместо неизвестности diff --git a/docs/tasks/items/read-api-points-period.md b/docs/tasks/items/read-api-points-period.md deleted file mode 100644 index a2c3873..0000000 --- a/docs/tasks/items/read-api-points-period.md +++ /dev/null @@ -1,36 +0,0 @@ -# Точки за период - -- **Секция:** ядро -- **Зачем:** Точки лежат в витрине и наружу не отдаются: «вес за год» достаётся только sqlite3 на хосте -- **Теги:** goal:read-api, sprint:2026-08-04 - -Потребитель получает значения метрики за период одним запросом `?from&to`, и из -конверта видно, что именно ему отдали: слой, род свёртки и границу окна, в -котором род измерен. - -Форм запроса ровно две, и это один маршрут с необязательным параметром: здесь -только первая — все значения за период (вес, лекарства, симптомы). Разбивка — -соседняя задача. - -**Клиент обязан видеть границы окна измерения.** Род метрики измерен по 48 самым -свежим **общим** часам, а не по последним 48 часам календаря: выключенная -минутная автоматизация HAE останавливает пополнение множества общих часов, и -окно замирает, продолжая объявлять род. Единственный след — `last_hour`; конверт -обязан его нести. - -Форма конверта наследует решение задачи -[о форме провода](read-api-wire-format.md), а не принимает его заново. - -## Критерии приёмки - -- «вес за год» отвечается одним запросом без доступа к файлу базы — оракул: - запрос к поднятому сервису на живом архиве -- в ответе всегда видны `layer`, `aggregation` и `last_hour` — оракул: тест на - форме ответа -- метрика, у которой род не измерен, отдаётся без свёртки и говорит об этом, а - не молчит и не досчитывает — оракул: тест на метрике с неизвестным родом - -## Рамки - -Схема не трогается, данные только читаются, сервис перезапускается. Берётся -после формы провода. Против `./data` — только `task up` / `task run`.