845 Commits

Author SHA1 Message Date
aep
371c38c17c Merge pull request 'Архив change quality-metrics (AURORA-1759, #229)' (#230) from chore/archive-quality-metrics into main 2026-11-07 07:52:02 +03:00
Andrey Epifancev
9bcf6373fe Архив change quality-metrics (AURORA-1759)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 08:51:25 +04:00
aep
383113cb2b Merge pull request 'feat(#190): метрики качества первички (AURORA-1759)' (#229) from feat/190-ocr-metrics into main 2026-11-07 07:49:57 +03:00
Andrey Epifancev
2f4817137e docs(#190): M-16 дельта audit-trail — аудит выгрузки метрик качества
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:18:34 +04:00
Andrey Epifancev
5a5e5a25ad merge: влить origin/main в feat/190-ocr-metrics (I-10)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	web/src/auth/permissions.ts
2026-11-07 04:14:40 +04:00
Andrey Epifancev
4593cdc62c docs(#190): M-10 format=csv в README, M-14 ссылка R-4 в docstring, M-16 CLAUDE.md про аудит выгрузки метрик
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
d1f4f45ab0 fix(#190): M-17 маршруты /quality-metrics в тесте OpenAPI
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
24fbec8988 fix(#190): I-9 is_recognized допускает null в контракте quality-facts, тесты NULL-ячейки; M-13 решения R-1..R-3 в design.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
3f6bd96388 docs(#190): дельты OpenSpec quality-metrics, README, CLAUDE.md, правки design/proposal (I-7, M-4, M-5, M-7)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:01:45 +04:00
Andrey Epifancev
8f90d0c22f fix(#190): тесты состава прав учитывают QUALITY_METRICS_VIEW (I-8)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:58:20 +04:00
Andrey Epifancev
e14f1ab2aa fix(#190): ruff format auto_confirm и recognition_exchange (I-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:57:42 +04:00
Andrey Epifancev
8c7ce7c172 fix(#190): I-2 payload фактов по контракту quality-facts, вендоринг схемы и тест валидации; I-5 дата шапки через parse_date
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:56:47 +04:00
Andrey Epifancev
7a6c3641c1 fix(#190): I-3 is_scan и raw_s3_object_id последними колонками, I-4 uploads с фактом приёма не экспирится, M-3 разбор PDF вне event loop
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:47:44 +04:00
Andrey Epifancev
85c5ab8596 fix(#190): C-1 query-модели эндпоинтов метрик, M-1 без payload в DISTINCT ON, M-2 аудит EXPORT
- series/cells/export: одна query-модель на маршрут (QualitySeriesParams, QualityCellParams, QualityExportParams),
  иначе FastAPI требовал параметр `filters` и отвечал 422
- _latest_outcomes не тянет payload jsonb
- выгрузка пишет audit_event(EXPORT), тест; design.md: R-12 и исправлено обоснование
- docstring задачи 10: sites 1-3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:40:43 +04:00
Andrey Epifancev
25c568b5be docs(#190): зафиксировать решения задачи 16 (экран качества) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:57:03 +04:00
Andrey Epifancev
7ded34fec5 fix(#190): доработки экрана качества по ревью Task 16
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:56:27 +04:00
Andrey Epifancev
717dec69cf feat(#190): экран «Качество первички» (web)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:49:24 +04:00
Andrey Epifancev
3589f53c3c fix(#190): экранировать формулы в CSV-выгрузке качества (T15.1)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:46:25 +04:00
Andrey Epifancev
1d99ea265e docs(#190): зафиксировать решения задачи 15 (API метрик качества) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:46:07 +04:00
Andrey Epifancev
bebc678a96 feat(#190): API /quality-metrics — матрица, ряд по месяцам, список, выгрузка
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:43:36 +04:00
Andrey Epifancev
779e13fca8 docs(#190): зафиксировать решения задачи 14 (матрица причин) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:38:24 +04:00
Andrey Epifancev
d191fd3039 fix(#190): доработки матрицы причин по ревью Task 14
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:37:50 +04:00
Andrey Epifancev
cd7b687049 feat(#190): матрица причин — чистая функция (§14.3)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:35:32 +04:00
Andrey Epifancev
b20f3fa607 docs(#190): зафиксировать решение задачи 13 (формат union types.ts) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 22:58:50 +04:00
Andrey Epifancev
c161643ac1 feat(#190): право QUALITY_METRICS_VIEW всем ролям (design §8)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 22:46:48 +04:00
aep
31f327f86f Merge pull request 'Архив OpenSpec: goodwill-table и goodwill-ui' (#228) from chore/archive-goodwill into main 2026-11-06 18:10:01 +03:00
Andrey Epifancev
d4e1554550 Архив OpenSpec: goodwill-table и goodwill-ui (#222, #220)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 19:09:43 +04:00
aep
60cc190066 Merge pull request 'aurora-1544 добавление таблицы гудвил' (#220) from feat/goodWill into main 2026-11-06 18:07:59 +03:00
Andrey Epifancev
c2a52d9ec8 Merge remote-tracking branch 'origin/main' into feat/goodWill 2026-11-06 19:07:28 +04:00
aep
d1e3000dc0 Merge pull request 'feat/goodwillback: бэкенд гудвилл' (#222) from feat/goodwill-back into main 2026-11-06 18:07:13 +03:00
Andrey Epifancev
8485b2c53e Гудвилл: правки по финальному ревью ветки
I-1: сохранённая доля неактивной строки нормализуется (numeric(7,4) читается как 80.1200)
и не даёт INVALID_SHARE при null в пакете; экспорт помечает строку «Нет вложений» (сценарий
спеки); design/tasks/docstring без устаревшего «построчного» PUT, R-7/R-8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:52:59 +04:00
Andrey Epifancev
6be3936d9f Гудвилл: снятая галочка с неверной долей не блокирует сохранение
Финальное ревью I-1: у неотмеченной строки поле доли скрыто — effectiveRow отправляет
сохранённую долю вместо неверного ввода; подсказка у «Сохранить» называет строки с ошибкой
и предупреждает о скрытых фильтром. design.md goodwill-ui: R-4…R-6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:50:27 +04:00
Andrey Epifancev
5f2b0e890f Гудвилл: UI-спека goodwill-ui, правки по проверке на стенде
OpenSpec change goodwill-ui (таблица, редактирование, переключатель/фильтр/экспорт;
вкладка «Гудвилл» в intercompany-matrix-ui больше не заглушка; R-1…R-3). По стенду:
стрелка раскрытия блока — у названия, «Выделить все» в одну строку, текст пустой таблицы.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:44:02 +04:00
Andrey Epifancev
3bfcc2e2aa Гудвилл: контракт в docs, README, OpenSpec под ревью
Тест контракта читает ../docs/dev/api-contract-goodwill.openapi.yaml (без docs — skip);
README: раздел гудвилла и коды INVALID_SHARE/DUPLICATE_ROW/MONEY_OUT_OF_RANGE;
OpenSpec goodwill-table: пакетное сохранение, доля два знака, итоги по ГО и УК,
единицы, Decisions made without discussion R-1…R-6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:41:20 +04:00
Andrey Epifancev
2f5b455aaa Гудвилл: вкладка по API и DOC-259025
Суммы null — прочерк, ноль — 0,00; «Нет вложений» серым без чекбокса; предупреждения
иконкой с подсказкой; итоги «Всего» и «Итого по листу» из groups/totals ответа; в режиме
редактирования — предпросмотр P/G, проверка доли (два знака, без обрезки) и комментария,
групповой чекбокс по действующим строкам блока с indeterminate; сохранение одним пакетом
изменённых строк, ошибка 422 подсвечивает поле своей строки; переключатель «Учитывать
гудвилл в КФО»; фильтр «Нулевые»; экспорт с текущим фильтром.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:37:11 +04:00
Andrey Epifancev
66acde7786 Гудвилл: типы и запросы по API бэка, чистые функции вкладки
Типы по schemas/goodwill.py (has_investments, warnings, nullable суммы, groups,
УК в итогах), пакетный saveGoodwillRows, экспорт с sign; utils/goodwill.ts —
parseShare (два знака, без обрезки), previewAmounts в копейках (HALF_UP, как бэк),
matchesSign (null — только «все»), changedRows (только изменённые строки).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:33:14 +04:00
Andrey Epifancev
fe4c5db0e6 Гудвилл: ветка без правок вне задачи, влит main
Откатены к main правки справочников, шахматки, корректировок и types/api.ts
(обработка ошибок, Alert, удалённые комментарии) — не относятся к AURORA-1544 и
конфликтовали с #219/#221; шахматка переведена на общий фильтр единиц
components/ConsolidationFormatTableFilter; удалены тестовые MOCK_DATA; формат.
План доводки — docs/superpowers/plans/2026-11-06-goodwill-review-front.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:31:47 +04:00
Andrey Epifancev
eeb0ce48da Гудвилл: единицы ББ по словарю arm_statements
StatementsEngine.canonical_units — нормализация подписи единиц шаблонами пакета;
УК ДО переводится в рубли и при единицах, исправленных аналитиком вручную.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:26:17 +04:00
Andrey Epifancev
46fba8875b Гудвилл: пакетное сохранение таблицы одной транзакцией
PUT …/goodwill {rows: [...]} вместо построчного PUT …/goodwill/{head}/{sub}: все строки
проверяются до записи, ошибка любой (NOT_FOUND, INVALID_SHARE, COMMENT_REQUIRED,
MONEY_OUT_OF_RANGE, DUPLICATE_ROW) несёт ключ пары и откатывает пакет; неизменённые
строки не перезаписываются и аудит не пишут (DOC-259025 §5.1 п. 4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:24:49 +04:00
Andrey Epifancev
a086c39a78 Гудвилл: доля до двух знаков, итоги по ГО и УК с бэка
participation() — единственное место формулы доли участия; totals с УК, group_totals
по ГО, GoodwillTableOut.groups; экспорт берёт «Всего» и «Итого по листу» из ответа таблицы;
доля 0–100 не больше двух знаков (DOC-259025 §5.2), ответ — два знака.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:22:26 +04:00
Andrey Epifancev
3e07276a96 Гудвилл: заготовка вклада КФО вынесена в AURORA-1546
Удалены contributions/load_for_kfo и фильтры общего свода ОСВ (load_osv_rows,
build_with_members возвращены к main); OpenSpec change без требований вклада КФО.
План доводки по ревью — docs/superpowers/plans/2026-11-06-goodwill-review-back.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:20:04 +04:00
aep
8bb05dbea5 Merge pull request 'AURORA-1916: Справочники: импорт ГК и организаций из выгрузки ЕЦП' (#217) from feat/1916-import-directory into main 2026-11-06 16:50:16 +03:00
Andrey Epifancev
a8ea8c6cc2 [1916] Импорт ЕЦП: сводка и после записи, предупреждения в таблице
Ревью PR #217, раунд 2:
- после записи (без «Пробного прогона») показывается та же сводка с заголовком
  «Импорт завершён» и одной кнопкой «Закрыть»; список справочника обновляется сразу;
- «ГК/ЮЛ пропущено» → «без изменений»: это GK_EXISTS/LE_EXISTS, не ошибки;
- таблица «Ошибки и предупреждения»: кроме шести кодов пропуска — предупреждения
  RF_CREATED и UNKNOWN_FLAG (§13.2) с тегом уровня;
- тесты issueLines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:40:34 +04:00
Andrey Epifancev
03803e98fd Merge remote-tracking branch 'origin/main' into feat/1916-import-directory 2026-11-06 17:36:07 +04:00
aep
8c5d749089 Merge pull request 'openspec archive: итоги шахматки (#218, #225)' (#226) from chore/archive-matrix-totals into main 2026-11-06 16:22:51 +03:00
Andrey Epifancev
f9644a952e openspec archive: intercompany-matrix-totals, intercompany-matrix-totals-ui (#218, #225)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:22:24 +04:00
aep
4ab792ee39 Merge pull request 'AURORA-1757: итоги шахматки из API, фильтр компаний на сервере' (#225) from feat/224-chess-totals-ui into main 2026-11-06 16:21:36 +03:00
aep
593456d6e4 Merge pull request 'AURORA-1756' (#218) from AURORA-1756 into main 2026-11-06 16:21:14 +03:00
Andrey Epifancev
5115704f63 AURORA-1757: итоги шахматки из API, фильтр компаний на сервере (#224)
- клиент на единый POST …/intercompany-matrix и …/export
- матрица: колонка «Итого Дт» и строка «Итого Кт» из total_debit/total_credit,
  клиентское сложение убрано
- фильтр «Компании» уходит в запрос (legal_entity_ids), варианты — весь
  периметр из ответа без выбора; выгрузка с тем же выбором
- результирующая таблица без строки «Итого», колонка «Итого по группе»
- change intercompany-matrix-totals-ui

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:08:28 +04:00
Andrey Epifancev
e71c14bc2c AURORA-1756: тест фильтра ЮЛ — _source берёт пару из первых двух ЮЛ (падал на периметре из трёх)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:08:28 +04:00