Files
healthlog/docs/tasks/items/read-api-partial-bucket.md
T
av 3d24248075 docs: документация приведена к канону av-dev-pm 4
- каждая запись каталога задач получила тип вместо тега kind: и префикса
  заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок
  секций канонический
- поправлены протухшие факты: нереализованные маршруты Read API, MCP и
  `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию
  диффа, периметр перестал дублировать security.md
- замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек
  storage и parsing
2026-08-05 19:09:35 +03:00

3.3 KiB

Отличать неполное ведро от полного

  • Тип: feature
  • Категория: Ядро
  • Зачем: Текущий час неполон всегда, и без порога свёртка отдаёт его наравне с полными — клиент видит провал вместо неизвестности
  • Теги: goal:read-api, sprint:2026-08-04

Ведро, в котором известна не вся сетка, отличимо от полного — а полярность порога названа вслух, а не выводится читателем из умолчания.

Измерению рода агрегации порог не понадобился: у него две конкурирующие гипотезы, и неполный час не сходится ни с одной сам собой. Свёртке в ответе он нужен — текущий час неполон всегда, и без порога накопительная метрика показывает за него провал вместо неизвестности.

Готовые решения задают порог противоположно. Graphite xFilesFactor — доля обязательно известных точек (умолчание 0.5 при свёртке на записи и 0 при отдаче ответа: один параметр с двумя умолчаниями), RRDtool xff — доля допустимо неизвестных. Обе величины выглядят как «0.5», означая разное. Полярность придётся назвать вслух, иначе через полгода два места кода поймут поле по-разному — и разойдутся молча.

Двигает строку «Завершения» цели: «Неполное ведро отличимо от полного, и полярность порога названа».

Затрагивает

Форма ответа свёртки — признак неполного ведра рядом со значением. Конфиг и его образцы — порог с названной полярностью. Раздел о свёртке в docs/architecture.md. Схемы и формата на диске не трогает.

Критерии приёмки

  • полярность и умолчание порога названы в docs/architecture.md одной формулировкой, и там же сказано, у какого из двух прототипов взято — оракул: глазами по разделу
  • ведро ниже порога помечено неизвестным, а не отдано значением — оракул: тест на границе: ведро ровно на пороге и на единицу ниже
  • текущий незакрытый час не выглядит провалом накопительной метрики — оракул: запрос за сегодня на живом архиве

Рамки

Схема не трогается, данные только читаются. Берётся после свёртки по сетке.