2.4 KiB
2.4 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||||
|---|---|---|---|---|---|---|---|
| #239 | 7 |
|
1787409561579 |
2026-08-22
- Signalement utilisateur via capture sur un autre projet (GameTime): après un long message utilisateur dans la conversation avec Main, la surface affiche
Échec — La réponse du modèle n'a pas pu être finalisée.. - Cadrage UX: distinguer échec transitoire, réponse tronquée, fin non reçue et échec sans contenu; ne jamais masquer le contenu partiel; proposer des actions de reprise adaptées.
- Cadrage Architecture: hypothèse principale = stream structuré fermé sans
Finalreconnu ou correctement propagé; instrumentation recommandée sur start/event-stream/close/error-mapping/transcript. - Git: branche locale
fix/239-modele-reponse-non-finaliseecréée depuisdevelop@ce03471. - DevBackend: cause racine confirmée côté runtime Claude structuré.
ClaudeSdkSessionpouvait produire desTextDeltapuis fermer sansReplyEvent::Finalsi la ligneresultClaude manquait ou n’était pas reconnue; la UI interprétait alors le stream comme non finalisé malgré du contenu exploitable. Fix: fallback qui synthétise unReplyEvent::Finalà partir desTextDeltaaccumulés, sans masquer unFinal,ErrorouRateLimitedréel. - DevFrontend:
CustomAgentChatViewpréservait déjà le contenu partiel; la surface à corriger étaituseTicketAssistant, qui remplaçait le contenu streamé par le message d’échec sur un chunk terminalerror. Fix frontend: conservation du contenu partiel + qualification du cas (Réponse partielle — fin non reçue,Réponse tronquée,échec transitoire possible,Échec sans contenu). - Première QA 2026-08-22: frontend vert, nouveaux tests ciblés backend verts, mais un test backend existant échoue encore:
session::tests::stream_without_final_is_silently_ok_at_adapter_leveldanscrates/infrastructure/src/session/mod.rs:1540. - Symptôme QA exact: l’ancien test attend encore
0Final synthétique (assertion left == right failed: comportement actuel: aucun Final fabriqué, left=1 right=0). - Retour DevBackend suite QA: alignement du test contradictoire existant sur le nouveau contrat #239. Fichiers backend désormais modifiés:
crates/infrastructure/src/session/claude.rsetcrates/infrastructure/src/session/mod.rs. Re-tests backend ciblés verts. - Étape courante: revalidation QA indépendante complète.