release: prepare server 0.9.0

This commit is contained in:
2026-07-31 00:28:22 +03:00
parent a343963bf0
commit f492782aff
34 changed files with 1156 additions and 380 deletions
+29 -62
View File
@@ -1,70 +1,37 @@
# Полный UI/UX-аудит
# UI/UX audit record
Дата основного аудита: 2026-07-21. Синхронизировано с notification UI: 2026-07-22.
Production проверен на реальной учётной записи, изменения — на изолированной локальной
Docker-сборке с фиктивным роутером и длинными тестовыми значениями.
Основной аудит: 2026-07-21. Последняя синхронизация: 2026-07-31.
## Авторизация и общий каркас
Это запись уже выполненной проверки, а не список будущей разработки. Актуальные
критерии повторной приёмки находятся в `UI_CHECKLIST.md`.
- [x] Вход, выход и понятное состояние ошибки авторизации.
- [x] Личный кабинет, профиль, e-mail, смена пароля и восстановление доступа представлены единообразно.
- [x] Header, боковая и мобильная навигация, отступы, фокус и зоны нажатия.
- [x] Loading, empty, offline, reconnecting, forbidden, timeout и server error используют общий визуальный язык.
- [x] Нет горизонтального overflow или недоступных действий в основном каркасе.
## Подтверждённая базовая проверка
## Список и карточка роутера
- [x] Login, recovery, profile, password, users и sessions используют общий layout.
- [x] Fleet и все вкладки роутера проверены с длинными hostname/ID/IPv6.
- [x] Основной layout не имеет page-level overflow на 1920, 1366, 1024×768,
768×1024, 390×844 и 360×800.
- [x] Cloud LuCI starting/offline/expired/401/403/404/409/429/502/503/504 используют
согласованный дизайн и request ID.
- [x] Landing motion, scroll reveal и reduced-motion fallback проверены.
- [x] Видимый focus, touch targets и внутренний scroll диалогов проверены.
- [x] Notification profile и delivery history проверены локально на tablet/mobile.
- [x] Недоступные SMTP/Telegram channels блокируются с объяснением.
- [x] Provider error отображается безопасно и не раскрывает destination/secret.
- [x] Поиск, фильтры, обновление и длинные имена/ID/IPv6 не ломают сетку.
- [x] Статусы online/offline/reconnecting понятны по цвету и тексту.
- [x] Все шесть вкладок карточки проверены в 4:3 и на телефоне.
- [x] Широкие таблицы превращаются в карточки либо остаются внутри локального scroll-контейнера.
- [x] Мобильные действия и нижняя навигация остаются видимыми и доступными.
## Добавлено после основного production-аудита
## Облачный LuCI
- [x] Notification center, unread/read, incident grouping и SSE refresh реализованы в `main`.
- [x] E-mail/Telegram verification, webhook, quiet hours и per-device overrides реализованы в `main`.
- [x] LAN clients online/recent/unconfirmed и `last_seen` реализованы в `main`.
- [ ] Эти изменения выпущены в новом server release после `server-v0.8.1`.
- [ ] Полная browser matrix повторена на опубликованном server release.
- [ ] Реальная SMTP/Telegram/webhook доставка проверена на production.
- [ ] Retry/dead-letter и длинный provider error проверены в production history.
- [ ] Online → recent → unconfirmed подтверждено на реальных wired/Wi-Fi клиентах.
- [x] Верхняя и карточная кнопки используют один сценарий и не зависят от состояния друг друга.
- [x] Повторное нажатие блокируется на время запроса; открытая вкладка показывает состояние подключения.
- [x] Проверены starting, offline и expired; backend-тесты покрывают grant, cookie и проксирование.
- [x] Ошибки 401/403/404/409/429/502/504 имеют понятный текст, возврат в RMM и request ID.
- [x] Отдельная страница ошибки приведена к стилю кабинета и проверена на телефоне.
## Ограничения
## Лендинг и motion
- [x] Последовательное появление hero без блокировки управления.
- [x] Scroll-reveal для возможностей, партнёров, безопасности и CTA.
- [x] Спокойные hover/press-переходы для CTA, навигации и партнёров.
- [x] Ненавязчивое движение фоновых градиентов без layout shift.
- [x] `prefers-reduced-motion: reduce` отключает декоративное движение.
- [x] Контент остаётся видимым при отключённом JavaScript.
## Матрица экранов
- [x] 1920×1080 — широкий desktop.
- [x] 1366×768 — ноутбук.
- [x] 1024×768 — формат 4:3.
- [x] 768×1024 — tablet portrait.
- [x] 390×844 — современный телефон.
- [x] 360×800 — узкий телефон.
## Качество
- [x] Видимый keyboard focus, логичный tab order и зоны нажатия не меньше 42 px для ключевых действий.
- [x] Диалоги ограничены viewport, прокручиваются внутри и предсказуемо закрываются.
- [x] Нет синтаксических ошибок JavaScript и необработанного горизонтального overflow.
- [x] Go tests/vet, Compose config, Docker build и проверка diff проходят.
## Уведомления — новый блок
- [x] Персональные настройки e-mail/Telegram и порогов алертов.
- [x] Warning, critical, resolved, repeat и тестовая отправка.
- [x] История queued/sending/retry/sent/dead-letter использует только masked destination.
- [x] Повторить browser matrix нового profile-раздела перед production deploy.
- [x] При отсутствии SMTP и Telegram token каналы недоступны и объясняют причину.
- [x] Ошибка тестовой отправки показана по-русски и сохраняет request ID.
- [ ] Реальная доставка через production SMTP и Telegram проверена из пользовательского профиля.
- [ ] Retry/dead-letter доставка и длинный текст ошибки проверены в истории без раскрытия внутренних деталей.
## Ограничения production-проверки
- Смена пароля и e-mail на production намеренно не выполнялись, чтобы не изменять реальную учётную запись; формы и API покрыты локальной проверкой и автоматическими тестами.
- Исправления становятся видны на `rmm.daemonlord.ru` после развёртывания нового Docker-образа.
- Изменения пароля/e-mail на production ранее не выполнялись, чтобы не менять реальную
учётную запись; формы и API проверялись локально.
- Галочка «реализовано в `main`» не заменяет release и production smoke.