0.0.17: a staged bundle now reaches the state file, so the restart button exists
⛔ `writeState()` ran ONCE at boot. With the watch, the download lands SECONDS
later — so `app-update.json` still said `staged: null` and settings rendered "Up
to date" with no restart button, over a bundle sitting on disk.
Seen directly in logcat rather than inferred: `ota: staged 791a4f78…` on the
device, `staged: null` in the state the page reads.
The `say` callback is the only signal that crosses out of `startOta`, so the
rewrite keys on it — narrowly (`/^ota: staged /`), so an unrelated line cannot
trigger a spurious write.
⚠ This is the third time today a value was correct in one layer and stale in the
one that renders it: the banner needed `running`, the settings section printed
only what it already agreed with, and now the file itself lagged the event.
Rendering a snapshot of a thing that changes underneath is the recurring shape.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
d0a7504b0523d06c2ee466cf144b2136ad096b79
by plankatron <fleeky@gmail.com> · 2026-09-10T18:51:25.000Z