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
feat: guard the per-path EQ-rule store against the NVS 4 KB limit
Per-path EQ rules are serialized into a single NVS string under "eqRules".
NVS caps a string value at 4000 bytes, so once enough rules were added the
putString() silently failed (returned 0) and the rule was lost without any
feedback.
Reject an over-full save up front with HTTP 413 (body
{"error":"eqRulesFull","used":N,"max":N}) while leaving the previously stored
rules untouched, and surface a failed NVS write as 500. The Files tab now uses
fetch() for setEqRule so it can show a clear "EQ rule storage is full" toast
instead of dropping the rule silently. i18n de/en/fr, Swagger updated.
Verified on device: adding rules until the cap returned
413 {"error":"eqRulesFull","used":3962,"max":3900}; the store stayed at
3853 bytes (under the limit) and the previously stored rules were intact.
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
@@ -101,6 +101,7 @@ neon logo that doubles as the SVG favicon ([`7be5254`](../../commit/7be5254)):
101
101
102
102
| Change | Commit |
103
103
| --- | --- |
104
+
|**EQ-rule store overflow guard**: per-path EQ rules are serialized into a single NVS string capped at ~4 KB; adding too many used to silently fail. The device now rejects an over-full save with `HTTP 413` (and reports a failed NVS write as `500`), and the Files tab surfaces a clear *"EQ rule storage is full"* toast instead of losing the rule without feedback |[`PENDING5`](../../commit/PENDING5)|
104
105
|**HTTP-sync robustness**: the file-sync manifest is now streamed straight from the network into the JSON parser (instead of buffering the whole payload in a `String` first), roughly halving peak RAM during the parse on large manifests; the cross-core sync progress message is guarded by a spinlock so the web UI can never read a half-written line |[`PENDING3`](../../commit/PENDING3)|
105
106
| PWA support: web app manifest + app icon, "add to home screen" with proper icon and name |[`b4287b9`](../../commit/b4287b9)|
106
107
| 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)|
0 commit comments