Tracking issue for the work left after #507 (single-app kiosk, M0-M4 delivered) and the omarchy port (#493). Validation cannot happen soon because the test head is offline.
M4 regression, found 2026-08-20: createLauncher mapped the agent's hardware_decode=true to VDS_FORCE_HARDWARE. Scene mode creates its decoder windowless AFTER connectionStarted, so a windowless VAAPI failure had no fallback and killed the live session one second after start (state pushes: streaming -> error, on every body). Reported as "no bodies found" but discovery was fine.
Fix: hydra-experiencenet cc275ea3 (scene mode always uses VDS_AUTO). Fixed v6.1.37 AppImage is published (backfill run 32314652958).
To validate on the Air (node-5e0ea2c8, cranky-toaster-86):
The Air runs a sideloaded dev build "9.9.9-m4test" in ~/.hydranode/bin. That version out-ranks every release, so the Air will NEVER self-update until a real tag replaces it. Tag agent v2.2.5 (repo hydraheadflatscreen, main at 19bbd55) once the owner clears releases, then reinstall on the Air.
Next hydra-experiencenet tag (v6.1.38) carries to the Mac fleet: M1-M4 Linux-gated code (dead code on macOS), the #498 help-dialog version line, and the libva AppImage fix. Owner said: do not touch anything but Linux yet.
Soak test, performance capture (pidstat) of the scene-mode path, Wayland experiment.
KioskView.qml postData() throws on an empty or non-JSON response. If the agent restarts mid-tap, the callback never runs, streaming stays true, and the veil covers the grid forever. Shared QML (all platforms), so it was not fixed under the Linux-only constraint. Add try/catch plus an error path.
Owner saw imprecise clicks; not attributed to the head. Retest on a second body after the decoder fix is validated. Related: duplicate VDD on a body breaks absolute input (#428 pattern).