diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 75eded09..71a52e97 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -226,7 +226,7 @@ REST запрос → ожидание → подтверждённый output / | Пользователи | [Профиль](ux-ui/screens/users-profile-desktop.png), [ошибка](ux-ui/screens/users-error-desktop.png) | [390](ux-ui/screens/users-profile-mobile.png), [320](ux-ui/screens/users-profile-narrow.png) | | Контейнеры | [Обзор](ux-ui/screens/containers-overview-desktop.png), [снимок](ux-ui/screens/containers-export-desktop.png) | [390](ux-ui/screens/containers-export-mobile.png), [320](ux-ui/screens/containers-export-narrow.png) | -Актуальная точка продолжения: 11А.33 — профильная локальная приёмка backups. Backup scheduler cleanup проверен в 11А.32; общий dispatcher/journal status требует исправления в 11Б, реальные интеграции остаются внешней приёмкой. S3/partial job/initial errors приняты в 11А.31.2.2. Диалоги ошибок приняты в 11А.31.2.1. Frame/первые 9 экранов приняты в 11А.31.1. URL/Filters контекст принят в 11А.30. Клиентский checkpoint restore принят в 11А.29.5. Backend outcome неизвестного импорта принят в 11А.29.4. Идентичность receipt принята в 11А.29.3. Backend cleanup удаления принят в 11А.29.2. Frontend delete/restore/download принят в 11А.29.1, затем URL/Frame/визуальная приёмка и scheduler cleanup. Frontend checkpoint/создание/serial polling приняты локально в 11А.28.2. API/основа наблюдения реализованы в 11А.28.1. Настройки расписания/S3 реализованы в 11А.27.1–11А.27.2. Каталоги/source/права реализованы в 11А.25, backend результат ручных операций исправлен в 11А.26. Сертификаты приняты локально в 11А.24, backups API стал строгим. State API, reader, snapshot merge и nullable представление подключены в 11А.14–11А.17.3; таблица требований — [этап 11А](ux-ui-stage-11a.md). Резервные копии и весь 11А ещё не приняты. +Актуальная точка продолжения: 11Б.1 — достоверность общего scheduler runner и карта оставшихся разделов. Этап 11А принят локально в 11А.33: backups 71 основных + 28 source E2E, 27 frontend unit, backend профиль и production build. Backup scheduler cleanup проверен в 11А.32; общий dispatcher/journal status требует исправления в 11Б, реальные интеграции остаются внешней приёмкой. S3/partial job/initial errors приняты в 11А.31.2.2. Диалоги ошибок приняты в 11А.31.2.1. Frame/первые 9 экранов приняты в 11А.31.1. URL/Filters контекст принят в 11А.30. Клиентский checkpoint restore принят в 11А.29.5. Backend outcome неизвестного импорта принят в 11А.29.4. Идентичность receipt принята в 11А.29.3. Backend cleanup удаления принят в 11А.29.2. Frontend delete/restore/download принят в 11А.29.1, затем URL/Frame/визуальная приёмка и scheduler cleanup. Frontend checkpoint/создание/serial polling приняты локально в 11А.28.2. API/основа наблюдения реализованы в 11А.28.1. Настройки расписания/S3 реализованы в 11А.27.1–11А.27.2. Каталоги/source/права реализованы в 11А.25, backend результат ручных операций исправлен в 11А.26. Сертификаты приняты локально в 11А.24, backups API стал строгим. State API, reader, snapshot merge и nullable представление подключены в 11А.14–11А.17.3; таблица требований — [этап 11А](ux-ui-stage-11a.md). Резервные копии и весь 11А приняты локально в 11А.33; внешние ограничения — журнал. | Экран | ПК | Телефон | | --- | --- | --- | diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index b27f552d..8ec59ff4 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -27,7 +27,7 @@ | 8 | Трафик и статистика | Завершён 2026-09-28 в границах локальной приёмки; ограничения в блоке 8.13 | | 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 | | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | -| 11А | Пользователи, контейнеры, сертификаты и резервные копии | В работе: 11А.1–11А.32; пользователи/контейнеры/сертификаты приняты локально; резервные копии: scheduler проверен, далее приёмка 11А.33 | +| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат | @@ -36,6 +36,15 @@ +## Блок 11А.33 — локальная приёмка резервных копий и этапа 11А (2026-10-01) + +- Общая регрессия backups: 69 основных + 2 исходных table/Filters + 28 source/context E2E, 27 frontend unit, весь backend test:backups прошли. Полный frontend TypeScript и production frontend/contracts build прошли; backend build и профильный ESLint прошли в 11А.32. +- Проверены данные/unknown/partial, независимые зависимости, права, черновики расписания/S3, immutable job/checkpoint, serial polling, удаление/restore/download, URL/Filters, клавиатура и ПК/390/320. 24 PNG сохранены, узкий partial job повторно просмотрен; обновлённые снимки от последней регрессии включены в коммит. +- Резервные копии приняты в границах локального UI/API/DI профиля. Пользователи приняты в 11А.8, контейнеры в 11А.13, сертификаты в 11А.24. Этап 11А завершён локально; общая регрессия всех разделов приложения относится к этапу 12. +- Внешняя приёмка: PostgreSQL/Portal/JWT/RouterOS/ACME/S3, физическое восстановление и versioned S3 deletion не доказаны фикстурами. Jobs/checkpoints и scheduler lock не обеспечивают долговечность/межпроцессную идемпотентность. Исторические S3 bucket/endpoint не хранятся. PEM/private key import/export не реализованы. Эти ограничения не скрыты локальными результатами. +- Общий scheduler dispatcher пока может записать snapshot с ошибками как ok; это явный долг этапа 11Б, а не подтверждённая успешность планового запуска на общем экране. +- **Следующий блок 11Б.1:** карта оставшихся разделов и достоверность общего scheduler runner: collector результат отдельно от журнала/событий, без второй записи и ложного ok. + ## Блок 11А.32 — достоверность плановых резервных копий (2026-10-01) - Lock берётся до чтения настроек и освобождается через finally при любом выходе. Ошибка настроек/каталога не блокирует последующие запуски; параллельный вызов не повторяет настройку и создание. diff --git a/docs/ux-ui-stage-11a.md b/docs/ux-ui-stage-11a.md index a1703142..8e951488 100644 --- a/docs/ux-ui-stage-11a.md +++ b/docs/ux-ui-stage-11a.md @@ -1,6 +1,6 @@ # Этап 11А: пользователи и администрирование устройств -Статус: подготовка 2026-10-01. ReUI PRO/base-nova, существующие Frame, KpiStatGrid, Data Grid v9 и Sheet. Изменения последовательно, локальные коммиты без push. +Статус: завершён локально 2026-10-01 (11А.33); внешние ограничения приведены в приёмке. ReUI PRO/base-nova, существующие Frame, KpiStatGrid, Data Grid v9 и Sheet. Изменения последовательно, локальные коммиты без push. ## Референсы и схемы @@ -471,3 +471,13 @@ - 8 новых scheduler/prune unit, весь backend test:backups, backend/contracts build и ESLint изменённых файлов прошли. Реальные PostgreSQL/RouterOS/S3 не проверены. - Обнаружено отдельное ограничение общего scheduler dispatcher: возвращённый snapshot с ошибками пока записывается как status=ok, отказ общего журнала может переобозначить запуск. Исправление общего журнала/статуса входит в 11Б; локальная приёмка backups не доказывает достоверность этого общего экрана. - **Следующий блок 11А.33:** общая профильная регрессия резервных копий и локальная приёмка 11А с явными внешними ограничениями. + + +## Блок 11А.33 — локальная приёмка резервных копий и этапа 11А (2026-10-01) + +- Общая регрессия backups: 69 основных + 2 исходных table/Filters + 28 source/context E2E, 27 frontend unit, весь backend test:backups прошли. Полный frontend TypeScript и production frontend/contracts build прошли; backend build и профильный ESLint прошли в 11А.32. +- Проверены данные/unknown/partial, независимые зависимости, права, черновики расписания/S3, immutable job/checkpoint, serial polling, удаление/restore/download, URL/Filters, клавиатура и ПК/390/320. 24 PNG сохранены, узкий partial job повторно просмотрен; обновлённые снимки от последней регрессии включены в коммит. +- Резервные копии приняты в границах локального UI/API/DI профиля. Пользователи приняты в 11А.8, контейнеры в 11А.13, сертификаты в 11А.24. Этап 11А завершён локально; общая регрессия всех разделов приложения относится к этапу 12. +- Внешняя приёмка: PostgreSQL/Portal/JWT/RouterOS/ACME/S3, физическое восстановление и versioned S3 deletion не доказаны фикстурами. Jobs/checkpoints и scheduler lock не обеспечивают долговечность/межпроцессную идемпотентность. Исторические S3 bucket/endpoint не хранятся. PEM/private key import/export не реализованы. Эти ограничения не скрыты локальными результатами. +- Общий scheduler dispatcher пока может записать snapshot с ошибками как ok; это явный долг этапа 11Б, а не подтверждённая успешность планового запуска на общем экране. +- **Следующий блок 11Б.1:** карта оставшихся разделов и достоверность общего scheduler runner: collector результат отдельно от журнала/событий, без второй записи и ложного ok. diff --git a/docs/ux-ui/screens/backups-create-desktop.png b/docs/ux-ui/screens/backups-create-desktop.png index 77debcfb..cc0eba30 100644 Binary files a/docs/ux-ui/screens/backups-create-desktop.png and b/docs/ux-ui/screens/backups-create-desktop.png differ diff --git a/docs/ux-ui/screens/backups-delete-error-desktop.png b/docs/ux-ui/screens/backups-delete-error-desktop.png index af79f8c1..9c28b96a 100644 Binary files a/docs/ux-ui/screens/backups-delete-error-desktop.png and b/docs/ux-ui/screens/backups-delete-error-desktop.png differ diff --git a/docs/ux-ui/screens/backups-delete-error-mobile.png b/docs/ux-ui/screens/backups-delete-error-mobile.png index e897210d..0a84e929 100644 Binary files a/docs/ux-ui/screens/backups-delete-error-mobile.png and b/docs/ux-ui/screens/backups-delete-error-mobile.png differ diff --git a/docs/ux-ui/screens/backups-delete-error-narrow.png b/docs/ux-ui/screens/backups-delete-error-narrow.png index 5efd8898..a717acc2 100644 Binary files a/docs/ux-ui/screens/backups-delete-error-narrow.png and b/docs/ux-ui/screens/backups-delete-error-narrow.png differ diff --git a/docs/ux-ui/screens/backups-history-desktop.png b/docs/ux-ui/screens/backups-history-desktop.png index a9ab3da2..63c34b8b 100644 Binary files a/docs/ux-ui/screens/backups-history-desktop.png and b/docs/ux-ui/screens/backups-history-desktop.png differ diff --git a/docs/ux-ui/screens/backups-history-mobile.png b/docs/ux-ui/screens/backups-history-mobile.png index 36031784..84e4e3fa 100644 Binary files a/docs/ux-ui/screens/backups-history-mobile.png and b/docs/ux-ui/screens/backups-history-mobile.png differ diff --git a/docs/ux-ui/screens/backups-history-narrow.png b/docs/ux-ui/screens/backups-history-narrow.png index 2183560d..f6cbf52e 100644 Binary files a/docs/ux-ui/screens/backups-history-narrow.png and b/docs/ux-ui/screens/backups-history-narrow.png differ diff --git a/docs/ux-ui/screens/backups-initial-error-desktop.png b/docs/ux-ui/screens/backups-initial-error-desktop.png index 1f541de6..093eb04a 100644 Binary files a/docs/ux-ui/screens/backups-initial-error-desktop.png and b/docs/ux-ui/screens/backups-initial-error-desktop.png differ diff --git a/docs/ux-ui/screens/backups-initial-error-mobile.png b/docs/ux-ui/screens/backups-initial-error-mobile.png index 72071c7a..c27139b5 100644 Binary files a/docs/ux-ui/screens/backups-initial-error-mobile.png and b/docs/ux-ui/screens/backups-initial-error-mobile.png differ diff --git a/docs/ux-ui/screens/backups-initial-error-narrow.png b/docs/ux-ui/screens/backups-initial-error-narrow.png index f2fe4c32..960ed7d8 100644 Binary files a/docs/ux-ui/screens/backups-initial-error-narrow.png and b/docs/ux-ui/screens/backups-initial-error-narrow.png differ diff --git a/docs/ux-ui/screens/backups-partial-job-desktop.png b/docs/ux-ui/screens/backups-partial-job-desktop.png index 91540a08..8ae32d4d 100644 Binary files a/docs/ux-ui/screens/backups-partial-job-desktop.png and b/docs/ux-ui/screens/backups-partial-job-desktop.png differ diff --git a/docs/ux-ui/screens/backups-partial-job-mobile.png b/docs/ux-ui/screens/backups-partial-job-mobile.png index d9282b91..34fd2ac9 100644 Binary files a/docs/ux-ui/screens/backups-partial-job-mobile.png and b/docs/ux-ui/screens/backups-partial-job-mobile.png differ diff --git a/docs/ux-ui/screens/backups-partial-job-narrow.png b/docs/ux-ui/screens/backups-partial-job-narrow.png index d898810b..a70a7408 100644 Binary files a/docs/ux-ui/screens/backups-partial-job-narrow.png and b/docs/ux-ui/screens/backups-partial-job-narrow.png differ diff --git a/docs/ux-ui/screens/backups-restore-unknown-desktop.png b/docs/ux-ui/screens/backups-restore-unknown-desktop.png index 22b1bcd8..65427152 100644 Binary files a/docs/ux-ui/screens/backups-restore-unknown-desktop.png and b/docs/ux-ui/screens/backups-restore-unknown-desktop.png differ diff --git a/docs/ux-ui/screens/backups-restore-unknown-mobile.png b/docs/ux-ui/screens/backups-restore-unknown-mobile.png index 78cf2a7d..72c379a7 100644 Binary files a/docs/ux-ui/screens/backups-restore-unknown-mobile.png and b/docs/ux-ui/screens/backups-restore-unknown-mobile.png differ diff --git a/docs/ux-ui/screens/backups-restore-unknown-narrow.png b/docs/ux-ui/screens/backups-restore-unknown-narrow.png index d2e39cf1..b9fe3894 100644 Binary files a/docs/ux-ui/screens/backups-restore-unknown-narrow.png and b/docs/ux-ui/screens/backups-restore-unknown-narrow.png differ diff --git a/docs/ux-ui/screens/backups-s3-error-desktop.png b/docs/ux-ui/screens/backups-s3-error-desktop.png index b671c54b..059a665f 100644 Binary files a/docs/ux-ui/screens/backups-s3-error-desktop.png and b/docs/ux-ui/screens/backups-s3-error-desktop.png differ diff --git a/docs/ux-ui/screens/backups-s3-error-mobile.png b/docs/ux-ui/screens/backups-s3-error-mobile.png index ebb8acce..8a001124 100644 Binary files a/docs/ux-ui/screens/backups-s3-error-mobile.png and b/docs/ux-ui/screens/backups-s3-error-mobile.png differ diff --git a/docs/ux-ui/screens/backups-s3-error-narrow.png b/docs/ux-ui/screens/backups-s3-error-narrow.png index 40cfeb0c..6e7f82bc 100644 Binary files a/docs/ux-ui/screens/backups-s3-error-narrow.png and b/docs/ux-ui/screens/backups-s3-error-narrow.png differ diff --git a/docs/ux-ui/screens/backups-settings-desktop.png b/docs/ux-ui/screens/backups-settings-desktop.png index f93aae9a..fc608f9e 100644 Binary files a/docs/ux-ui/screens/backups-settings-desktop.png and b/docs/ux-ui/screens/backups-settings-desktop.png differ diff --git a/docs/ux-ui/screens/backups-settings-mobile.png b/docs/ux-ui/screens/backups-settings-mobile.png index 1cdcfa04..eb2b3218 100644 Binary files a/docs/ux-ui/screens/backups-settings-mobile.png and b/docs/ux-ui/screens/backups-settings-mobile.png differ diff --git a/docs/ux-ui/screens/backups-settings-narrow.png b/docs/ux-ui/screens/backups-settings-narrow.png index 5eeb5784..e1c07a69 100644 Binary files a/docs/ux-ui/screens/backups-settings-narrow.png and b/docs/ux-ui/screens/backups-settings-narrow.png differ