- каждая запись каталога задач получила тип вместо тега kind: и префикса заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок секций канонический - поправлены протухшие факты: нереализованные маршруты Read API, MCP и `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию диффа, периметр перестал дублировать security.md - замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек storage и parsing
44 lines
3.0 KiB
Markdown
44 lines
3.0 KiB
Markdown
# ✨ Сворачивать точки по заданной сетке
|
|
|
|
- **Тип:** feature
|
|
- **Категория:** Ядро
|
|
- **Зачем:** «Шаги за неделю по дням» — базовый запрос трекера и игры, и сегодня его нечем задать
|
|
- **Теги:** goal:read-api, sprint:2026-08-04
|
|
|
|
«Шаги за неделю по дням» отвечаются одним запросом `?from&to&bucket`, и род
|
|
свёртки берётся измеренным, а не угаданным.
|
|
|
|
Род агрегации измерен каталогом (change `2026-08-02-katalog-i-rod-agregacii`):
|
|
сверка минутного слоя с часовым разложила метрики живого корпуса на
|
|
накопительные и мгновенные, не сойдясь ни на одной. Свёртка в ответе опирается
|
|
на это измерение и **только** на него: род неизвестен — свёртки нет.
|
|
|
|
Инвариант, который здесь легче всего нарушить: **нижний слой HAE не
|
|
суммируется** ни при какой сетке. Это интерполяция, а не сэмплы, и суммирование
|
|
завышает втрое.
|
|
|
|
Порог неполного ведра и предел размера ответа — соседние задачи; здесь они
|
|
берутся в том виде, в каком есть на момент вливания, и не проектируются.
|
|
|
|
Двигает строку «Завершения» цели: «Точки сворачиваются по заданной сетке измеренным родом агрегации».
|
|
|
|
## Затрагивает
|
|
|
|
Маршрут `GET /api/v1/metrics/{name}` — параметр запроса `bucket`, поля
|
|
`bucket` и `aggregation` в конверте ответа, код отказа на метрике с неизвестным
|
|
родом. Схемы и формата на диске не трогает.
|
|
|
|
## Критерии приёмки
|
|
|
|
- «шаги за неделю по дням» отвечаются одним запросом, и в ответе названы
|
|
фактические `bucket` и `aggregation` — оракул: запрос к поднятому сервису на
|
|
живом архиве
|
|
- нижний слой HAE не суммируется ни при какой сетке — оракул: тест на
|
|
накопительной метрике, у которой есть и нижний, и часовой слой
|
|
- метрика с неизвестным родом не сворачивается вовсе и отвечает отказом с
|
|
названной причиной, а не значением — оракул: тест
|
|
|
|
## Рамки
|
|
|
|
Схема не трогается, данные только читаются. Берётся после точек за период.
|