4a02512545
Merge pull request 'Нарушения проверок: expected/actual и индекс колонки nullable ( #45 )' ( #46 ) from feat/45-nullable-checks into test
2026-10-18 21:56:09 +03:00
Andrey Epifancev
4fb477d5c2
Подпись пустой цели «цель не заполнена», тесты null/null (ревью I-1, M-1, M-2, M-4)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:55:42 +04:00
Andrey Epifancev
cb36ec8840
Нарушения проверок: expected/actual и индекс колонки могут быть null ( #45 )
...
Типы FailedCheckOut по API ядра (P3-30, P3-60); подпись «нет строки цели», «Без колонки» для -1/null; общий ключ списка.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:52:29 +04:00
d0095f325e
Merge pull request 'Единая нормализация ББ/ОФР: экран формы и карточка файла по API v5.19 ( #43 , arm-ka-docs#116)' ( #44 ) from feat/43-statements-v2 into test
2026-10-18 19:09:17 +03:00
Andrey Epifancev
b4b8c04693
openspec(statements-v2): решения по итогам прогона в браузере (T11.D-1…D-5, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:07:51 +04:00
Andrey Epifancev
aa3054e4ed
docs(arm-web): экран формы v5.19 — README и карта модулей ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:06:02 +04:00
Andrey Epifancev
88a4920d7d
fix(arm-web): нераспознанный текст суммы, пустые подстроки без расшифровок, свёрнутый список предупреждений ( #43 )
...
T11.5 valueCellText, T11.10 emptySublineKeys пропускает detail, T11.11 collapseIssues (3 записи + «Показать все»).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:06:02 +04:00
Andrey Epifancev
a3199d636e
fix(arm-web): вёрстка экрана проверки формы — ширины колонок, значки в ячейке, шапка, ссылка кнопкой ( #43 )
...
T11.1–T11.4, T11.6–T11.8: короткая подпись кнопки даты, фиксированная раскладка таблиц, код без переноса, значок уровня внутри ячейки, подсказка на всю ячейку, отступ child-строки, ссылка «Разберите строки без кода» — Button type=link.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:06:02 +04:00
Andrey Epifancev
12fcea7560
fix(statement): защитные значения по умолчанию для ядра без v5.19 (M-2, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 14:03:33 +04:00
Andrey Epifancev
4783593fe6
fix(statement): ссылка на строки без кода всегда видна, сортировка по row_index, Alert для ошибки скрытого поля кода, постоянный aria-label (T9.1, T9.2, T9.4, T7.1, T8.1, T3.3, M-3, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 14:03:33 +04:00
Andrey Epifancev
d965fdc064
fix(statement): округление уверенности в подсказках шапки, пустые тексты в подсказках, комментарий шапки (T5.1, T5.2, M-1, T3.1, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 14:03:33 +04:00
Andrey Epifancev
6556e3d58d
fix(statement): не отправлять поля шапки, равные текущим (I-2, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 14:03:33 +04:00
Andrey Epifancev
8d2deb97a3
docs(openspec): решения без обсуждения из исполнения и имя кнопки «Подтвердить данные» ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:58:55 +04:00
Andrey Epifancev
fc5cc16b3d
fix(files): клики внутри popover не открывают строку, ключи и aria-label ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:47:21 +04:00
Andrey Epifancev
fdf9358b40
feat(files): предупреждения файла структурами и предупреждения документа в панели файлов и у ОСВ ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:45:27 +04:00
Andrey Epifancev
5b11f2d00a
feat(statement): блокировка подтверждения при строках без кода, LINES_UNRESOLVED и DUPLICATE_FORM ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:42:32 +04:00
Andrey Epifancev
a779d2a04a
feat(statement): подтверждение ячеек, дата колонки, наименование организации и подтверждение даты ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:39:34 +04:00
Andrey Epifancev
d416422e73
feat(statement): правка строк — код с подсказкой из справочника, меню строки, LINE_CODE_TAKEN ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:36:07 +04:00
Andrey Epifancev
ef4d32592e
refactor(statement): один черновик правок и сборка единственного PATCH ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:31:51 +04:00
Andrey Epifancev
8ab116fdba
feat(statement): шапка — организация, поля на проверку и подсказки распознанного текста ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:28:41 +04:00
Andrey Epifancev
4ae8643d78
feat(statement): предупреждения и нарушения у строк, ячеек, колонок и в списке документа ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:25:51 +04:00
Andrey Epifancev
34d523afc7
feat(statement): вид строк по статусам, подсветка по needs_review, переключатель расшифровок ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:22:26 +04:00
Andrey Epifancev
c2f33e7af2
feat(statement): раскладка строк без кода и расшифровок на своих местах ( #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:19:37 +04:00
Andrey Epifancev
e4ee7f09b2
fix(fixtures): коды соотношения, column_index, порядок edition_lines ( #43 )
...
- issue i6 и checks.failed: codes — коды строк соотношения, параллельно line_ids.
- issue i2: column_index 3 (индекс колонки c2).
- edition_lines: 1370 перед 1600, по порядку бланка.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:17:41 +04:00
Andrey Epifancev
f83b03543e
feat(types): API формы v5.19 — статусы строк, needs_review, issues, предупреждения файла ( #43 )
...
- types/api.ts: LineStatus, Severity, IssueKind, PeriodKind, FileWarningOut, IssueOut, EditionLineOut,
IssueCountsOut, CellTarget, LinePatch, ColumnPatch; новые поля StatementHeaderOut, ColumnOut, ValueOut,
LineOut, FailedCheckOut, StatementOut (form_variant, issues, edition_lines), DocumentBrief (issue_counts),
DocumentOut (issues), JobBrief.warnings — FileWarningOut[].
- statementGrid.ts: GridRow получает статус строки, номер строки, код как распознан, флаги needs_review /
is_confirmed / codeModified; cellFlags: внимание только по needs_review, новый флаг confirmed.
- labels.ts: lineStatusLabel, severityLabel.
- фикстура __fixtures__/statement-v2.json (БАЛАНС 2025 Q3, NEEDS_CHECK): 16 строк × 2 колонки, у каждой пары ValueOut.
- тесты: переносы полей v2 и покрытие пар строка × колонка, cellFlags по needs_review, подписи; хелперы
row() / v() / gridRow / doc() дополнены значениями по умолчанию.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:15:29 +04:00
Andrey Epifancev
0f2bbc80c9
openspec(statements-v2): change и план экрана формы по API v5.19 (arm-ka-docs#116, #43 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:11:49 +04:00
783c3f0b17
Merge pull request 'Просмотр ОСВ: виртуализация таблицы ( #38 , AURORA-1665)' ( #41 )
2026-10-17 13:46:18 +03:00
Andrey Epifancev
b861646a86
Merge branch 'test' into feat/38-osv-virtual-table
...
Слияние с #39 (PR #40 ): scroll.x считается от фактических колонок, scroll.y — числом
для virtual. Колонки сумм расширены до 160 px: итоги из 17 цифр («Итого по документу»)
переносились на две строки и обрезались внизу таблицы (O-3). Спека: поиск — по аналитике.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 14:46:10 +04:00
37d5d27a49
Merge pull request 'Просмотр ОСВ: заголовок колонки аналитики по виду ( #39 , AURORA-1666)' ( #40 )
2026-10-17 13:42:18 +03:00
Andrey Epifancev
a3e53c8cfc
fix(DocumentReview): виртуализация таблицы ОСВ — большая ОСВ больше не роняет вкладку ( #38 , AURORA-1665)
...
Таблица строк ОСВ получила virtual (antd 6): в DOM только видимые строки.
Высота области прокрутки считается числом (osvBodyHeight) и обновляется при
изменении окна. В спеку document-review-ui добавлено требование про виртуализацию.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:08:22 +04:00
Andrey Epifancev
bbb1b598ad
docs(spec): просмотр ОСВ — плоская таблица, колонки по факту ( #39 , AURORA-1666)
...
Требование «ОСВ-документ» описывало дерево с колонками «контрагент, ИНН»,
что расходилось с плоской таблицей (#12 ) и с новым правилом колонок (#39 ).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:06:14 +04:00
Andrey Epifancev
94cb0a4d74
fix(DocumentReview): заголовок колонки аналитики по виду, ИНН только при контрагентах ( #39 , AURORA-1666)
...
Заголовок колонки считается по видам строк-листьев (osvRows.analyticsHeading): «Контрагент»,
название вида из файла или «Аналитика» с подсказкой. Колонка ИНН и подсказка поиска — только при
контрагентах; labelSpan и ширина scroll.x зависят от числа колонок. Требование — в specs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:04:17 +04:00
1237105af2
Merge pull request 'label переключателя пустых строк через htmlFor ( #36 , AURORA-1527)' ( #37 ) from feat/36-a11y-switch into test
2026-10-16 18:40:21 +03:00
Andrey Epifancev
a4f54818cf
fix(DocumentReview): label переключателя пустых строк связан через htmlFor ( #36 , AURORA-1527)
...
biome lint/a11y/noLabelWithoutControl остановил перенос в arm-core (sync-web, arm-core #120 ):
<label> обёртывал antd Switch. Switch получил id, подпись — label htmlFor. Заодно Prettier
переформатировал строку заголовка в ChecksPanel (длиннее 140).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:40:08 +04:00
e252135c3b
Merge pull request 'Подстроки под родителем, пустые строки детализации свёрнуты ( #34 , AURORA-1527)' ( #35 ) from feat/34-subline-parent into test
2026-10-16 18:35:38 +03:00
Andrey Epifancev
85e1b86bb1
fix(ChecksPanel): заголовок мягких проверок «Предупреждения проверок (N)» ( #34 , AURORA-1527)
...
В soft_failed попадают мягкие соотношения §7 и жёсткие в пределах округления, а не только округление.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:09:37 +04:00
Andrey Epifancev
54f88e9950
feat(DocumentReview): подстроки под родителем, пустые строки детализации свёрнуты ( #34 , AURORA-1527)
...
Строка с parent_code (его отдаёт ядро) выводится под родителем с отступом, в ББ и ОФР.
Пустые подстроки скрыты за переключателем с счётчиком; строка с правкой в черновике не скрывается.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:48:11 +04:00
025233f3c2
Merge pull request 'Скан PDF с JBIG2 не рисовался: wasmUrl для pdf.js и копирование wasm ( #32 , AURORA-1635)' ( #33 ) from feat/32-pdfjs-jbig2 into test
2026-10-16 12:34:33 +03:00
Andrey Epifancev
f868a9250f
Скан PDF с JBIG2 не рисовался: передать pdf.js wasmUrl и копировать wasm в сборку ( #32 )
...
pdf.js 5.x декодирует JBIG2/JPEG2000/ICC через wasm и без опции wasmUrl падает:
«JBig2 failed to initialize», «Unable to decode image» (AURORA-1635).
- rsbuild: output.copy node_modules/pdfjs-dist/wasm -> static/pdfjs/wasm;
- pdfjsOptions.ts: pdfjsWasmUrl(APP_ADDRESS) с учётом ROOT_PATH (+ тест);
- PdfPages: getDocument({ wasmUrl }). Legacy-сборка pdf.js сохранена (#22 ).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:28:29 +04:00
5acb6ef3c3
Merge pull request 'Форматирование перед PR: ESLint + Prettier и npm run format ( #29 )' ( #30 ) from feat/29-format-tooling into test
...
Reviewed-on: #30
2026-10-15 17:23:20 +03:00
Andrey Epifancev
a8a6da0de3
Форматирование перед PR: ESLint + Prettier и npm run format ( #29 )
...
- Prettier — единственный форматтер (табы, 140, одинарные кавычки, в CSS — двойные);
форматтер biome выключен, biome остаётся линтером и сортирует импорты.
- ESLint (flat config): js/typescript-eslint/react-hooks recommended + правила biome.json,
eslint-config-prettier последним.
- npm run format / make format: eslint --fix → biome check --write → prettier --write.
- npm run lint: eslint + prettier --check; входит в make lint и make check.
- Разовое переформатирование 4 файлов, `(A | B)[]` вместо Array<…> в 3 местах,
две находки ESLint в ConsoleTable (лишний `?? null`, тернарник-инструкция).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:15:14 +04:00
Andrey Epifancev
100fbfb899
openspec: архив console-files ( #26 )
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 10:05:32 +04:00
418697afe5
Merge pull request 'Панель «Первичные документы»: рабочий стол консолидации и загрузка в консолидацию ( #26 )' ( #27 ) from feat/26-console-files into test
...
Reviewed-on: #27
2026-10-10 09:00:46 +03:00
Andrey Epifancev
c5537d5a6b
Правки финального ревью: обновление списка после создания консолидации, подсказка кнопки, решения R-4..R-8
...
- Sidebar: после создания консолидации перечитывается список группы
- useLegalEntityFiles: убран biome-ignore в зависимостях эффекта
- FilesDrawer: курсор и pointer-events у недоступной кнопки загрузки
- design.md: решения R-4..R-8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 01:03:00 +04:00
Andrey Epifancev
9f56442a0c
docs: панель файлов — маршруты консолидации в CLAUDE.md и demo-prepare.sh ( #26 )
...
Загрузка и список файлов в demo-prepare.sh идут через /consolidations/$C/legal-entities/$LE/files,
C берётся из consolidation_id карточки версии.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 00:57:40 +04:00
Andrey Epifancev
6ee1d0e1cb
drawer: рабочий стол консолидации, переключатель «Все документы организации», загрузка только в версии в работе ( #26 )
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 00:55:28 +04:00
Andrey Epifancev
79278589d6
api: загрузка и список файлов по маршрутам консолидации ( #26 )
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 00:53:59 +04:00
Andrey Epifancev
5b7b02a3f2
store: консолидация открытой версии и подпись консолидации у файла ( #26 )
...
Чистые функции findCurrentConsolidation, isInWork, consolidationLabel и хук
useCurrentConsolidation; FileOut.consolidation_id; тесты vitest.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-10 00:52:33 +04:00
Andrey Epifancev
490113cb06
plan: demo-prepare.sh — загрузка через маршрут консолидации ( #26 )
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:47:18 +04:00
Andrey Epifancev
6fb3d5d41a
openspec+plan: console-files — панель файлов в контексте консолидации ( #26 )
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:39:35 +04:00