+8
−0
+11
−3
Loading
Deux auto-notifications, toutes deux introduites avec les notifications sonores. La plus visible : le gestionnaire `chat:new` de Player.tsx sonnait SANS AUCUNE condition. Poster un message se signalait donc à soi-même, à chaque fois. La seconde, dans Chat.tsx : un message destiné à un canal non sélectionné comptait comme non lu et sonnait — y compris quand c'était l'auteur qui venait de l'écrire dans un autre canal que celui qu'il regardait. Le serveur diffuse à toute la salle : c'est donc au client de se reconnaître. Le chat le pouvait déjà (`authorParticipantId`), pas le mail. `MailNewEvent` transporte désormais `fromParticipantId`, renseigné à la composition joueur — ce qui corrige au passage un second `fromParticipantId: null` codé en dur dans l'entrée synthétique de la boîte de réception, exactement le défaut déjà corrigé pour `fromCharacterId`. `Chat` reçoit l'identité du joueur par une prop optionnelle, comme `Directory`. Absente côté console, où les messages d'animation n'ont pas d'auteur participant : la garde court-circuite alors sans effet. L'ordre compte dans Chat : la garde est placée APRÈS le rafraîchissement de la liste des canaux. Créer un fil et y écrire le premier message doit toujours faire apparaître l'onglet, même si ça ne doit ni compter ni sonner. Non compilé ni exécuté (pas de toolchain Node dans l'environnement utilisé). Co-Authored-By: Claude (RCA)