Etap 21 — Dwa tryby serwisowe (komunikat vs zamknij kiosk)¶
Rozdzielenie trybu serwisowego na dwa niezależne, sterowane z panelu i z traya Kiosk Helpera.
Co weszło¶
| Tryb | Flaga | Efekt |
|---|---|---|
| Komunikat | Machine.maintenanceMode |
kiosk widoczny + baner „przerwa serwisowa" (renderowany z /machines/me) |
| Zamknij kiosk | Machine.kioskClosed (nowe) |
kiosk zamknięty, zostaje tylko Helper → dostęp do Windows na maszynie |
Backend¶
- Migracja
kioskClosed Boolean @default(false);publicSelect+meSelfzwracają flagę. PATCH :id/kiosk-closed(admin),POST me/service-mode { maintenanceMode?, kioskClosed? }(klucz maszyny — sync tray ↔ web).
Web¶
- Panel SmartConf: 2 przyciski („Komunikat na kiosku" / „Zamknij kiosk (serwis Windows)") + badge „Kiosk zamknięty".
Helper¶
- Czyta obie flagi z
/machines/me;kioskClosed(lokalny tray lub panel) → supervisor zatrzymuje/utrzymuje kiosk zamknięty (Reconcile()aktywnie ubija wracający kiosk).maintenanceModenie dotyka procesu kiosku.
Status¶
Wdrożone (backend migracja + Helper na LockerBox/DynaBox). Zweryfikowane: „zamknij" trzyma kiosk zamknięty ≥40 s, otwarcie natychmiast.