v0.1.0a13 — the headless-vision release
Pre-release
Pre-release
The headless-vision release. GL's video encoder is on-demand — it runs only while a video client is connected — so a headless snapshot/classify/watch (the flagship AI-agent case) used to 503 forever on an idle unit. This release makes it work, grounded in a full live reliability sweep of the GL-RM1PE fleet (.11/.20 V1.9.1, .39 V1.5.1; findings in #176).
Per the support matrix this line stays alpha: only GL-RM1PE is live-validated (V1.9.1 reaches beta-grade there), while the other drivers remain emulator-only.
Added
- Headless
snapshotnow works on idle GL units (#142) — on astreamer: null503 the driver registers a stream client over kvmd/api/ws, waits for the encoder (~1.5s), and retries. Verified live: recovers a valid JPEG on RM1PE V1.9.1; on V1.5.1 it emits H.264, honestly surfaced (#107), not a false success. GLKVMDriver.streamer_warm()keep-alive (#142) — holds the stream client open in a background thread so everysnapshotin the block is instant (~0.1s vs ~5s cold), no vision/LLM.watchand MCPwait_for_stateuse it.websocket-clientpromoted to a base dependency — headless GL snapshot needs it;eventsnow works out of the box (kvm-pilot[ws]kept as a no-op alias).- GLKVM quirk
snapshot-needs-video-client; driver-features (#171) + reusable hardware test plan (#172) docs, published to the wiki.
Fixed
snapshot503 no longer misdiagnoses an idle streamer as a wedged encoder (#173) — and the matchingvideo-signalhealthcheck remediation.power/power-cycleon unwired ATX returns a clearCapabilityErrorinstead of an opaqueHTTP 500(#174).
Full changelog: see CHANGELOG.md. Install: pip install --pre kvm-pilot.