- 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>
Загрузка и список файлов в demo-prepare.sh идут через /consolidations/$C/legal-entities/$LE/files,
C берётся из consolidation_id карточки версии.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Зеркало arm-core #92: vitest зафиксирован на 3.1.4 (в зеркале npm банка нет 3.2.x); DevLogin
не зависит от NODE_ENV — форма входа по email показывается всегда, заглушка «Вход выполняется
через РАИСА» появляется после 404 «Not Found» от бэкенда (dev-эмитент выключен). Признак вынесен
в isDevIssuerDisabled и покрыт тестами. CLAUDE.md: описание DevLogin обновлено.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Обычная сборка pdfjs-dist 5.7 в воркере вызывает Uint8Array.prototype.toHex (отпечаток документа) —
метод есть только в Chromium 140+, в Яндекс Браузере getDocument падает «a.toHex is not a function».
PdfPages берёт модуль и воркер из pdfjs-dist/legacy/build (с полифиллами core-js) через новый
widgets/DocumentReview/pdfjs.ts; регрессионный тест открывает PDF без Uint8Array.prototype.toHex.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Удалены экраны и моки старого АРМ (FileViewer, FilesList, FileUploaderModel,
PDFResultViewer, mocks.ts), рендер PDF перенесён в widgets/DocumentReview/PdfPages.tsx.
Подключён vitest (npm test, make test, в make check). Исправлены все ошибки tsc и biome:
типизированы ответы api.get, слайсы и thunks, убраны console.log и пустые catch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
Обвязка из adopt-project.sh дополнена описанием репозитория по коду: источники истины
для фронта, ветка test как интеграционная, правило «запросы только через api/client».
.gitignore: исправлена склейка строк (package-lock.json.superpowers/), добавлен dist/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3