fix(ui): учитывать права и состояние устройства при откате истории

This commit is contained in:
Denozordec committed 2026-10-13 19:45:39 +07:00
1 parent 5ce20e8892
commit c8f9c83f45
17 files changed
+388 -16

No files matched your search

+12 -2
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта.
Актуальное продолжение 2026-10-13:207 history restore rights всех6 caller: defaultdeny, reader/disabled/write guards,40 E2E и24 live UI passed; GRE reader50 enabled baseline закрыт. Frontend ux-history207/backend ux-lock200. Следующий208 — WireGuard includePrivateKey GET иread-only controls сетевыхworkspaces.12.5 открыта.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -708,7 +708,7 @@ flowchart LR
## 12.5.77 — основной блок IPsec (2026-10-09)
Актуальное продолжение 2026-10-13:206 keyboard/focus live24 reader/admin1440/320 passed, Dialog/Sheet tab trap иEscape restoration, mutations0. Runtime frontend ux-accessibility205/backend ux-lock200. Следующий207 — права кнопки отката всех потребителей ConfigHistorySheet; GRE пока не передаёт restoreDisabled.12.5 открыта.
Актуальное продолжение 2026-10-13:207 history restore rights всех6 caller: defaultdeny, reader/disabled/write guards,40 E2E и24 live UI passed; GRE reader50 enabled baseline закрыт. Frontend ux-history207/backend ux-lock200. Следующий208 — WireGuard includePrivateKey GET иread-only controls сетевыхworkspaces.12.5 открыта.
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
@@ -2231,3 +2231,13 @@ Actual Portal reader/admin JWT, deployed frontend ux-accessibility205/backend ux
Первоначальная мгновенная проверка DOM containment после Tab иногда видела асинхронный focus transition Base UI; финальный тест ждёт стабильногоcontainment черезpoll. Product focus code не менялся. Это проверка listed states, не full keyboard/screen-reader certification всехформ. Source/runtime unchanged. Протокол: [actual keyboard24](ux-ui/acceptance/keyboard206-live-2026-10-13.json).
В source review обнаружено: GRE caller не передаёт существующий restoreDisabled вобщий ConfigHistorySheet, defaultfalse. Backend write guard не отменяет необходимость корректного UI. Следующий207 — аудит всехcaller иread-only/disabled/device state запреты кнопки отката, профильныеfixtures иlive UI безapply.12.5 открыта.
## 12.5.207 — права отката общей истории конфигураций (2026-10-13)
Actual Portal reader настаром frontend ux-accessibility205 видел50 enabled restore buttons GRE; безнажатия подтверждёнbaseline.5 из6 ConfigHistorySheet caller не передавалиrestoreDisabled,defaultfalse. Теперь propобязателен, defaulttrue дляuntyped omission; GRE/WireGuard/IPsec/Filters/Firewall передаютpermission/device/busy guards. Recursive routes ужеимелиguard. Reader требуетnetwork:write (Filters filters:write), disabled/missing device запрещаетaction; GRE/IPsec/Firewall используютexisting readiness guards. Callbacks пятиcaller повторно проверяютpermission непосредственно передrequest. ШаблоныReUI/Timeline/Sheet/vendor unchanged; текст объясняет недоступностьотката.
Перваяширокая Filters readiness condition заблокировала прежнийдопустимыйretry послеapplied+failed read.3 regression failures обнаружены иисправлены: Filters используетpermission/enabled/operation guards, stale/failed read не добавляетновый запретrollback. Существующие правиласетевыхопераций сохранены.40 unique E2E(24 role/devicefixtures+16 existing restore/error/retry/lock),68987ms,0unexpected/skips. TypeScript/ESLint0errors;12 старыхunused import warnings Filters не менялись. Native apply толькоmocked tests, наCHR откатне выполнялся.
Production frontend ux-history207/source527 matched, backend ux-lock200/Portal/AUTH_REQUIRED сохранены.24 actual live UI6sections×reader/admin×1440/320 наpopulated historical metadata: readerbuttons disabled, adminenabled послеstable device read, informativecopy, nooverflow, Escape→trigger, mutationrequests0. Первыйadminrecursive check сделан доокончанияread ивиделcorrect temporarybusy; тестисправлен наожиданиеready, productguard неослаблялся. Own Portal users удалены204. Credentials/native configs не менялись.
Протоколы: [live baseline](ux-ui/acceptance/history207-baseline-live-2026-10-13.json), [E2E40](ux-ui/acceptance/history207-e2e-2026-10-13.json), [live24](ux-ui/acceptance/history207-live-2026-10-13.json), [deployment](ux-ui/acceptance/history207-deployment-2026-10-13.json). Следующий208: source GET WireGuard includePrivateKey флагне проверяетwrite permission; scoped nativekey privacy +read-only network workspaces.12.5 открыта.