Eleven releases in five days — the usual changelog is in the repo, but here is the human version of what actually changed and why you should care. The short version: the VS Code extension grew up, proxy mode stopped mangling your UI text, and a pile of small things stopped being annoying.
flua started as a command-line engine — and stays one, because agents and scripts need that. But the releases from 0.1.136 on add the app layer on top: a flua icon in the activity bar with an HC3 hub view.
fibaro.call(/fibaro.getValue(, device IDs
complete with names and rooms; global variables, scene IDs, and
custom events complete in their calls — fed by your real hub, or by a
seed/db file for a simulated house with no controller at all. One command
writes a HT.kitchen.light home table.flua --tool hub add cottage http://192.168.2.30 admin stores
it once; the hub view's switch button (or hub switch cottage)
rewrites the .env chain — and a --project switch pins just
one folder. Passwords stay in a 0600 file, never in the extension.Everything the tree does is a --tool command first
(hubList, house, hub), so agents get
the same surface as the GUI — that's the design rule, and it holds.
Several releases hardened proxy mode — the QA runs on your laptop while
the device lives on the HC3. The headline fix: non-ASCII survives.
UI labels with ▲ ▼ °C ∞ were being stored by the HC3 as mangled
Latin-1 whenever flua escaped them as JSON sequences; flua now sends raw
UTF-8 everywhere, uploads and updates alike. Related fixes landed around
it: updateView and updateProperty from the proxy
now reach the live HC3 UI through the proxy's own QA, half-created devices
from failed uploads are reported instead of piling up, proxy cleanup
failures abort with a clear message, and a firmware that answers uploads
with a bare id or Latin-1-encoded text is handled.
Two developer niceties in the same stretch: _FLUA.mainPath
gives a QA the directory its main file lives in, so
io.open(_FLUA.mainPath .. "zones.json") finds sibling data
files from any working directory; and one HC3 quirk is now documented in
the notes (the classic web UI does not re-render a slider's value on
updateView — the new mobile view does, and a reload shows the stored
value, so it's a display bug, not your code).
onAction, and booting targets wait
instead of vanishing.-e snippets
log as [QA5000], not [QA50005000].--tool ui --device can fetch a device's UI back into
--%%u rows.CI runs the suite on Python 3.11–3.15; the 3.15 track was 3× slower because it compiled lupa from source every run — a poisoned cache held a lupa version flua deliberately excludes. Fixed and pinned; the track now runs in ~1m15s like the others. And the project's positioning got written down: flua is the engine, wizards and views are apps on top of it — the extension is the first one, not the last.
The full series lives in the forum index (posts 01–32) — the newest, "Your QA workflow inside VS Code", shows the extension's pieces in action. If something here misbehaves for you, the troubleshooting post tells you where to look first, and the feedback loop post tells you how to make it our problem, not yours.