Expose OTA_SLAVE_PROGRESS on the master, track per-slave state during
distribution, run ESP-NOW OTA in a background task so the host can poll
while slaves update, and show master/slave progress in the dashboard
with table layout and faster WebSocket refresh during uploads.
Co-authored-by: Cursor <cursoragent@cursor.com>
Share UART OTA logic between CLI and serve via POST /api/ota, WebSocket progress events, and a dashboard upload UI showing the running partition.
Co-authored-by: Cursor <cursoragent@cursor.com>
Always show master deadzone input with read/set controls; apply bulk slave
changes via slaves_only without changing the master's BMA456.
Co-authored-by: Cursor <cursoragent@cursor.com>
Serve polls the master over UART and pushes live state via WebSocket;
reopens the serial port when the device is unplugged and comes back.
Co-authored-by: Cursor <cursoragent@cursor.com>