AURORA-1848: тяжёлые GET — готовый JSON из Postgres без pydantic-модели на строку (A) #239

Open
aep wants to merge 13 commits from feat/233-aurora-1848-sheet-json-no-pydantic into test

13 Commits

Author SHA1 Message Date
Andrey Epifancev
b612178b12 fix(tests): тесты тяжёлых GET — непустые данные свода 2, gzip, правки докстрингов
Фикстура свода 2 достроена до 6 строк на GO и RF по двум орг. единицам с разными section_code;
все случаи SVOD2_CASES проверяют непустоту. Тест rf-rollup переименован (фиксирует существующий дефект),
добавлен тест gzip, в api_split.py оставлены только GET-места.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:43:31 +04:00
Andrey Epifancev
38990dcaf6 docs(openspec): aurora-1848 — решения R-1..R-5 без обсуждения
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:40:58 +04:00
Andrey Epifancev
88c37f97fa fix(perf): compare_responses — устойчивый dump, не-JSON тела, strip_response без result
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:30:49 +04:00
Andrey Epifancev
b3899cf6dc perf(analysis): compare_responses — снимок и сравнение ответов тяжёлых GET
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:29:05 +04:00
Andrey Epifancev
d9aa47388a perf(analysis): api_split — размер ответа на проводе (wire_bytes)
Цикл замера вынесен в measure(); добавлен wire_bytes (num_bytes_downloaded,
байты после сжатия) рядом с декодированным размером. В .md - колонка
«на проводе, МБ». Docstring: актуальные места X-DB-Time-Ms и остаток после
задач A (склейка строк, gzip, передача, распаковка; без pydantic).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:27:08 +04:00
Andrey Epifancev
604e277371 perf(api): отчёты и сводные проектов отдают готовый JSON из Postgres
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:24:14 +04:00
Andrey Epifancev
ca7160124a perf(api): GET сводов 1 и 2 отдают готовый JSON из Postgres
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:16:36 +04:00
Andrey Epifancev
d8dba2f7be perf(api): GET листа отдаёт готовый JSON из Postgres без SheetResponse на строку
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:12:09 +04:00
Andrey Epifancev
7094fe839f perf(api): хелпер ответа из готовых JSON-строк и SQL-выражение строки
Добавлены list_json_response (обёртка BaseListResponse из готовых строк),
ROW_COLUMNS, row_json_select и fetch_row_texts для тяжёлых GET (AURORA-1848).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:07:40 +04:00
Andrey Epifancev
0175759f95 test(api): фикстура db_session и снимок схемы OpenAPI тяжёлых GET
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:06:16 +04:00
Andrey Epifancev
1d885d1bbd docs(plan): aurora-1848 — план реализации
Две фазы: A (feat/233-aurora-1848-sheet-json-no-pydantic, PR в test) и B (feat/233-aurora-1848-sheet-json-no-pydantic-b, стеком на A). Решения планирования дописаны в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:02:48 +04:00
Andrey Epifancev
3c5487c458 docs(openspec): aurora-1848-sheet-json — пороги, порядок PR, окружение тестов
Порог: свод 2 GO −30 %, лист FORM_2/AHR −10 % и меньший размер; пороги
не условие мержа, корректность (сравнение exact/strip-nulls) — жёсткое.
Решения контроллера: план в две фазы, ветка B стеком на A, archive после
merge B, база сравнения, замеры контроллером, pytest на PG16.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:41:01 +04:00
Andrey Epifancev
b701a4f5ff docs(openspec): aurora-1848-sheet-json — proposal, spec, design
Тяжёлые GET листов, сводов и отчётов проектов: готовый JSON из Postgres
без pydantic-модели на строку (PR A) и без null-полей в data листа и
сводов с правкой фронта (PR B). Требования — sheet-read-api и
realtime-sheet-updates; дизайн, риски, тесты и сценарий замера — design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:24:23 +04:00