HydraIssues

Single-app kiosk follow-up: validate VDS_AUTO fix, agent v2.2.5, M5, release decisions
open unclassified Project: hydraheadflatscreen Reporter: anonymous 20 Aug 2026 09:07

Description

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.

1. Validate the scene-mode decoder fix (highest priority)

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):

  • Read /tmp/m4-repro2.log on the Air. Expect "Failed to create decoder in scene mode" to confirm the diagnosis.
  • Force-refetch the AppImage (same-version backfill does not auto-update).
  • One tile tap must reach a live stream (state pushes connecting -> streaming, no error).
    Current Air state: kiosk_disabled=true (owner request); district restored to bxl1-test-2 / cloud-seven on 2026-08-20.

2. Replace the sideloaded dev agent binary

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.

3. Fork release decision (owner-gated)

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.

4. M5 from the #507 plan (not started)

Soak test, performance capture (pidstat) of the scene-mode path, Wayland experiment.

5. Known fragile: stuck "Preparing stream" veil

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.

6. Residual clicking imprecision

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).