Files
IdeA/.ideai/tickets/221/carnet.md

2.3 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#221 6
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1786825279605

2026-08-15 — Ouverture du bug.

Signalement utilisateur : l'heure affichée sur les messages ne correspond pas a l'heure reelle; toutes les heures semblent a 1:00.

Cadrage UX : l'heure doit etre fiable, coherente et rendue dans la timezone locale utilisateur. Verifier aussi date hors jour courant, passage minuit, DST, fallback timestamp invalide, coherence desktop/mobile.

Cadrage Architecture : suspect principal = timestamp minuscule ou en secondes interprete comme epoch ms (symptome compatible avec new Date(1) => 01:00 Europe/Paris). Point UI cite : frontend/src/features/agents/CustomAgentChatView.tsx autour du formatage new Date(receivedAtMs). Strategie recommandee : corriger l'unite a la source si besoin, ajouter une garde frontend contre timestamps absurdes et centraliser la normalisation.

Implementation DevFrontend : cause racine trouvee dans le replay de scrollback au reattach. Le code faisait reattached.scrollback.reduce(foldChunk, ...); Array.reduce passait l'index en 3e argument, interprete par foldChunk comme receivedAtMs. Les messages rejoues recevaient donc 0, 1, 2 ms, ce qui rendait new Date(1) a 01:00 en Europe/Paris. Correctif applique dans frontend/src/features/agents/CustomAgentChatView.tsx : wrapper explicite autour de foldChunk dans le reduce, plus normalisation/garde centralisee avant rendu des heures. Test de regression ajoute dans frontend/src/features/agents/CustomAgentChatView.test.tsx.

Resultats annonces par DevFrontend : npm test -- CustomAgentChatView.test.tsx OK (51 tests), npm run typecheck OK.

Validation QA 2026-08-15 : VERT sur fix/221-message-time-frozen. Verifications reelles : git rev-parse --abbrev-ref HEAD => fix/221-message-time-frozen; npm run test -- src/features/agents/CustomAgentChatView.test.tsx => 51/51 OK; npm run typecheck => OK. Limite residuelle QA : pas de scenario E2E/UI manuel complet execute.

Note produit/contrat : le contrat backend de scrollback ne porte pas d'horodatage metier sur les ReplyChunk; apres reattach l'UI evite des heures absurdes mais ne peut pas reconstituer l'heure historique exacte du chunk sans evolution de contrat.