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

48 lines
2.8 KiB
Markdown

---
issueRef: "#216"
version: 6
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1786813140292
---
## Triage 2026-08-15
- Symptôme rapporté: dans la CLI custom, impression qu'après le premier `Final`, il n'y a plus de progress remontés.
- Références durables relues: `ticket156-reply-progress-foundation`, `opencode-streaming-progress-mcp-surfacing-157`.
- Cadrage UX: si `Final` clôt strictement le tour, il faut garder des signaux persistants de session/activité; sinon la surface paraît morte.
- Cadrage Architect: distinguer 1) progress réellement reçus après `Final` mais masqués par la vue, 2) événements post-tour passant par un autre canal, 3) rupture réelle du flux adapter/backend.
- Périmètre d'investigation initial: `frontend/src/features/agents/CustomAgentChatView.tsx`, `crates/app-tauri/src/commands.rs`, `crates/app-tauri/src/chat.rs`, puis adaptateurs provider si nécessaire.
- Branche locale créée par Git: `fix/216-custom-cli-progress-after-final` depuis `develop` @ `a369993` (`v0.13.0`).
## Diagnostic DevFrontend
- Bug confirmé côté frontend.
- `CustomAgentChatView.tsx` ignorait tout chunk reçu après `final/error`, hors prompt utilisateur.
- Correctif appliqué: les `progress` tardifs restent affichés comme activité séparée sans rouvrir le tour ni repasser le bouton en `Stop`.
- Fichiers modifiés:
- `frontend/src/features/agents/CustomAgentChatView.tsx`
- `frontend/src/features/agents/CustomAgentChatView.test.tsx`
- Tests DevFrontend:
- `npm test -- CustomAgentChatView.test.tsx` => OK (49 tests)
- `npm run typecheck` => OK
## Diagnostic DevBackend
- Pas de bug backend/transport confirmé.
- Le contrat `Final` terminal reste cohérent: tap live/drain/settling n'émettent pas de `Progress` après `Final` comme flux de tour autoritaire.
- Tests DevBackend:
- `cargo test -p app-tauri --test chat_bridge` => OK (31)
- `cargo test -p infrastructure send_with_tap` => OK (3)
- `cargo test -p infrastructure normal_completion_returns_exactly_one_terminal_final` => OK (1)
- Conclusion: si l'UI montre ou masque une activité après `Final`, le correctif doit rester côté frontend, pas en backend.
## Verdict QA
- Verdict: VERT.
- QA a ajouté une assertion explicite: un `progress` après `Final` s'affiche, le tour ne se rouvre pas, `Stop` reste absent, `Envoyer` reste disponible.
- Tests QA:
- `npm test -- CustomAgentChatView.test.tsx` => OK
- `npm run typecheck` => OK
## Git
- Commit fix: `3582b25` — `fix(cli): affiche les progress reçus après Final sans rouvrir le tour — #216`
- Commit bookkeeping: `7fd47b3` — `chore(idea): bookkeeping #216 QA verte + clôtures #214/#215`
- Merge local: `02715a0` — `merge(cli): progress après Final dans la CLI custom — #216 (QA verte)`
- Branche finale active: `develop`
- Aucun push effectué.