[Majeur] GET /me renvoie toujours channelsAckMsg vide : l'état de lecture n'est jamais rechargé #100
Labels
No labels
bug
enhancement
feature
groupe/chat-data
groupe/friends-blocking
groupe/input-validation
groupe/realtime-presence
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Transcendence/backend#100
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gravité : Majeur
Rapports QA d'origine : CHAT-17
TokenContextne fait pasInclude(ChannelsAckMsg): après refresh, aucun non-lu ni divider « New messages ».Détails des rapports
[CHAT-17] L'état de lecture n'est jamais rechargé : `GET /api/me` renvoie toujours `channelsAckMsg: {}` — Gravité : Majeur
GET /api/me, divider "New messages",POST /channels/{id}/messages/{msgId}/ack.POST /channels/<ch>/messages/<msgId>/ack-> 204 (aussi déclenché par l'UI à l'ouverture d'un channel). 2.GET /api/me.channelsAckMsgcontient{<channelId>: <date>}. Obtenu :{}(vérifié après ack API 204 et après lecture dans l'UI). Conséquence : après un refresh/une nouvelle session, le front ne connaît aucun ack (useAckTime-> null) : le divider "New messages" ne peut jamais s'afficher à partir de l'état serveur, et chaque ouverture ré-envoie des acks.backend/API/Middlewares/TokenContext.cscharge l'utilisateur avec.Include(u => u.Role).Include(u => u.Avatar)mais pas.Include(u => u.ChannelsAckMsg);Users/Me/Get/GetMeEndpoint.cs("No handler: touches no database") convertit une collection non chargée.chat/components/Messages/MessageList.tsxuseNewMessagesDividerId) -> à vérifier. L'ack n'est d'autre part envoyé à la première ouverture qu'après un évènementfocusfenêtre (en headless : possible artefact, cardocument.hasFocus()conditionneuseReadReceipts).Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.