When kiosk mode has been enabled on a hydrabody node (via kiosk_mode_enabled in BodyConfig, or POST /api/v1/kiosk/enable), hydrabody uninstall and any non-API shutdown path leave all kiosk side effects in place. The Windows machine is left unusable for the operator (no taskbar, no Win key, no Task Manager).
After removing a render node via hydranode uninstall (which kills hydrabody from outside, so kiosk Disable never runs), the following persisted on the Windows host:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoWinKeys = 1 — Win key blocked, so the user could not open Chrome via Win+R / searchHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr = 1 — Task Manager blockedShell_TrayWnd still hidden — taskbar missing from main displayProgman + WorkerW still hidden — desktop icons missingC:\Windows\System32\config\systemprofile\.hydrabody\ (kioskoverlay.exe + config cache) re-created right after a previous hydranode uninstall removed it, because hydrabody was still runninghydrabody/internal/cli/uninstall_windows.go stops the scheduled task, removes data dirs, firewall rules, and C:\hydrabody, but never touches the registry policies or kiosk window state.hydrabody/pkg/provider/kiosk_windows.go defines KioskController.Cleanup() / Disable() which would correctly revert everything (delete NoWinKeys + DisableTaskMgr, kill overlay, re-show Shell_TrayWnd / Progman / WorkerW). But grep -rn 'Cleanup()\|\.Disable()\|KioskController' cmd/ internal/ pkg/ (excluding the kiosk file itself) returns zero hits. Cleanup is dead code. Only POST /api/v1/kiosk/disable ever invokes the disable path.internal/cli/uninstall_windows.go — before deleting files, force a kiosk teardown unconditionally (idempotent):
taskkill /F /IM kioskoverlay.exe (best-effort)NoWinKeys and DisableTaskMgr registry values (ignore 'not found')showTaskbar / showDesktopIcons, or just taskkill /F /IM explorer.exe and let it respawnKioskController.Cleanup() into the run-loop signal handler so SIGTERM/Ctrl-C / scheduled-task termination also restores state.CLAUDE.md Kiosk Mode section: document that uninstall and shutdown restore kiosk state.reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoWinKeys /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /f
taskkill /F /IM kioskoverlay.exe
taskkill /F /IM explorer.exe
rmdir /s /q C:\Windows\System32\config\systemprofile\.hydrabody
(explorer.exe auto-respawns; this brings back the taskbar and desktop icons.)
kiosk_mode_enabled: true, wait for kiosk to engage.hydranode uninstall on the box.