fix(ui): сохранять контекст и блокировку рекурсивных маршрутов

This commit is contained in:
Denozordec committed 2026-09-30 21:43:41 +07:00
1 parent 52493debc2
commit 50fad3ac80
10 files changed
+223 -28

No files matched your search

+10 -1
View File
@@ -26,11 +26,20 @@
| 7 | Серверы и мониторинг: детали, формы, URL-контекст, права | Завершён в границах локальной приёмки 2026-09-23; внешние ограничения ниже |
| 8 | Трафик и статистика | Завершён 2026-09-28 в границах локальной приёмки; ограничения в блоке 8.13 |
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | В работе: 10.1–10.25; операции/валидация рекурсивных маршрутов, далее URL/source |
| 10 | Маршрутизация, диагностика, карта и терминал | В работе: 10.1–10.26; URL/source маршрутов, далее observed metadata |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Не начат |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
## Блок 10.26 — URL и source/history рекурсивных маршрутов (2026-09-30)
- server/q/route/table сохранены в URL. Default устройство записывается через replace; выбор/раскрытие используют history, поиск replace. Чужие query-поля сохранены. Missing/invalid/repeated/oversized контекст блокирует срез; route требует table. Отсутствующая группа закрывается отдельно.
- ServerRail preserveSelection исключает автоматический переход с отсутствующего устройства на первый сервер. Предварительная проверка выявила этот fallback; исправление подтверждено.
- Общий lock живёт над device context и привязан к mode/backend. URL/history не снимает pending запись; завершение перечитывает текущий контекст соответствующего источника. Late read/write старого backend/режима не меняют новый снимок и не показывают старые toast/error.
- Путь recursive-routes использует mm:network:read, как backend. Readonly/disabled устройства по-прежнему не могут сохранять или восстанавливать.
- Проверки: 38 разных основных E2E в совокупности (первый прогон 37/38, после исправления missing-device прошли все 11 links), восемь source E2E, два unit, TS/lint и production frontend 34 страницы прошли. Source mock проверки используют фактическую заглушку раздела, без требования отсутствующей mode badge.
- Далее 10.27: строгие наблюдаемые поля маршрутов/шлюзов; затем layout/keyboard/screens и профильная приёмка. Legacy mapper ещё подставляет distance/default flags, реальный RouterOS/DB/JWT не проверен. Последняя квота: 46% окна, 38% недели использовано. Локальный коммит без push.
## Блок 10.25 — backend-валидация рекурсивных операций (2026-09-30)
- PUT требует явные serverId/routes и валидные параметры каждого маршрута; отсутствие routes не превращается в удаление всех managed-маршрутов. Пустой массив остаётся допустимым намеренным действием. Нули distance/scope/targetScope сохраняются.