Skip to content

v0.4.2 — the update banner clears when the update is done

Choose a tag to compare

@nigelfenton nigelfenton released this 11 Aug 19:31
· 41 commits to main since this release
3b006ca

A usability fix for the one-click updater. Everything else from v0.4.0 (real FM demodulation,
S-meter, SDRplay support, the Pi appliance image) is unchanged and described there.

What was wrong

After installing an update, the setup page kept offering the same update. It reported the
version it had imported when it started, not the one now on disk — so a freshly updated gate still
showed "Update available: v0.4.1 (you have 0.3.0)" until the web UI was restarted.

Nothing was broken by it (installing twice is idempotent), but for an operator who just pressed the
button and was told it worked, being told again that an update is available is exactly the kind of
confusion this feature exists to remove.

The page now reads the version from disk at request time, so the banner clears the moment the
install finishes:

You are up to date (0.4.2).

Also in this release

v0.4.1 — the update guard now sees a gate started by systemd, not only one started from the
setup page. On an appliance the gate normally runs as a service, so the "refuse while running"
check was not firing and an update could install underneath a live radio session. It now refuses
with HTTP 409 and names the right thing to stop.

Both were found the same way: by running the update for real on a Pi 4 rather than trusting the
tests. Every unit test passed throughout — they only exercised the paths the page already knew
about. Both now have regression tests that fail when the fix is removed.

Verified end-to-end on the appliance

A Pi 4 running 0.3.0, with the gate up as a systemd service:

install while running   -> HTTP 409, "stop it before updating"
stop, then install      -> "Updated to v0.4.2." (about 2 seconds)
banner immediately      -> "You are up to date (0.4.2)."   [no UI restart]
start the gate          -> running, streaming, previous version kept alongside

Full changelog: v0.4.0...v0.4.2