Fonctionnalité — Mise à jour automatique

L'application vérifie d'elle-même qu'une nouvelle version a été déployée, l'installe et redémarre — sans rien demander à l'utilisateur.

Description

Le service worker (registerType: 'autoUpdate') installe seul toute nouvelle version dès qu'elle est détectée. La logique de décision (quand vérifier, quand recharger) vit dans src/lib/app-update.ts, testée sans navigateur ; src/pwa.ts la branche sur les vraies API du navigateur.

Objectif

Que l'utilisateur ait toujours la dernière version sans jamais avoir à agir, tout en évitant qu'un déploiement cassé fasse clignoter l'application.

Comment ça se déclenche

QuandQuoi
Toutes les 30 min, au retour au premier plan, au retour du réseauVérification automatique auprès du serveur
Bouton « Rechercher une mise à jour » (Import / Export)Même vérification, à la demande — et le garde-fou anti-boucle est levé pour l'occasion
Une nouvelle version est trouvéeLe service worker l'installe et prend la main tout seul
La nouvelle version s'activeOnglet actif → bandeau « Nouvelle version installée » pendant 4 s, puis rechargement. Onglet en arrière-plan → rechargement immédiat

Paramètres associés

Aucun réglage utilisateur — voir Paramètres. Le comportement est fixe.

Données utilisées

localStorage : fromages-maj-verifiee-le (dernière vérification aboutie, affichée à l'utilisateur). La date du dernier rechargement de mise à jour vit en sessionStorage pour le garde-fou anti-boucle et ne survit pas à la fermeture de l'onglet.

Résultat — la carte « Version de l'application »

Import / Export ouvre sur une carte affichant : la version (dérivée de la date du build, croissante, comparable, suivie du commit git court), la date du build, l'ancienneté de la dernière vérification, et un bouton pour en chercher une tout de suite.

Une demande explicite (le bouton) lève le garde-fou anti-boucle : si une version vient d'être installée mais que le rechargement a été écarté comme « trop tôt », appuyer sur le bouton la fait bien apparaître.

Hors connexion

La vérification a besoin du réseau ; elle échoue silencieusement (état offline) sans casser l'application.

Limites

Deux rechargements à moins de 10 minutes d'intervalle sont ignorés (garde-fou anti-boucle), sauf demande explicite via le bouton.

Erreurs possibles

Voir les états unsupported, error, offline dans Codes et erreurs.

Dépannage

L'application ne semble pas à jour.