fix(alerts): подтверждать запись правил и сохранять формы при сбое

This commit is contained in:
Denozordec committed 2026-10-03 18:13:57 +07:00
1 parent 875819c577
commit 9c1d14635a
9 files changed
+198 -154

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
## Актуальная точка продолжения — 2026-10-03
Этап 11Б в работе; последний проверенный блок 11Б.4.3.2; System DB принят локально с внешними ограничениями. Следующий блок 11Б.4.3.3: правила и группы — strict receipt, права, общий замок, сохранение формы при ошибках и unknown review; затем GET/revision/outbox audit, общий dashboard permission reader, Releases/probe scheduling и приёмка 11Б/12.
Этап 11Б в работе; последний проверенный блок 11Б.4.3.3; System DB принят локально с внешними ограничениями. Следующий блок 11Б.4.3.3.1: защищённый тест Telegram из редактора правила с общим checkpoint и замком; затем согласованность GET/revision/outbox, общий dashboard permission reader, Releases/probe scheduling и приёмка 11Б/12.
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
+10 -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.3.2; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.3.3; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,15 @@
## Блок 11Б.4.3.3 — запись правил и групп по подтверждению API (2026-10-03)
- Strict saveAlertRules подключён вместо generic PUT/оптимистичной подмены. Pending/failed/unknown оставляет последний подтверждённый список; editor ждёт receipt и закрывается только после success, error/unknown сохраняет draft. Исправлена потеря recoveryMode/recoveryStabilitySec при edit — форма передаёт сохранённую политику.
- Группы имеют отдельный локальный draft и явное сохранение: ввод имени/ANY/ALL/cooldown/enabled больше не пишет на каждый символ. Ошибка сохраняет draft. Удаление правила/группы требует dialog; group delete снимает membership, сохраняет rules.
- Общий synchronous lock правил/Telegram, caller abort/source lifetime, отмена primary GET до записи, права alerts:write/live/health и unknown checkpoint на источник (без секретов). Refresh/reload/ABA не разрешают повтор unknown автоматически. В редакторе есть explicit review, позволяющий сохранить draft перед повтором; storage-unavailable limitation тот же.
- Пресет без подтверждённых объектов не очищает список; live RTT preset использует подтверждённые rttLossTargets для 8.8.8.8 вместо выдуманной пробы по имени сервера. Демо mutation controls выключены. Действия строки имеют accessible names и видны с клавиатуры/на телефоне.
- 8 rules/groups browser + 2 source ABA, 10 Telegram regression, typecheck без incremental/lint, contracts/frontend production build и профильный ReUI audit пройдены. Первые selectors уточнены для двух Add entry points и Next route announcer. Весь Alerts ещё не принят: старый preview Telegram из editor временно выключен до подключения общего guard; оставшиеся picker scroll/a11y и backend consistency впереди.
- Следующий точный шаг 11Б.4.3.3.1: защищённый тест Telegram из редактора правила с общим checkpoint и замком; затем согласованность GET/revision/outbox, общий dashboard permission reader, Releases/probe scheduling и приёмка 11Б/12.
## Блок 11Б.4.3.2 — подтверждённые параметры и тест Telegram (2026-10-03)
- Новая форма на установленном OpsPanel/Frame хранит dirty поля отдельно от полученного snapshot. Refresh сохраняет черновик, untouched поля получают новые данные; PUT передаёт только изменённые поля. Токен не сохраняется в browser storage. Пустой thread отправляется явно null; некорректное число остаётся в форме и не отправляет API.
+5
View File
@@ -258,3 +258,8 @@ Primary и три вторичных reader независимы, partial GRE с
### 11Б.4.3.2 — Telegram (2026-10-03)
Dirty/selective save, strict receipt, общий lock, bounded source lifetime, unknown checkpoint без секретов и права alerts:write. 10 профильных browser сценариев + 4 source ABA, регрессия readers, lint/typecheck; форма 320px просмотрена. API acceptance не означает доставку. Rule preview и реальные Telegram/PG пока не приняты. Далее 11Б.4.3.3: правила и группы — strict receipt, права, общий замок, сохранение формы при ошибках и unknown review; затем GET/revision/outbox audit, общий dashboard permission reader, Releases/probe scheduling и приёмка 11Б/12.
### 11Б.4.3.3 — правила и группы (2026-10-03)
Strict receipt вместо optimistic overwrite, draft editor/group формы, права/common lock/source/unknown, подтверждение delete и сохранение recovery policy. 8 browser + 2 source, Telegram regression, typecheck/lint/build пройдены. Preview Telegram временно disabled; picker и backend consistency ещё не приняты. Далее 11Б.4.3.3.1: защищённый тест Telegram из редактора правила с общим checkpoint и замком; затем согласованность GET/revision/outbox, общий dashboard permission reader, Releases/probe scheduling и приёмка 11Б/12.