diff --git a/CHECKLIST.md b/CHECKLIST.md index 98edb2c..31fd306 100644 --- a/CHECKLIST.md +++ b/CHECKLIST.md @@ -14,6 +14,7 @@ - [x] Acknowledge/resolved lifecycle и audit events. - [x] E-mail/Telegram notifications, пользовательские пороги, repeat и delivery history. - [x] Reverse tunnel, cloud LuCI и wildcard router domain. +- [x] DirectDNS удалён из продукта; адресация роутеров работает только через cloud/wildcard-домен и исходящий туннель. - [x] UCI preview/apply/commit/revert/backup/restore operations. - [x] Fleet filters, bulk commands, metrics history и SSE auto-refresh. - [x] Адаптивный UI и согласованные error/loading/empty состояния. @@ -29,6 +30,12 @@ ## Следующая разработка +- [ ] Восстанавливать зависшие `queued`-доставки после перезапуска сервера; добавить retry/backoff, лимит попыток и dead-letter состояние. +- [ ] Добавить retention и плановую очистку `notification_deliveries`, а также определить политику защиты e-mail и Telegram Chat ID в SQLite. +- [ ] Добавить подтверждение e-mail и безопасную привязку Telegram-чата перед включением канала. +- [ ] Сделать встроенный центр уведомлений: unread/read, счётчик, переход к роутеру и обновление через SSE. +- [ ] Настройки по типам событий, maintenance/snooze и временное подавление алертов на период работ. +- [ ] Добавить операционные метрики уведомлений: queued/sent/failed, возраст очереди и последняя ошибка канала. - [ ] Активная проверка проводных клиентов и `last_seen`, чтобы flow offload не оставлял реально работающий ПК в состоянии `STALE`. - [ ] Подписанный webhook channel. - [ ] Quiet hours/timezone и per-device notification overrides. @@ -42,6 +49,8 @@ ## Постоянная проверка изменений +Это повторяемый шаблон для каждого следующего изменения. Результат последнего проверенного коммита фиксируется отдельно ниже. + - [ ] `gofmt` и `go test ./...`. - [ ] `go vet ./...`. - [ ] `node --check web/app.js` и `web/landing-motion.js`. @@ -49,3 +58,18 @@ - [ ] Docker build. - [ ] Desktop 1366/1920, 4:3 1024, tablet 768 и mobile 390/360. - [ ] Отсутствие секретов и случайных production-файлов в diff. + +## Последняя верификация — `6a03061` + +- [x] `gofmt`, `go test ./...` и `go vet ./...`. +- [x] `node --check web/app.js` и `web/landing-motion.js`. +- [x] `docker compose config --quiet` и Docker build. +- [x] Notification profile: 768×1024, 390×844 и 360×800 без горизонтального overflow. +- [x] Недоступные SMTP/Telegram-каналы блокируются с понятной подсказкой. +- [x] Ошибки тестовой отправки локализованы и сохраняют request ID. +- [x] Проверены diff и отсутствие реальных секретов; присутствуют только безопасные example-placeholder значения. + +## Документация при изменении API и конфигурации + +- [ ] Синхронизировать `server/README.md`, `docs/api.md` и `.env.example` с endpoint и переменными окружения. +- [ ] Обновить `docs/recent-progress.md`, checklist и roadmap без противоречащих статусов. diff --git a/UI_AUDIT_CHECKLIST.md b/UI_AUDIT_CHECKLIST.md index f6ed8aa..e841089 100644 --- a/UI_AUDIT_CHECKLIST.md +++ b/UI_AUDIT_CHECKLIST.md @@ -59,6 +59,10 @@ Docker-сборке с фиктивным роутером и длинными - [x] Warning, critical, resolved, repeat и тестовая отправка. - [x] История queued/sent/failed использует только masked destination. - [x] Повторить browser matrix нового profile-раздела перед production deploy. +- [x] При отсутствии SMTP и Telegram token каналы недоступны и объясняют причину. +- [x] Ошибка тестовой отправки показана по-русски и сохраняет request ID. +- [ ] Реальная доставка через production SMTP и Telegram проверена из пользовательского профиля. +- [ ] Failed-доставка и длинный текст ошибки проверены в истории без раскрытия внутренних деталей. ## Ограничения production-проверки diff --git a/UI_CHECKLIST.md b/UI_CHECKLIST.md index 741a31b..7256dc9 100644 --- a/UI_CHECKLIST.md +++ b/UI_CHECKLIST.md @@ -18,8 +18,8 @@ ## Проверить перед выпуском notification UI - [ ] Профиль без e-mail: e-mail channel выключен с понятной подсказкой. -- [ ] SMTP отсутствует: e-mail channel недоступен, остальные настройки сохраняются. -- [ ] Telegram token отсутствует: Telegram channel недоступен. +- [x] SMTP отсутствует: e-mail channel недоступен, остальные настройки сохраняются. +- [x] Telegram token отсутствует: Telegram channel недоступен. - [ ] Неверный Chat ID и пороги показывают ошибку формы. - [ ] Test send показывает sent и failed без раскрытия секретов. - [ ] История корректна при пустом списке и длинной ошибке доставки. @@ -28,6 +28,10 @@ ## Следующие элементы +- [ ] Встроенный notification center: колокольчик, unread/read, счётчик и переход к источнику события. +- [ ] Фильтры уведомлений по роутеру, типу, severity, каналу и статусу доставки. +- [ ] Настройки отдельных типов событий и maintenance/snooze для роутера. +- [ ] Экран состояния каналов: последняя успешная отправка, последняя ошибка и тест соединения. - [ ] Quiet hours/timezone. - [ ] Webhook editor с ротацией секрета. - [ ] Per-device notification override.