JIT добавлял ~1,4 с к вызову с буквальными параметрами (стенд масштаба 1: 1500 мс против 43 мс).
Тест: функции svod2 имеют jit=off. Убран тест формы плана: функция с SET не разворачивается.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
В 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>
Конфликт perf/analysis/api_split.py: взят measure() из test (wire_bytes, AURORA-1848),
в него перенесена обработка нечислового result (facets возвращает объект, строк нет).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Конфликты 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>
Конфликты 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>
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>
Конфликты: RealtimeTable.jsx (импорты: оставлены getRowId из test и утилиты мемоизации ветки),
TableHead.jsx (импорты: объединены columnResizeInfo ветки и deadlineFormat/ROLES_NAME_ID/headerYearUtils/ColumnResizer из test).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
При слиянии 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>
План в 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>