75 Commits

Author SHA1 Message Date
aep
d702e9d5aa Merge pull request 'AURORA-1839: мемоизация ячеек таблицы листа' (#240) from feat/234-aurora-1839-cell-memo into test 2026-11-11 18:11:32 +03:00
Andrey Epifancev
f9fbd7399f openspec: архив aurora-1843-svod2-server-paging (PR #241/#243/#245)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 14:40:36 +04:00
Andrey Epifancev
667cfd8353 docs(openspec): aurora-1843 — нумерация решения O-1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:59:23 +04:00
Andrey Epifancev
4e1803568f Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf 2026-11-08 11:59:18 +04:00
Andrey Epifancev
fb87a6f4f6 docs(openspec): aurora-1843 — нумерация решения O-1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:59:11 +04:00
Andrey Epifancev
0ad9ae32d2 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web 2026-11-08 11:58:52 +04:00
Andrey Epifancev
77bfdf69fd perf(svod2): v_svod2_facets с SET jit TO off (O-1)
JIT добавлял ~1,4 с к вызову с буквальными параметрами (стенд масштаба 1: 1500 мс против 43 мс).
Тест: функции svod2 имеют jit=off. Убран тест формы плана: функция с SET не разворачивается.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:58:31 +04:00
Andrey Epifancev
58db6d7900 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:46:06 +04:00
Andrey Epifancev
5f14af7252 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:45:57 +04:00
Andrey Epifancev
5db0bd4cee fix(svod2): серверный поиск совпадает с экраном — пустое поле contract_detail не затирает contract_summary (R-30, решение пользователя 08.11)
В v3.svod2_lines counterparty/reference/deadline/comment берутся как COALESCE(detail, summary).
Оракулы (Python, JS, векторы) отбрасывают null при слиянии, legacy_full() снова читает
ответ без параметров. Тесты: пустое поле detail, отсутствие строки detail, перекрытие непустым detail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:45:37 +04:00
Andrey Epifancev
d959e2ebfc Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:08:17 +04:00
Andrey Epifancev
2f5cde8c4a Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:08:01 +04:00
Andrey Epifancev
32d81d82e8 docs(openspec): aurora-1843 — маркеры решений переноса R-23..R-29 (R-9..R-22 заняты в PR 2 и 3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:07:36 +04:00
Andrey Epifancev
15957a3ba3 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:06:54 +04:00
Andrey Epifancev
6424cd168f docs(openspec): aurora-1843 — маркеры R-11..R-17 (R-9, R-10 заняты фронтовой веткой)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:06:39 +04:00
Andrey Epifancev
655a5043ab docs(openspec): aurora-1843 — решения R-9..R-15 при переносе на test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:06:06 +04:00
Andrey Epifancev
61541c74a7 Merge origin/feat/236 (фронт) в feat/236 (perf): api_split через measure() с поддержкой ответа-словаря (facets)
Конфликт perf/analysis/api_split.py: взят measure() из test (wire_bytes, AURORA-1848),
в него перенесена обработка нечислового result (facets возвращает объект, строк нет).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:04:41 +04:00
Andrey Epifancev
e05e3774f0 Merge origin/feat/236 (сервер) в feat/236 (фронт): страницы свода 2 поверх displayFactor и фиксированной высоты строк
Конфликты Svod2Page.jsx: сохранены окно страниц, заглушки и фасеты PR; добавлены
factor/formatHeaderUnit (AURORA-1899/1900). Измерение высоты строки по offsetHeight
заменено фиксированной высотой 2.75rem (AURORA-1836): px считается из rem без чтения layout,
заглушки получают высоту в rem.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:04:11 +04:00
Andrey Epifancev
79c841dcaf Merge origin/feat/220 в feat/236 (сервер): свод 2 постранично поверх test (AURORA-1843)
Конфликты summary.py, summary_repository.py, summary_service.py,
test_summary2_related_records_sql.py: сохранены новые методы страниц и фасетов,
режим без параметров идёт по быстрому JSON-пути test (AURORA-1848).
Миграция переименована в 0057 (down_revision 0056); в svod2_lines добавлена
поправка 0050 (СПОД аренды, только ГО). Эталон svod2_legacy_golden перезаписан
под ответ без null-полей; legacy_full оракулов строится прямым вызовом функции.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:02:30 +04:00
Andrey Epifancev
54f5af6148 fix(table): прокрутка не сбрасывается наверх при перетаскивании ширины колонки (H-1)
MRT при isResizingColumn подменяет MRT_TableBody на Memo_MRT_TableBody, тело
монтируется заново, виртуализатор строк стартует с initialOffset=0 и сбрасывает
scrollTop. rowVirtualizerOptions теперь функция от table, initialOffset читает
текущий scrollTop контейнера. Воспроизведено на чистом MRT и на test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:25:41 +04:00
Andrey Epifancev
6255f4a250 Merge origin/test в feat/234-aurora-1839-cell-memo
Конфликты: RealtimeTable.jsx (импорты: оставлены getRowId из test и утилиты мемоизации ветки),
TableHead.jsx (импорты: объединены columnResizeInfo ветки и deadlineFormat/ROLES_NAME_ID/headerYearUtils/ColumnResizer из test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:25:28 +04:00
Andrey Epifancev
2436a6b3f7 docs(openspec): aurora-1848 — решения R-6..R-8 без обсуждения
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:14:49 +04:00
Andrey Epifancev
ece050d19f fix(alembic): устранить дубликат revision=0051 в test (AURORA-1850)
При слиянии PR #244 в test оказались две миграции с revision="0051"
и down_revision="0050" (upd_form_cells_full_rows из #231 и
upd_form_cells_subtree из #244) — неоднозначная цепочка alembic.
Фикс-коммит с переименованием 0051→0052 для #244 был подготовлен
локально, но потерялся при повторном force-push после блокировки
классификатором permission — слияние прошло с исходной (дублирующейся)
нумерацией. Переносим upd_form_cells_subtree на 0052.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-01 12:00:14 +04:00
Andrey Epifancev
2f1dce2c61 docs(openspec): aurora-1850 — рулинг R-2 заменяет skip теста track_functions (M-3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
daad7a4bc0 docs(openspec): aurora-1850 — решения Task 4 (T4.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
8f82f5fb9b docs(openspec): aurora-1850 — решение по соединению скелета (T3.1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
0f889c8d5e docs(openspec): aurora-1850 — решение посева снимка GET (T1.2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
f1d4f2644c docs(openspec): aurora-1850 — тела функций до 0051 (pg_get_functiondef, ревизия 0050)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
4c493bb269 docs(openspec): aurora-1850 — рулинги контроллера R-1..R-4, R-14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
93ea5b5c42 docs(plan): aurora-1850 — план реализации
План в 10 задач по design.md: тестовая БД dfip_1850 на 0050 и тела функций
до 0051 (D8), красный тест эквивалентности, построители с фокусом и
_sort_rank (FORM_2, затем FORM_1 и v_form1_view), _form_affected_rows,
дельта АХР, jit = off, защита 0037, документация. Решения плана дописаны
в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
661a3571b5 docs(openspec): aurora-1850 — решения 28.10 по JIT и условию мержа, решения контроллера
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
4251490fa9 docs(openspec): aurora-1850-upd-form-cells-subtree — proposal, spec, design
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
2be6f08555 docs(openspec): aurora-1843 — решения 29.10 (полосы загрузки, ускорение поиска) и рулинги R-12…R-22, O-8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:31:03 +04:00
Andrey Epifancev
3e9979d09b docs(openspec): aurora-1843 — решения фазы 3 (R-11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 00:49:04 +04:00
Andrey Epifancev
9ffb47d4e7 docs(openspec): aurora-1843 — решения R-9, R-10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 00:03:15 +04:00
Andrey Epifancev
100dba4a90 docs(openspec): aurora-1843 — решения фазы 1 (R-5..R-8)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:10:42 +04:00
Andrey Epifancev
28b238cea4 docs(openspec): aurora-1839 — выровнять D1 «Уточнение» с фактом table-core (I-3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 22:00:28 +04:00
Andrey Epifancev
472f2ea222 docs(openspec): aurora-1839 — факты table-core по закреплению, новая раскладка pinned-resize, решения 21 и 22
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 21:49:58 +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
651d71f7c0 docs(openspec): aurora-1839 — решение 20 (допущения сценария pinned-resize)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 21:37:35 +04:00
Andrey Epifancev
b7971e5cd6 docs(openspec): aurora-1839 — уточнить допущение table-core про закрепление (O-1, решения 18-19)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 21:16:05 +04:00
Andrey Epifancev
dbf90477d2 docs(openspec): aurora-1843 — рулинги контроллера R-1..R-4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:08:18 +04:00
Andrey Epifancev
c7ef4032d6 docs(plan): aurora-1843 — план реализации
Три фазы — три PR стеком: сервер (SQL, API, тесты-оракулы первыми),
фронт (окно страниц в той же таблице), стенд замеров. Решения плана
дописаны в design.md (#23–#34).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:06:06 +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
a87cb57728 docs(plan): aurora-1839 — план реализации
План: 6 задач исполнителей (haiku: 1–2, sonnet: 3–6), финальное ревью opus,
PR в feat/226-aurora-1837-cell-styles-css и точка ожидания замеров.
Решения стадии плана дописаны в design.md (13–17).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:00:07 +04:00
Andrey Epifancev
48f422df3a docs(openspec): aurora-1843 — без ограничения длины поиска и фильтров (#22 отменено)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:49:25 +04:00
Andrey Epifancev
9d68cd5e1a docs(openspec): aurora-1843 — поведение свода 2 без изменений, решения 28.10
Поиск, колоночные фильтры, варианты фильтров и «Найдено N из M» — с точной
семантикой экрана (matchesSearch, MRT equals, faceting TanStack); регистр
без зависимости от локали БД; пороги — цели, а не условие слияния;
решения контроллера (три фазы/ветки, prefetch страницы 1, окружение тестов).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:48:30 +04:00
Andrey Epifancev
045aa4ba18 docs(openspec): aurora-1839-cell-memo — пороги не блокируют слияние, замеры у контроллера
Решения 28.10: пороги производительности — цель, недобор в follow-up;
машина замеров Apple M4, пороги абсолютные; замеры выполняет контроллер
после ночного прогона; пустая полоса при перетаскивании по умолчанию
принимается как штатное поведение MRT.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:41:09 +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
6e607b1647 docs(openspec): aurora-1843-svod2-server-paging — proposal, spec, design
Свод 2: серверная постраничная загрузка (поиск, три фильтра, total,
варианты фильтров) и компактный ответ; фронт догружает строки окном
страниц; замеры памяти, времени до первых строк, байтов и шага скролла.

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