GET /directories/company-groups возвращает Page[CompanyGroupOut], но раньше типизировался как ICompanyGroup[].
Реализована пагинация: fetchCompanyGroups теперь читает все страницы по 200 и возвращает полный массив ICompanyGroup[].
Это позволяет thunk/slice получать честный массив с правильным total_groups = payload.length.
Исправлено:
- fetchCompanyGroups: async функция с циклом по total (как fetchAllLegalEntities)
- types.ts / companyGroupsSlice.ts / thunks.ts: типы честные (без приведений)
- потребители (NewConsoleModal, CompanyGroupsTable, Sidebar): используют raw_rows как массив
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
Удалены экраны и моки старого АРМ (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