- каждая запись каталога задач получила тип вместо тега kind: и префикса заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок секций канонический - поправлены протухшие факты: нереализованные маршруты Read API, MCP и `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию диффа, периметр перестал дублировать security.md - замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек storage и parsing
1.9 KiB
🔬 NDJSON-поток для больших выборок Read API
- Тип: research
- Категория: Ядро
- Зачем: Выборка нижнего слоя за месяц не влезает в один JSON-ответ — либо поток, либо пагинация
- Теги: goal:read-api
Read API отдаёт ответ одним JSON. Для выборок нижнего слоя за длинный период
это не работает: heart_rate в слое raw — порядка сотни тысяч координат в
сутки, и месяц такого ряда не влезет ни в память клиента, ни в разумный ответ.
Сейчас проблема закрыта с другой стороны — правилом размера ответа: сервер сам берёт сетку погрубее, когда разбивка не задана, и отвечает ошибкой со списком доступных сеток, когда задана явно. Это защищает агента с ограниченным контекстом, но не помогает клиенту, которому действительно нужен весь ряд — например, разовой выгрузке в другой инструмент.
Почему идея, а не задача: неизвестно, появится ли такой клиент. Если появится, выбор между NDJSON-потоком и курсорной пагинацией зависит от того, читает он последовательно или с возвратами.
Связано: docs/architecture.md → «Свёртка и размер ответа», задача
read-api-response-limit (правило размера ответа проектируется там).