diff --git a/.ideai/tickets/252/carnet.md b/.ideai/tickets/252/carnet.md index 9b163d09..ff11e149 100644 --- a/.ideai/tickets/252/carnet.md +++ b/.ideai/tickets/252/carnet.md @@ -1,6 +1,32 @@ --- issueRef: "#252" -version: 1 +version: 4 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1787550761371 +updatedAt: 1787551198700 --- +# Git — décision de branche (2026-08-24) + +- Branche de travail : `fix/252-custom-cli-second-request-streaming` (créée et checkout, base = tip develop `1f14217`, lignage custom CLI `#249/#251` QA verte inclus). +- Dev : implémente le fix sur cette branche. Commits : `fix(custom-cli): … — #252`. +- QA : tests fonctionnels réels sur la MÊME branche (deux requêtes successives au même agent custom CLI ; échec si progress/messages d'outils disparaissent au second tour). Commits : `test(custom-cli): … — #252`. +- Interdits : aucun push distant ; pas de merge/rebase vers `develop` sans l'agent Git. Fusion locale décidée par Git après QA verte. +- `scripts/restart-idea-over-ssh.sh` reste non suivi — ne pas le committer sur cette branche. + +# Architect — cadrage root cause (2026-08-24) + +- Suspect principal : `crates/infrastructure/src/session/opencode.rs`, `LiveTurnProjector` passe en `hold_until_new_message` dès qu'un `conversation_id` existe, donc typiquement au 2e tour. +- Effet probable : si le 2e tour n'expose qu'un seul `message_id` courant, le projecteur bufferise tous les `step_start` / `tool_use` / `text` dans `pending` et n'émet rien en live. +- Le pipeline backend `send_with_tap` rend le tap live critique : quand `has_tap=true`, le flux autoritaire ne garde plus que `Final|Error`; si le tap n'émet rien, l'UI ne verra jamais les `progress` / messages d'outils du 2e tour. +- Le frontend n'est pas la cause racine principale. +- Stratégie de fix minimale : corriger le seam OpenCode pour identifier le tour courant sans exiger un second basculement de `message_id`, puis ajouter une régression backend dédiée au cas « session existante + un seul `message_id` sur le nouveau tour ». + +# QA — audit de couverture (2026-08-24) + +- Les tests existants ne permettaient pas d'annoncer honnêtement vert sur ce bug. +- Gap principal : pas de test fonctionnel réaliste avec deux callbacks de stream distincts et un vrai réarmement du 2e tour après le `final` du 1er. +- Tests à exiger après fix : + - 2 requêtes successives avec nouveau callback de stream au 2e tour. + - Même outil entre les deux tours. + - Vérification d'un `progress started` puis `completed` sur le 2e tour. + - Variante négative : `late progress` du 1er tour ignoré, vrai `progress` du 2e tour affiché. +- Ne pas revalider ce ticket sans preuve de commandes réelles et, si possible, scénario fonctionnel via harness custom CLI. \ No newline at end of file diff --git a/.ideai/tickets/252/issue.md b/.ideai/tickets/252/issue.md index 4a7b7c2a..a8447a04 100644 --- a/.ideai/tickets/252/issue.md +++ b/.ideai/tickets/252/issue.md @@ -2,7 +2,7 @@ id: "efe8d000-3dc5-4d4e-bdae-3c3a066abd1c" number: 252 title: "Custom CLI: la seconde requête au même agent perd les progress et messages d’outils" -status: "inProgress" +status: "qa" priority: "critical" sprint: null links: [] @@ -11,7 +11,7 @@ attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1787550761371 -updatedAt: 1787550761371 -version: 1 +updatedAt: 1787551198700 +version: 4 --- Régression fonctionnelle sur la custom CLI. Scénario utilisateur à couvrir et à reproduire: 1) lancer un agent avec un profil custom CLI, 2) envoyer une première requête qui émet des progress et/ou messages d’outils, 3) attendre la fin, 4) envoyer une seconde requête au même agent, 5) vérifier que les progress et messages d’outils arrivent encore pendant cette seconde requête. Actuel: sur la seconde requête, plus aucun progress ni message d’outil n’est affiché. Attendu: streaming inchangé sur chaque tour. Exigence QA: ajouter de vrais tests fonctionnels qui pilotent la custom CLI sur deux requêtes successives et échouent si les progress/outils disparaissent. \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 802215f5..379c135b 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -3397,7 +3397,7 @@ "issueRef": "#252", "path": "252", "title": "Custom CLI: la seconde requête au même agent perd les progress et messages d’outils", - "status": "inProgress", + "status": "qa", "priority": "critical", "sprint": null, "assignedAgentIds": [], @@ -3405,7 +3405,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1787550761371 + "updatedAt": 1787551198700 } ] } \ No newline at end of file