Andrey Epifancev 36224dd81c Merge origin/main в AURORA-1589: шапка, «Единицы» и [31-00] — в страницу отчёта с вкладками #158 (ревью #166)
Конфликты после #158 (страница отчёта с вкладками по адресу):
- layouts/ConsolidationReportPage: пояснение статуса, тег, «Изменить статус» и модалка [33-01] из ConsolidatedOsvPage;
- widgets/ConsolidatedOsvContent: «Единицы / Знаков» и onUnmappedChange (unmapped_total наверх);
- OsvTabs: вкладки по адресу из main + модалка [31-00] при уходе с «ОСВ»;
- types/api.ts: обе части.
Спека consolidations-ui: решение (ц), Known issues 11 и 15 (lucide-react в зеркале есть), tasks 2.5, 2.8;
ARCHITECTURE.md и web/CLAUDE.md — новая страница отчёта.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:59:14 +04:00

46 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1. Ревьюер (RSHB/arm-core#166, AURORA-1589)
- [x] 1.1 Влить `origin/main` в ветку `AURORA-1589` (без конфликтов).
- [x] 1.2 Change `consolidations-ui`: proposal, design (Decisions, Known issues, Decisions made without discussion), спека
`consolidations-ui` — целевое поведение.
- [x] 1.3 `web/CLAUDE.md` — `lucide-react` в «Стек»; `web/ARCHITECTURE.md` — новые виджеты экранов консолидаций.
- [x] 1.4 Гайд фронта по API §5.7 — заметка о зеркале ручных переходов (PR в RSHB/arm-ka-docs, сливать вместе с #166).
## 2. Исправления по ревью раунда 1 (ревьюер, решение владельца 23.10.2026)
- [x] 2.1 Исправить «Known issues» 1–14 из `design.md` (путь смены статуса, `MANUAL_TRANSITIONS` константой, статус для
модалки из карточки страницы, ничего не выбрано, кнопка «Изменить статус» по спеке, «Версия», «Только в работе»,
«⋯» `disabled`, ошибки текстом сервера, [35], «Отменена», пояснения статусов, «+ Создать» от двух ЮЛ, [31-00],
отступ бокового меню, ошибка загрузки списка, «Ответственный» после «Взять в работу», Sidebar с объектом в thunk).
- [x] 2.2 Коммит 71ef633 оставить в PR (решение владельца): масштаб сумм на строках без float (`formatScaledAmount`),
«—» для нулей, дельта `consolidated-osv-ui`.
- [x] 2.3 Вынести чистые правила из компонентов: `web/src/utils/consolidations.ts` (подписи и пояснения статусов,
`MANUAL_TRANSITIONS`, `canChangeStatus`, `canSubmitStatusChange`, `isValidReason`, `versionLabel`,
`parseInWorkOnly`, `canTakeInWork`, `needsUnmappedWarning`, `endSentence`).
- [x] 2.4 Предупреждение браузера о несохранённых правках — в модалках экранов консолидаций (решение (л)); остальные
формы — вопрос владельцу (Known issues 16).
- [x] 2.5 Проверить наличие `lucide-react@0.263.1` в зеркале npm банка (Known issues 15) — есть, подтвердил автор PR.
- [x] 2.8 Влив main после #158: шапка, «Единицы» и [31-00] перенесены в страницу отчёта с вкладками (решение (ц));
`tsc`, `biome`, `npm run lint`, `vitest`, `make web-check` — зелёные; сверка на стенде.
- [x] 2.6 Проверки в копии ветки с `lucide-react`: `tsc --noEmit`, `biome check`, `prettier --check`, `eslint` (0 ошибок,
предупреждений меньше, чем на main), `vitest run`, `npm run build` — зелёные.
- [x] 2.7 Сверка на стенде: список [34] (флажок, «Версия», «⋯»), [35] (свободная версия, перехват и гонка — с подменой
ответа, 403 без права), «Изменить статус» (варианты, пустой выбор, 409 `TRANSITION_NOT_ALLOWED` подменой тела,
карточка из ответа — подменой ответа; статусы стенда не менялись), [42] (одно / два ЮЛ, без создания), сводная ОСВ
(единицы, «—»), [31-00] — на временной копии. Сценарий AURORA-1589 со сменой статуса на реальных данных
(«Отменена» необратима) — за тестировщиком на отдельной версии.
## 3. Тесты (ревьюер)
- [x] 3.1 vitest на вынесенные функции: «Версия» (1 → пусто, 2 → «2»); переходы — совпадение с `MANUAL_TRANSITIONS`
и пустой список для `VERIFIED`, `CANCELLED`, статусов Среза 7; кнопка «Изменить статус» (своя / чужая / нет
блокировки × есть / нет переходов); модалка — нет выбора, комментарий из пробелов; `in_work_only` по умолчанию `false`;
подписи «Корректировка данных», «Отменена»; пояснение не равно подписи; причина ровно 1000 символов;
`formatScaledAmount` (сдвиг, округление, ноль, большие суммы без потери разрядов).
## 4. После слияния
- [ ] 4.1 Тексты пояснений статусов первой очереди от аналитика вместо временных (решение (б)).
- [ ] 4.2 С маршрутом согласования (Срез 7): допустимые переходы из API вместо зеркала (D-1), MODIFIED-дельта спеки.
- [ ] 4.3 ГСК консолидации в API — колонка «ГСК» и текст модалки [35] (D-8).