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
{{ message }}
Repository navigation
Commit 42d2c46
Browse filesBrowse the repository at this point in the historyBrowse files
feat: stream the HTTP-sync manifest + guard the cross-core progress message
The file-sync manifest was fetched with http.getString() and then parsed,
holding the entire payload in a String while a second copy was built inside
the JSON parser. On large manifests (hundreds of file entries) this doubled
peak RAM on the heap-constrained ESP32. Parse the manifest straight from the
WiFiClient stream instead (deserializeJson over the stream), so only the
parser's working set is allocated.
The sync progress message (gSyncMsg) is written by the sync task on core 1 and
read by the web server on core 0. Guard it with a short spinlock and expose it
via Sync_CopyMessage(dst, len) so the web UI can never read a half-written
string (which showed up as a brief garbage line in the sync progress).
Verified on device: a sync against a local manifest reported
"1 downloaded, 0 failed, 1 total" and the file landed byte-for-byte.
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
+
|**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)|
104
105
| PWA support: web app manifest + app icon, "add to home screen" with proper icon and name |[`b4287b9`](../../commit/b4287b9)|
105
106
| 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
107
| Full backup: export/import of all settings + RFID assignments as JSON, WiFi credentials optional |[`4c90ff4`](../../commit/4c90ff4)|
0 commit comments