docs: align engineering and UI checklists
This commit is contained in:
@@ -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 без противоречащих статусов.
|
||||
|
||||
@@ -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-проверки
|
||||
|
||||
|
||||
+6
-2
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user