- Expédié
- 26 août 2026 à 02:23 UTC
- Auteur
- kamo
- Commite
- 486a456
Trois conclusions de l'examen par rapport à la tâche 21, toutes prescrites par le plan: - markSmsRead/markAiRead n'avait pas de clôture lue: un rafraîchissement ou une poussée entrante la résolution entre l'imposant local optimiste et l'enregistrement du serveur lire pourrait porter un nombre encore avant lecture et ressusciter un badge juste. La diffusion non lue de VOIPService envoie un instantané complet intégré au serveur sur chaque changement, donc c'était accessible, pas théorique. Fixe par extraction la règle de clôture dans un état pur et testé AppliquementFlatUnreadSnapshot (miroir) unreadState.ts's own En attenteReads fence pour une carte de comptage id-, appliquée dans les rafraîchissementSms, rafraîchissementAi, et le gestionnaire SMS WS, gardés par pendingSmsReadsRef / pendingAiReadsRef détient exactement la façon dont le démarrageMarkRead/endMarkRead hold marqueAsRead's clôture. - sameSessions par rapport seulement à l'unreadCount et à l'expéditeurId, de sorte qu'une session dont sessionType a changé entre les sondages (un ancien corps de la boîte de MediaService, puis un nouveau) avec le nombre et l'expéditeur inchangés entre les deux ont été traités comme inchangée - la classification de discussion périmés surviendrait à la survienement du déploiement qui a présenté le type de session, en survivant jusqu'à ce que le compte de cette session se déplaçait ensuite. Maintenant compare la sessionType aussi. - Ajout d'une couverture de régression pour les deux : une charge utile brute parcourue UnreadPayload pour prouver sessionType survit effectivement à l'analyse (le laisser ce vaisseau au-delà d'une sorte de maillage propre et d'une suite verte une fois déjà), et une affaire qui échoue sans la même solution de Sessions (RED vérifiée avant de restaurer la fix).