• v2.5.0 c9a491622b

    nicolas released this 2026-11-08 15:56:14 +01:00 | 84 commits to master since this release

    🖥️ Launcher 2.5.0 — Plein écran et nom des appareils dans l'audit

    Version d'affichage : la fenêtre du launcher et le menu d'administration peuvent maintenant s'agrandir sur tout l'écran, la barre des tâches restant visible. Leur mise en page s'adapte à la place disponible, sur grand comme sur petit écran, sans texte ni bouton coupé.

    Côté administration, le journal d'audit indique désormais chaque appareil sous le nom choisi lors de l'invitation, et non plus sous le nom Windows du PC. Serveur à redéployer pour en profiter.

    ✨ En bref

    Changement
    🆕 Nouveau Plein écran pour la fenêtre du launcher et le menu d'administration : bouton entre « Réduire » et « Fermer », ou F11
    🆕 Nouveau Le mode choisi (plein écran ou fenêtré) est retenu pour la fois suivante
    💡 Amélioré Mise en page adaptée à la taille de l'écran : plus de place en plein écran, rien de coupé sur un petit écran
    💡 Amélioré Journal d'audit : colonne « Appareil » dans l'export CSV, recherche par nom d'appareil
    🐛 Corrigé Le journal d'audit affichait le nom Windows du PC au lieu du nom de l'appareil choisi à l'invitation
    🛡️ Sécurité Le nom Windows du PC n'est plus envoyé au serveur ni conservé
    🖧 Serveur Nom des appareils dans le journal d'audit : à redéployer (voir Mise à niveau)
    🧪 Qualité 1 nouveau test automatisé (282 au total)

    🖥️ Plein écran

    Deux modes seulement, pour la fenêtre principale et le menu d'administration :

    Mode Comportement
    Fenêtré Taille d'origine, coins arrondis et ombre ; toujours pas de redimensionnement par les bords ou les coins
    Plein écran La fenêtre s'agrandit comme une fenêtre Windows : tout l'écran où elle se trouve, barre des tâches visible (même en masquage automatique) ; ce n'est pas le plein écran exclusif d'un jeu
    • Bascule : bouton entre « Réduire » et « Fermer » (l'icône et l'info-bulle suivent le mode), ou touche F11.
    • Le mode de chaque fenêtre est retenu pour la fois suivante (window-modes.json, à côté de launcher-settings.json).
    • Une fenêtre réduite (barre des tâches ou icône près de l'horloge) revient dans son mode.
    • Les autres fenêtres (paramètres, notes de version agrandies, messages) gardent leur taille fixe : elles ne contiennent pas assez d'informations pour le mériter.

    📐 Mise en page adaptée à l'écran

    Situation Effet
    Plein écran sur un grand écran Les notes de version s'élargissent (jusqu'à 560 px) ; les pages du menu d'administration utilisent toute la largeur
    Petit écran, mise à l'échelle Windows 125-150 % La fenêtre ne dépasse plus de l'écran ; si la place manque, le contenu est réduit d'un bloc, sans rien couper
    Présentation du jeu trop haute (description, liens et bandeau à la fois) Elle défile au lieu d'être coupée
    Plusieurs écrans Paramètres, notes agrandies et messages se limitent à l'écran de la fenêtre du launcher

    Menu d'administration

    Élément Changement
    Messages d'erreur et de résultat Sur toute la largeur de la page (23 bandeaux)
    Pages en deux colonnes (« Jeux », « Notes de version », « Groupes et permissions ») Sur un très petit écran, la page entière défile en plus des deux colonnes : rien n'est coupé
    Navigation, titres, tableau de bord Libellés trop longs abrégés proprement (info-bulle pour le texte complet)
    Choix du jeu Liste à largeur souple
    Messages longs (boîtes de dialogue) Ils défilent, la fenêtre ne dépasse jamais l'écran

    💡 Modulaire : une future page d'administration s'affiche dans la même fenêtre et profite du plein écran sans code supplémentaire. Une future fenêtre de module l'active avec deux attributs XAML. Règles de mise en page : docs/ADMIN-ARCHITECTURE.md, § 5.3.


    🏷️ Journal d'audit : nom des appareils

    Jusqu'ici, à la connexion, le launcher envoyait « GameLauncher 2.4.1 (NOM-WINDOWS) » : c'est ce nom Windows qui apparaissait dans le journal, et non le nom de l'appareil choisi lors de l'invitation (« J'ai une invitation »).

    Où Avant Maintenant
    Ligne « Connexion » GameLauncher 2.4.1 (DESKTOP-ABC123) appareil « PC bureau » · GameLauncher 2.5.0
    Chaque entrée liée à une clé IP et clé Appareil « PC bureau » · IP · clé
    Export CSV — Nouvelle colonne « Appareil »
    Recherche Nom, IP, clé Nom, appareil, IP, clé
    • Les anciennes entrées en profitent aussi : le nom de l'appareil est ajouté par le serveur à la lecture.
    • Seules les lignes « Connexion » déjà écrites gardent leur texte d'origine : le journal n'est jamais réécrit (ajout seul).

    🛡️ Sécurité

    • Le nom Windows du PC n'est plus envoyé au serveur ; celui qu'envoient les launchers plus anciens est retiré par le serveur (ni journalisé, ni conservé dans la session).
    • Le nom de l'appareil est ajouté par le serveur à la lecture, d'après admins.json : il n'est jamais écrit dans les fichiers du journal, et ce champ ne peut venir que du serveur.
    • Export CSV : la nouvelle colonne suit les mêmes règles que les autres (cellules entre guillemets, aucune formule exécutée par le tableur).
    • window-modes.json : simple préférence d'affichage, sans donnée personnelle ; taille limitée, contenu vérifié, ignoré s'il est illisible.

    🧪 Tests

    Fichier Tests
    Server/AuditModuleTests.cs 1 nouveau : nom de l'appareil choisi à l'enregistrement, nom Windows retiré d'un ancien launcher, jamais écrit dans le fichier du journal, absent pour une entrée sans clé
    Admin/AuditPanelTests.cs Complété : colonne « Appareil » de l'export CSV, texte « Appareil « … » » de chaque entrée

    282 tests au vert.

    📂 Fichiers modifiés

    Launcher (WPF) : plein écran et mise en page

    • src/GameLauncher/Controls/WindowModeAssist.cs (nouveau)
    • src/GameLauncher/Controls/ScaleToFitDecorator.cs (nouveau)
    • src/GameLauncher/Platform/WindowModeStore.cs (nouveau)
    • src/GameLauncher/Themes/Controls.xaml
    • src/GameLauncher/Themes/Icons.xaml
    • src/GameLauncher/Themes/Admin.xaml
    • src/GameLauncher/Converters/Converters.cs
    • src/GameLauncher/Views/MainWindow.xaml
    • src/GameLauncher/Views/MainWindow.xaml.cs
    • src/GameLauncher/Views/Admin/AdminWindow.xaml
    • src/GameLauncher/Views/Admin/AdminWindow.xaml.cs
    • src/GameLauncher/Views/ModernDialog.xaml
    • src/GameLauncher/Views/ModernDialog.xaml.cs
    • src/GameLauncher/Views/ChangelogWindow.xaml.cs
    • src/GameLauncher/Views/SettingsWindow.xaml.cs
    • src/GameLauncher/Platform/WindowService.cs
    • src/GameLauncher/Services/AdminWindowService.cs
    • src/GameLauncher/App.xaml.cs
    • src/GameLauncher/GameLauncher.csproj (version 2.5.0)

    Journal d'audit

    • src/GameLauncher.Contracts/Dtos/AuditDtos.cs
    • src/GameLauncher.Modules.Admin/Audit/AuditPanelViewModel.cs
    • src/GameLauncher.Modules.Admin/ViewModels/AdminEnvironment.cs
    • src/GameLauncher.Modules.Admin/Services/AdminLoginService.cs

    Serveur

    • server/GameLauncher.Server/Modules/Auth/AuthModule.cs
    • server/GameLauncher.Server/Modules/Audit/AuditModule.cs

    Tests

    • tests/GameLauncher.Tests/Server/AuditModuleTests.cs
    • tests/GameLauncher.Tests/Admin/AuditPanelTests.cs

    Documentation et notes

    • README.md
    • docs/ADMIN-ARCHITECTURE.md
    • tools/notes-launcher.txt

    ⬆️ Mise à niveau

    • Joueurs : mise à jour automatique depuis la 2.4.1, aucune action requise. Le launcher démarre en mode fenêtré, comme avant ; F11 ou le nouveau bouton pour passer en plein écran.
    • Serveur (Launcher API) : à redéployer (server/deploy/LISEZMOI.md, étape 8 : étapes 1 et 2). Aucun réglage nouveau ; les sessions ouvertes sont fermées (reconnexion). Sans redéploiement, la colonne « Appareil » du journal reste vide.
    • Administrateurs : rien à faire. Le nom affiché pour un appareil est celui saisi dans « J'ai une invitation » (page « Mes appareils »).

    🔏 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

    Contributors

    Full Changelog: v2.4.1...v2.5.0

    Downloads