v1.8.0: Refonte UX update firmware (progress bar live + streaming logs)

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>
This commit is contained in:
PaulVua
2026-05-12 17:53:44 +02:00
parent 5d7aac38e1
commit 7338381c98
4 changed files with 323 additions and 50 deletions

View File

@@ -1,5 +1,27 @@
{
"versions": [
{
"version": "1.8.0",
"date": "2026-05-12",
"changes": {
"features": [
"Update firmware: nouvelle UX avec progress bar dynamique, label de l'étape en cours, et timer mm:ss / estimation",
"Update firmware: streaming live des logs (polling 700ms) — plus de fenêtre 'qui bloque' pendant 90s",
"Update firmware: bloc de statut final (succès vert / échec rouge) avec message explicite",
"Update firmware: logs techniques masqués par défaut dans une section repliable, ouverts automatiquement en cas d'échec"
],
"improvements": [
"Backend: 2 nouvelles routes launcher.php — update_firmware_start (lance en background, retour immédiat) et update_firmware_progress (polling incrémental avec offset)",
"Sous-étape Step 3c (setup_services.sh, le plus long): interpolation de la progression via comptage des 'Started X' (npm, envea, sara, etc.)",
"Sous-étape Step 4 (restart services): interpolation via comptage des 'Restarting enabled service:'"
],
"fixes": [],
"compatibility": [
"L'ancienne route update_firmware (synchronous) est conservée pour rétrocompatibilité"
]
},
"notes": "Refonte UX du process de mise à jour: l'utilisateur voit maintenant en temps réel où on en est (étape, %, temps écoulé) au lieu de fixer un spinner pendant 1-2 minutes. Les logs bruts restent accessibles pour debug pro via une section repliable."
},
{
"version": "1.7.7",
"date": "2026-05-12",