feat: закрыть остаточный backlog

- keyset-пагинация аудита с курсором (occurred_at, id) и UI «Показать ещё»
- пакетный /api/v1/labs/details и переход progress на один запрос
- абсолютный потолок сессии 30 дней (identity V12 + web), очистка refresh
- админская инвентаризация legacy-активов (/admin/legacy-assets, скрипт)
- E2E в Chromium/Firefox/WebKit (18/18), CI preflight
- LDD: 51 claim, 346 тестов, docs и handoff обновлены
This commit is contained in:
2026-10-28 19:29:23 +03:00
parent d45137220c
commit 1e1e9ae0e4
64 changed files with 2124 additions and 372 deletions

View File

@@ -9,10 +9,11 @@
- ADR с ключевыми решениями: [adr/0001-groups-courses-foundation.md](adr/0001-groups-courses-foundation.md).
- Контракт API профиля студента: [09-teacher-student-profile.md](09-teacher-student-profile.md).
- Миграции:
- identity `V4–V11`: роли, группы-когорты, статусы студентов, повышение,
- identity `V4–V13`: роли, группы-когорты, статусы студентов, повышение,
история членства, статусы аккаунтов; `V10` (`audit_events`) добавлена
позже, на этапе 6; `V11` (`refresh_tokens`) — при закрытии рисков
аутентификации, тоже после этого отчёта;
аутентификации, тоже после этого отчёта; `V12` (`absolute_expires_at`) и
`V13` (keyset-индексы аудита) — при финальной доработке;
- academic `V6–V12`: курсы, преподаватели, группы курса, `labs.course_id`,
материалы курса/аудитории, индексы активов; `V10` (уникальный индекс
`lower(title)` по курсам) добавлена на этапе 2, после этого отчёта;