0.5.0 (2026-08-23)
⚠ BREAKING CHANGES
- settings: collapse NVS access behind one descriptor table (#91)
Bug Fixes
- settings: clamp timezone offset on read, write and apply (#90) (bf654f0)
- ui: publish the WiFi status icon instead of painting it under a lock (#93) (ca136fd)
Refactoring
- backoff: extract the shared retry policy into one module (#85) (c6d8516)
- ble: name the provisioning session, replace five flags with a tested machine (#99) (f91f5d2)
- bsp: put button input policy behind a pure decision seam (#88) (82fc249)
- derive the battery icon and brightness clamp from one view (#89) (1b96ecb)
- settings: collapse NVS access behind one descriptor table (#91) (ed873c9)
- ui: drive the settings screen from the descriptor table (#92) (93d75ba)
- ui: publish the provisioning overlay and the MicroLink handle (#95) (1a89d64)
- ui: publish the SNTP and Tailscale status icons (#94) (7981583)
- wifi: move connect-time work off the WiFi task (#96) (bbece22)
- wifi: state wifi_manager_stop()'s contract in its public header (#87) (3dd3b47)
Flash a blank board (offsets frompio run -t upload -v, esp32s3, 16MB flash):
esptool.py --chip esp32s3 write_flash -z --flash_mode dio --flash_freq 80m --flash_size 16MB \
0x0 bootloader-0.5.0.bin \
0x8000 partitions-0.5.0.bin \
0xe000 ota_data_initial-0.5.0.bin \
0x10000 firmware-0.5.0.bin
Verify downloads: sha256sum -c checksums-0.5.0.txt