L'ancien flow etait un AJAX bloquant qui attendait ~90s sans aucun
retour visuel autre qu'un spinner.
Nouveau flow:
- Backend: launcher.php lance update_firmware.sh en background
(route update_firmware_start) et expose une route de polling
incremental (update_firmware_progress) avec offset.
- Frontend: progress bar Bootstrap animee + label de l'etape en
cours + timer mm:ss / estimation, plus streaming des logs
toutes les 700ms.
- Sous-etape Step 3c (la plus longue): interpolation fine de la
progression en comptant les 'Started X' (services demarres).
- Logs techniques masques par defaut dans <details>, ouverts
automatiquement en cas d'echec pour faciliter le debug.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>