# Launcher 3.0.0
LAUNCHER - NOTES DE MISE À JOUR
Bouton « Aide » et demandes des joueurs - Mise à jour du 9 novembre 2026
==================================================================

Un nouveau bouton « Aide » permet d'envoyer à l'équipe, sans compte, un avis, une demande d'évolution, un bug ou autre chose, pour le jeu sélectionné. Chaque type de demande a ses propres champs, et une référence est remise à l'envoi.

Dans le menu d'administration, la nouvelle page « Demandes des joueurs » range les demandes par jeu. Les demandes sont anonymes : aucun compte, aucune adresse IP enregistrée. Le serveur est à redéployer et à configurer avant de publier cette version.


------------------------------------------------------------------
EN BREF
------------------------------------------------------------------
- NOUVEAU : bouton « Aide » dans la barre de titre : avis, demande
  d'évolution, bug ou autre, pour le jeu sélectionné.
- NOUVEAU : formulaires à champs prédéfinis selon le type, contrôlés
  avant l'envoi ; référence FB-XXXX-XXXX remise au joueur.
- NOUVEAU : page d'administration « Demandes des joueurs » et carte
  sur le tableau de bord.
- NOUVEAU : purge automatique des demandes et du journal d'audit
  (12 mois).
- SÉCURITÉ : défi anti-spam, limites par adresse, plafonds, contrôle
  complet du contenu ; demandes anonymes (aucune adresse IP
  enregistrée).
- SERVEUR : à redéployer et à configurer (réception désactivée par
  défaut).
- QUALITÉ : 30 nouveaux tests automatisés (312 au total).


------------------------------------------------------------------
BOUTON « AIDE »
------------------------------------------------------------------
- Bulle avec un point d'interrogation, dans la barre de titre, à
  gauche du bouton « Site officiel ».
- Le même bouton pour tous les jeux : la demande est rattachée au
  jeu sélectionné dans la liste de gauche, affiché en en-tête et non
  modifiable pendant la saisie.
- Trois étapes : choix du type, formulaire, référence à copier.
- Champs prédéfinis (* obligatoire) :
  * Avis : note de 1 à 5 étoiles*, sujet*, ce que vous aimez, ce qui
    pourrait être amélioré, recommanderiez-vous le jeu ? ;
  * Demande d'évolution : domaine*, description de l'idée*, problème
    résolu, importance ;
  * Bug : catégorie*, gravité*, fréquence*, étapes pour reproduire*,
    résultat attendu, résultat obtenu* ;
  * Autre : message*.
- Informations techniques facultatives (versions du launcher et du
  jeu, Windows, langue) : contenu exact affiché avant l'envoi, case
  cochée par défaut pour un bug seulement.
- Saisie conservée en cas d'échec (réseau, serveur occupé) : il
  suffit de cliquer de nouveau sur « Envoyer ».
- Échap ne ferme pas la fenêtre pendant la saisie.
- Le launcher ne contacte le serveur qu'au moment de l'envoi.
- Pas de réponse possible pour l'instant : un futur module « comptes
  joueurs » permettra d'échanger avec l'équipe.


------------------------------------------------------------------
PAGE « DEMANDES DES JOUEURS » (ADMINISTRATION)
------------------------------------------------------------------
- Choix du jeu : une tuile par jeu avec le nombre de nouvelles
  demandes ; les demandes d'un jeu ne se mélangent jamais à celles
  d'un autre.
- Filtres : type, statut (« À traiter » par défaut), recherche dans
  le titre ou la référence ; 100 demandes par page.
- Fiche : tous les champs en texte brut, informations techniques,
  référence copiable.
- Traitement : statut (Nouvelle, En cours, Traitée, Rejetée,
  Doublon), note interne visible des seuls administrateurs,
  suppression après confirmation.
- Tableau de bord : carte « Demandes des joueurs » (nouvelles
  demandes par jeu).
- Permissions : feedback.read (lecture) et feedback.manage
  (traitement) ; Propriétaire et Administrateur, pas l'Éditeur.
- Serveur déjà installé : seul le groupe Propriétaire reçoit ces
  permissions d'office ; les ajouter au groupe « Administrateur »
  depuis la page « Groupes et permissions ».


------------------------------------------------------------------
CONSERVATION ET PURGE AUTOMATIQUE
------------------------------------------------------------------
- Au démarrage du serveur puis toutes les 24 heures.
- Demande close (traitée, rejetée, doublon) : supprimée 12 mois
  après sa clôture ; toute demande : 24 mois au plus.
- Journal d'audit : fichiers de plus de 12 mois supprimés (réglage
  Audit:RetentionMonths) ; corrige l'écart RGPD relevé.


------------------------------------------------------------------
SÉCURITÉ ET VIE PRIVÉE
------------------------------------------------------------------
- Première route d'envoi ouverte à tous, désactivée par défaut ; le
  serveur contrôle tout, avec les mêmes règles que le launcher.
- Défi anti-spam (calcul de quelques fractions de seconde), sans
  service tiers ni captcha, à usage unique.
- Limites : 3 demandes par 10 minutes et 10 par jour par adresse IP,
  comptées en mémoire seulement ; 300 demandes par jour et par jeu,
  5 000 par jeu, 100 Mo au total.
- Caractères invisibles ou spéciaux refusés ; affichage en texte
  brut dans le menu.
- Aucune adresse IP enregistrée avec une demande ni dans l'audit de
  son envoi ; nginx n'écrit pas ces requêtes dans ses journaux ;
  aucun identifiant du PC envoyé.
- Consultations, changements de statut et suppressions inscrits au
  journal d'audit, sans le contenu des demandes ; statut, note et
  suppression en requêtes signées.
- Stockage : un fichier par demande dans les données privées du
  serveur (SQLite évalué et écarté pour ce module).


------------------------------------------------------------------
SERVEUR
------------------------------------------------------------------
- À redéployer AVANT de publier le launcher : server/deploy/
  LISEZMOI.md, étape 8, puis étape 3 octies.
- Activer la réception : "Feedback": { "Enabled": true,
  "Games": [ "EZR" ] } dans appsettings.Production.json.
- nginx : zone feedback_par_ip et deux blocs
  « location = /api/v1/feedback… » (nginx-api.conf).
- La purge du journal d'audit s'applique dès le premier démarrage.
- Sans redéploiement, le bouton « Aide » indique que l'envoi des
  demandes n'est pas disponible.


------------------------------------------------------------------
DÉVELOPPEMENT
------------------------------------------------------------------
- Nouveau projet GameLauncher.Modules.Feedback (formulaire du joueur,
  sans WPF) ; fenêtre Views/FeedbackWindow.xaml.
- Formulaires décrits une seule fois (Contracts/Feedback) : le
  launcher les génère, le serveur valide avec, le menu affiche les
  libellés.
- Serveur : module Feedback, FeedbackGuard (défi, limites),
  FeedbackStore (stockage), RetentionService (purges).
- Menu d'administration : FeedbackAdminModule (page « Demandes des
  joueurs »).
- Tests : FeedbackRulesTests.cs, FeedbackModuleTests.cs,
  FeedbackPanelTests.cs.
- Documentation : README.md, docs/ADMIN-ARCHITECTURE.md
  (§ 11 quinquies) et server/deploy/LISEZMOI.md mis à jour.


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.
