Skip to content

v2.2.0 — Hardened: Real JSON Parsing, Safe Defaults, CI

Latest

Choose a tag to compare

@Platano78 Platano78 released this 03 Jul 17:03
· 4 commits to master since this release

What's New

This release finishes the hardening pass on the daily-driver launcher and makes the repo's defaults safe for anyone who copy-pastes them.

Highlights

  • Real JSON parsing for buttons.json — a dependency-free recursive-descent parser (JsonConfig.cs) replaces the old regex parser, which silently truncated at the first ] inside any value. The writer now escapes strings properly and round-trips every field (router, serverPorts, radioGroup, pollHost were previously dropped on save). Malformed configs fall back to defaults instead of half-parsing.
  • Safe network defaultsstart-router.sh and gpu-vram-server.py now bind 127.0.0.1 by default. The llama.cpp router API (model load/unload + inference) has no auth, so LAN exposure is an explicit opt-in (ROUTER_HOST=0.0.0.0 / --bind 0.0.0.0), documented in the README.
  • CI for repo invariants — GitHub Actions now validates example JSON, shellchecks the scripts, compiles the VRAM server, and enforces the paired active/off icon convention on every push and PR.

Fixed

  • Launcher thread safety: dictionaries shared between the 30 FPS render thread and button-exec threads are now lock-guarded
  • Process handle leak: every launched Process is disposed (previously one leaked handle per button press)
  • Settings panel: polls the router host/port configured in buttons.json (was hardcoded 127.0.0.1:8081) with a 750 ms timeout instead of a blocking connect on the UI thread
  • Clipboard Agent couldn't build from a fresh clone (phantom icon.png reference, non-standard framework DLL path)
  • Static thumbnails no longer hardcode a 16 GB card; leftover SDK-template URL fixed; GpuInfo reuses a single HttpClient

Changed

  • Debug log files are now opt-in via WIGI_DEBUG=1 — released widgets no longer write to C:\temp or the Desktop continuously
  • README documents the buttons.json trust model: scriptPath runs verbatim via cmd.exe /c, so treat the file like a startup script

Removed

  • Dead ProcessLauncher.cs in the launcher

Full Changelog

See CHANGELOG.md for complete details.