fix(alerts): отличать неизвестные данные от пустого списка правил

This commit is contained in:
Denozordec committed 2026-10-03 17:30:46 +07:00
1 parent 9bc3a5db77
commit 3710fc6aab
5 files changed
+54 -29

No files matched your search

+9 -1
View File
@@ -28,7 +28,7 @@
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.2.2.1.2; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.3.1.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,14 @@
## Блок 11Б.4.3.1.1 — первоначальное состояние Alerts и strict reader (2026-10-03)
- Live root больше не инициализируется INIT_RULES/INIT_GROUPS/INIT_HISTORY/INIT_TG. До подтверждённого GET нет demo rows, ложного «Всего: 0» и якобы полученной Telegram конфигурации. Known empty отличается от unknown; основной контент раскрывается только после strict getAlerts. Browser receivedAt показан явно; failed background GET сохраняет последний снимок.
- Source-keyed root, active lifetime/AbortController/revision для GET и secondary requests; late primary/final metadata не публикуются в другой lifetime. Load после unmount не начинает новый reader. Браузерные source/ABA проверки этого раздела ещё впереди; мутации пока старые и не приняты.
- Убран прямой demo fallback для live serverNamesForPresets. Secondary BGP/GRE всё ещё последовательные, часть errors маскируется [] и load busy ждёт их; refresh всё ещё заменяет Telegram drafts. Это промежуточная миграция reader, не приёмка Alerts.
- 3 browser reader сценария (malformed без demo/0/Telegram и известный пустой snapshot с failed refresh), lint, typecheck без incremental и production frontend/contracts build прошли. Первый typecheck обнаружил collision active ref/active count и transient tsbuildinfo write error; ref переименован, nonincremental проверка и build прошли.
- Следующий точный шаг 11Б.4.3.1.2: независимые BGP/GRE readers с known/error/time, сохранение last good metadata и source/ABA E2E. Затем Telegram dirty/selective save/test/unknown, rules confirmation/lock/rights/draft preservation/adaptive. GET consistency, optimistic revision и outbox unknown policy ещё требуют аудита; этап 12 не начат.
## Блок 11Б.4.2.2.1.2 — transactional receipt правил (2026-10-03)
- Replace теперь возвращает strict rules/groups receipt из самой transaction. Omitted groups читает внутри той же transaction после nonblocking pg_try_advisory_xact_lock; lock false даёт 409 без очереди/удаления, unknown lock не подтверждает действие. Targets/conditions/groups/rules/last-fired readback использует tx context вместо отдельных pool запросов после commit.