You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1 + 3 from the roadmap:
- Backup/restore now also covers per-path EQ rules, the listening-statistics ring
buffer (new GET/POST /playstats with Playstats ring accessors) and the Sync settings
section (the restore section list previously omitted 'sync', so server/peer/branding
sync config was silently dropped on restore).
- Password hygiene: sync/peer/MQTT/FTP passwords are only written into the export when
the credentials checkbox is ticked (relabelled 'include passwords'); otherwise they
are blanked so a shared backup doesn't leak secrets in cleartext.
Verified on the test device: set an EQ rule -> assemble a backup -> wipe -> UI import
from file restores it; /playstats round-trips (365-day ring, lastDay); no console errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,6 +104,7 @@ neon logo that doubles as the SVG favicon ([`7be5254`](../../commit/7be5254)):
104
104
| PWA support: web app manifest + app icon, "add to home screen" with proper icon and name |[`b4287b9`](../../commit/b4287b9)|
105
105
| PWA offline fallback: a service worker serves a cyberpunk "ESPuino Offline" page (with auto-reconnect) instead of a black screen when the home-screen app is launched while the player is powered off |[`bd07a7c`](../../commit/bd07a7c)|
106
106
| Full backup: export/import of all settings + RFID assignments as JSON, WiFi credentials optional |[`4c90ff4`](../../commit/4c90ff4)|
107
+
|**Backup completeness + password hygiene**: the JSON backup/restore now also covers the **per-path EQ rules**, the **listening-statistics** ring buffer (new `GET`/`POST /playstats`) and the **Sync** settings section (which the restore previously skipped) — so a restore no longer silently drops them. Passwords (sync/peer/MQTT/FTP) are only included when the (renamed) **"include passwords"** checkbox is ticked, so a shared backup doesn't leak credentials in cleartext |[`backup-complete`](../../releases/tag/backup-complete)|
107
108
| One-click OTA update: GitHub Actions publishes a rolling `latest` release (`firmware.bin`); a Tools-tab button makes the device pull that firmware from GitHub over HTTPS and flash it via OTA, then reboot. Also triggerable via the bindable command **186** (button/RFID modifier) and the MQTT command-topic `firmware_update` (`ON`/`update`); the state-topic reports `idle`/`updating`/`up_to_date`/`failed`|[`8527f5e`](../../commit/8527f5e)|
108
109
| Equalizer profiles: dropdown presets (Flat / Music / Audiobook-Speech / Deep voices / Custom) on top of the 3-band tone control; speech presets cut bass and lift mids/highs so deep narrator voices stay intelligible, persisted in NVS. Profiles can also be assigned per file or directory (right-click in the file browser) — e.g. set the speech profile for all Bibi Blocksberg episodes at once; the RFID tab shows the active profile for the highlighted file (or "No EQ set"). The active profile can be cycled with the bindable command **154** (button/RFID modifier) and set/reported via the MQTT topic `equalizer` (`flat`/`music`/`speech`/`voiceBoost`) |[`11ade33`](../../commit/11ade33)|
109
110
| Blinking "OK" indicator next to the battery replaces the generic "action successful" toast |[`f41bb72`](../../commit/f41bb72)|
0 commit comments