301 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
df4e171cc5 AURORA-1756: подписи итогов в xlsx — «Итого Дт» / «Итого Кт», как на экране и в DOC-221277
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:00:46 +04:00
Andrey Epifancev
6faa4fb325 AURORA-1756: ревью #218 — без общего итога, total_debit, change OpenSpec
- grand_total результирующей таблицы убран из API и xlsx: аналитик 03.11 попросил
  убрать итог снизу, сумма ДЗ + КЗ + ФВ + займов смысла не имеет
- total_debet переименовано в total_debit, как во всём API
- итоги матрицы квантуются до двух знаков ("0.00" и при одном ЮЛ)
- правки openspec/specs перенесены в change intercompany-matrix-totals
- README: фильтр ЮЛ и итоги

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 16:42:52 +04:00
Andrey Epifancev
494e789fbf docs(#190): зафиксировать решение задачи 10 про error_code отказов маппинга в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 13:13:27 +04:00
Andrey Epifancev
68dc5118f6 docs(#190): зафиксировать решение задачи 9 об статусе ERROR в design.md
Документирует находку ревью задачи 9 (minor, deferred): почему supersede_previous не
исключает ERROR-статус из факта исхода, в отличие от primary_files.delete.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 11:39:29 +04:00
Andrey Epifancev
3a325e886c docs(#190): зафиксировать решения задачи 8 (DELETED/DELETED_AFTER_CONFIRM) в design.md
Перенос трёх решений, делегированных брифом исполнителю и задокументированных в докстринге
PrimaryFilesService._write_delete_outcome_facts, в раздел «Decisions made without discussion»
по правилу CLAUDE.md о маркировке находок.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 11:08:55 +04:00
Andrey Epifancev
9bb9fba901 fix(#190): правка задачи 7 — PDF-добавленная строка «наш разбор», before у _header_fix
Ревью задачи 7, раунд 1: (1) добавлена строка design.md 06.11.2026 — решение
«нет сырого текста → наш разбор» для value/code/header фиксов задокументировано
отдельно (не то же, что 1250\n1260); тем же рядом исправлено направление для
PDF-добавленной строки — "наш разбор", не "сервис" (пустой raw_line_codes не
должен давать service через attribute_added_row, это противоречило уже принятому
27.10.2026 решению). (2) _added_row_fix для PDF больше не вызывает
attribute_added_row с заведомо пустым raw_line_codes — атрибуция "ours" прямо.
(3) _header_fix теперь возвращает "before" (meta.<field>_original_value), как
у _value_fix/_code_fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 10:53:19 +04:00
94895b6de7 feat/goodwillback: бэкенд гудвилл 2026-11-05 15:36:14 +03:00
Andrey Epifancev
6d1a322e87 docs(#190): дорегистрировать решение об отложенном контракте quality-facts.schema.json
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 16:00:12 +04:00
Andrey Epifancev
251c30d5ca feat(#190): DBML v5.25 — ORM и миграция фактов качества первички
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 15:49:15 +04:00
Andrey Epifancev
1171e173af docs(#190): исправить номер открытого вопроса OQ-111 → OQ-179
OQ-111 уже занят (ретеншн S3 общего назначения) — реальный свободный номер для
срока хранения raw/{job_id}.json нашёлся при работе над arm-ka-docs#202.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 14:13:23 +04:00
Andrey Epifancev
9d2c44940a docs(#190): дизайн метрик качества первички (AURORA-1759), черновик до ревью владельца
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 14:13:23 +04:00
Andrey Epifancev
967fa01fb6 openspec archive: corrections-table-ui
Закрыт PR #215 (AURORA-1541, issue #206) — таблица корректировки
подключена к реальному API.
2026-11-02 21:17:47 +04:00
Andrey Epifancev
ec59fcc2eb R-35: граница 5% — строго больше, как у реального API
Фронт закладывал >= 5% (R-34, из неоднозначного текста контракта
«от 5% включительно»), а API 1540 (domain/corrections.py) считает
строго больше. Приведены к факту: живой контроль окна (editorModel),
подпись фильтра «Отклонение, %», тест на границе (ровно 5.00% больше
не красный, добавлен случай 5.01%).
2026-11-02 21:08:25 +04:00
Andrey Epifancev
7e8b035b17 Task 8: подключение таблицы корректировок к реальному API (#208)
Реальный контракт AURORA-1540/1751 не дал единой POST .../allocations:
решение по строке разбито на PUT/DELETE .../vgo-assignments/rule
(привязка/снятие правила) и PUT .../vgo-assignments/exclude (КФО),
ответ — список VgoAssignmentOut, а не вся таблица. allocate()
маршрутизирует по action и перечитывает таблицу сама — вызывающий код
(CorrectionContent, CorrectionEditorModal) не менялся.

Фейк контракта (CORRECTIONS_MOCK) убран — API уже есть. mockData/mockCalc
остаются тестовыми фикстурами (R-27).

Проверено на реальном стенде (Русский Бисквит — 2025 К1): загрузка
таблицы, EXCLUDE/INCLUDE, ASSIGN, снятие правила, сохранение
корректировки, экспорт — без ошибок в консоли.
2026-11-02 21:08:20 +04:00
Andrey Epifancev
c2bf047cb3 Merge main (AURORA-1540/1751, arm-core #208): реальный API корректировок/ВГО
Конфликт в ConsolidationReportPage.tsx — импорт ChessContent (main) и
CorrectionContent (эта ветка), оставлены оба.
2026-11-02 20:46:10 +04:00
c62f9b2e39 AURORA-1540: API таблицы корректировок и интеграция с ВГО, правки 2026-11-02 18:12:32 +03:00
Andrey Epifancev
7384471db3 Ревью #208: привести README/OpenSpec в соответствие с фактическим диффом
- README: вернуть потерянный абзац-предупреждение про e2e и queue group
  (был затёрт вставкой нового раздела); описание раздела про корректировки
  поправлено под архитектуру CorrectionAggregateSource (1540 не читает
  vgo_assignment напрямую, см. design.md Decision 1).
- design.md: Non-Goals ложно утверждал "DBML/ORM/миграция не меняются",
  хотя в ветке есть миграция 0011 (vgo_assignment, AURORA-1751); уточнена
  граница ответственности и добавлено пояснение в Migration Plan.
- tasks.md: зафиксировано, что make dbml-check не выполнялся — DBML v5.24
  ещё не существует в arm-ka-docs, вопрос поднимается отдельно.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 12:19:05 +04:00
0e678acf35 AURORA-1540: корректировки + vgo_assignment 2026-10-30 19:44:22 +03:00
Andrey Epifancev
d8af058f75 feat(web): таблица корректировок под ответы Лысенко 29.10 (#206)
- отзыв корректировки убран (RevokeModal, revokeCorrection, пункт меню агрегата);
  `status` из тела PUT убран — сервер сразу применяет (R-29, R-30);
- «Учитывать в КФО»: у агрегата отмечен и закреплён, у строк агрегата флажка нет,
  у нераспределённых — EXCLUDE/INCLUDE; `excluded` у строки агрегата убран (R-31, R-32);
- у нераспределённой — строка баланса владельца `line_code`, фильтр «Строка баланса»
  действует и на неё (R-33);
- фейк: ENTRY_ALLOCATED для EXCLUDE/INCLUDE строки агрегата, ENTRY_EXCLUDED для ASSIGN
  исключённой; «Убрать из правила» отдаёт строку с line_code;
- спека, design.md (R-29…R-34), tasks §9, план Task 9, README/ARCHITECTURE.

Источник: AURORA-1395 #9920570, WIP API arm-core #208.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:17:34 +04:00
086050cc87 feat/corrections-back: Корректировки по ручным праавкам в vgo_assignments 2026-10-29 19:13:58 +03:00
Andrey Epifancev
753eccbd97 docs(openspec): рулинги R-27, R-28, чек-лист Task 8, уточнения по ревью ветки (#206)
I-4, M-3, M-9, M-10, M-11.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:16:14 +04:00
Andrey Epifancev
d43149022b docs(openspec): рулинги R-25, R-26 таблицы корректировок (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:06:22 +04:00
Andrey Epifancev
b499787d10 docs(web): таблица корректировок — README, ARCHITECTURE, tasks (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:05:02 +04:00
Andrey Epifancev
c1d402f0e3 fix(web): окно корректировки — пересборка состояния, клавиатура, доступность (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:53:22 +04:00
Andrey Epifancev
c559dd321c feat(web): окно «Корректировка операции» с черновиком (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:48:12 +04:00
Andrey Epifancev
c2cbbf5dfd fix(web): правки по ревью Task 5 — лимит комментария, подсказки, защита от двойного запроса (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:39:26 +04:00
Andrey Epifancev
14cceb80be feat(web): решения по строкам и отмена корректировки (#206)
Флажок «Учитывать в КФО» и меню строк (перенести, убрать, вернуть к
автоматике) отправляют allocate; «Отменить корректировку» открывает окно
с обязательным комментарием и вызывает revoke. Ошибки — уведомление с
текстом сервера, 409 — ещё перечитывание таблицы. Подсказки режима только
чтения вынесены в readOnly.ts, подсказка «Недоступно» убрана (T4.14).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:35:44 +04:00
Andrey Epifancev
d98f264f90 feat(web): вкладка «Таблица корректировки» — таблица и панель (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:22:56 +04:00