17
.ideai/tickets/239/carnet.md
Normal file
17
.ideai/tickets/239/carnet.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
issueRef: "#239"
|
||||
version: 6
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1787409503550
|
||||
---
|
||||
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 `Final` reconnu ou correctement propagé; instrumentation recommandée sur start/event-stream/close/error-mapping/transcript.
|
||||
- Git: branche locale `fix/239-modele-reponse-non-finalisee` créée depuis `develop` @ `ce03471`.
|
||||
- DevBackend: cause racine confirmée côté runtime Claude structuré. `ClaudeSdkSession` pouvait produire des `TextDelta` puis fermer sans `ReplyEvent::Final` si la ligne `result` Claude 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 un `ReplyEvent::Final` à partir des `TextDelta` accumulés, sans masquer un `Final`, `Error` ou `RateLimited` réel.
|
||||
- DevFrontend: `CustomAgentChatView` préservait déjà le contenu partiel; la surface à corriger était `useTicketAssistant`, qui remplaçait le contenu streamé par le message d’échec sur un chunk terminal `error`. 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_level` dans `crates/infrastructure/src/session/mod.rs:1540`.
|
||||
- Symptôme QA exact: l’ancien test attend encore `0` Final 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.rs` et `crates/infrastructure/src/session/mod.rs`. Re-tests backend ciblés verts.
|
||||
- Étape courante: revalidation QA indépendante complète.
|
||||
17
.ideai/tickets/239/issue.md
Normal file
17
.ideai/tickets/239/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "9bd05320-df0b-4dae-bf5f-0ce986924434"
|
||||
number: 239
|
||||
title: "Échec de finalisation de réponse modèle sur un autre projet"
|
||||
status: "qa"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1787408846348
|
||||
updatedAt: 1787409503550
|
||||
version: 6
|
||||
---
|
||||
Le 22 août 2026, sur un autre projet (capture fournie par l'utilisateur, onglet GameTime), après un long message utilisateur dans la conversation avec Main, la surface affiche un toast/état d'erreur en bas: `Échec — La réponse du modèle n'a pas pu être finalisée.`. Objectif: diagnostiquer pourquoi une réponse agent/modèle ne se finalise pas dans certains contextes projet et corriger la robustesse/runtime ou au minimum la surface d'erreur et la reprise.
|
||||
Reference in New Issue
Block a user