-
Launcher Version 3.3.1 Stable
released this
2026-11-10 12:31:06 +01:00 | 28 commits to master since this release🖥️ Launcher 3.3.1 — Correctif du mode maintenance
Un launcher resté ouvert pendant la re-signature du trousseau ne voyait pas la maintenance activée ensuite : chaque relecture (toutes les 2 minutes) la refusait jusqu'au redémarrage du launcher. Le launcher retélécharge désormais le trousseau quand un contenu est signé par une clé qu'il connaît mais pas encore autorisée pour ce contenu, et le relit au plus toutes les 30 minutes quand il reste ouvert longtemps.
Aucune action sur le serveur. Publier le launcher 3.3.1 comme d'habitude.
✨ En bref
Changement 🐛 Corrigé Maintenance activée après la re-signature du trousseau non vue par un launcher déjà ouvert (redémarrage nécessaire en 3.3.0) 🔧 Amélioré Trousseau retéléchargé quand un contenu est signé par une clé absente ou présente sans l'autorisation de ce contenu (au plus une fois par minute) 🛡️ Sécurité Trousseau relu au plus toutes les 30 minutes : un appareil retiré du trousseau n'est plus accepté par un launcher laissé ouvert 🖧 Serveur Aucun changement 🧪 Qualité 3 nouveaux tests automatisés (370 au total), dont la reproduction du problème
🐛 Le problème
Symptôme Maintenance activée depuis le menu : toujours pas affichée au bout de 5 minutes ; affichée après un redémarrage complet du launcher Cause Le launcher gardait en mémoire le trousseau lu au démarrage. Il ne le retéléchargeait que pour une clé inconnue, pas pour une clé connue qui vient de recevoir une autorisation — exactement ce que fait l'étape 3 decies (autorisation « mode maintenance » ajoutée en re-signant le trousseau) Effet À chaque relecture : « la clé … n'est pas autorisée à signer ce contenu », maintenance ignorée (état précédent conservé) Hors cause La relecture toutes les 2 minutes fonctionnait ; aucun cache HTTP (requêtes no-cache, bloc nginx sans cache)Le même défaut touchait tout contenu signé par un appareil autorisé après le démarrage du launcher : formulaires « Aide », catalogue, versions des jeux.
🔁 Vérifications périodiques du launcher
Fichier Quand Changement 3.3.1 maintenance.jsonDémarrage (attendu 4 s au plus), puis toutes les 2 min (1 min pendant une maintenance), et aussitôt après une publication depuis le menu de ce PC Un fichier refusé est revérifié à chaque relecture, avec un trousseau à jour Manifest des jeux Démarrage, puis toutes les 30 min ( updateCheckIntervalMinutes)— keyring.jsonDémarrage ; après un échec réseau (1 min) ; clé inconnue ou non autorisée (1 min au plus, 5 min et clé inconnue seulement avant) ; au plus toutes les 30 min Nouveau : clé non autorisée, âge maximal catalog.jsonDémarrage seulement (2,5 s au plus, sinon cache) — Mise à jour du launcher Démarrage, et « Rechercher » dans les paramètres — feedback-forms.jsonÀ l'ouverture de la fenêtre « Aide » — 🛡️ Sécurité
- Chaque trousseau retéléchargé passe par les mêmes contrôles qu'au démarrage : signature de la clé racine, numéro jamais en baisse, différent sous le même numéro refusé, minimum
keyringMinSequence. Un serveur compromis qui ressert un ancien trousseau est refusé. - Serveur injoignable lors d'un nouveau téléchargement : dernier trousseau vérifié conservé, aucune erreur pour l'appelant.
- Gain : un appareil retiré du trousseau (ou une autorisation enlevée) n'est plus accepté par un launcher resté ouvert, au plus 30 minutes après.
- Le rythme des téléchargements reste limité (au plus une fois par minute pour une clé inconnue ou non autorisée).
🧪 Tests
Test Vérifie MaintenanceServiceTests.A_maintenance_published_after_the_keyring_gained_the_scope_is_applied_without_restartingReproduction du problème : trousseau re-signé avec « maintenance » pendant que le launcher tourne, maintenance appliquée à la relecture suivante (échouait en 3.3.0) ContentTrustTests.A_scope_granted_while_the_launcher_runs_is_found_by_downloading_the_keyring_againAutorisation ajoutée à une clé connue : trousseau retéléchargé, au plus une fois par KeyChangeRetryDelayContentTrustTests.A_launcher_left_open_downloads_the_keyring_again_and_stops_trusting_a_removed_keyÂge maximal : clé retirée refusée sans redémarrer ; hors ligne, dernier trousseau gardé ; ancien trousseau resservi refusé ⬆️ Mise à niveau
- Launcher 3.3.1 : le publier (mise à jour signée habituelle).
- Serveur, nginx, trousseau : aucune action.
- Administrateurs : aucune action. Les launchers 3.3.0 restés ouverts depuis la re-signature du trousseau doivent être redémarrés une fois (ou recevoir la 3.3.1).
- Joueurs : mise à jour automatique, aucune action requise.
- RGPD : aucune donnée personnelle concernée.
🔏 La sécurité des mises à jour du launcher ne change pas : la signature numérique et l'empreinte SHA-256 de chaque nouvelle version sont vérifiées avant toute installation.
What's Changed
- Dev/3.3.1 in #139
Contributors
Full Changelog: v3.3.0...v3.3.1
Downloads
- Chaque trousseau retéléchargé passe par les mêmes contrôles qu'au démarrage : signature de la clé racine, numéro jamais en baisse, différent sous le même numéro refusé, minimum