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

43 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
issueRef: "#257"
version: 8
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787950677814
---
2026-08-28 Main
Contexte initial
- Le bouton stop de la custom CLI ne fonctionne pas et doit annuler le travail courant sans fermer la session.
- L’annulation doit cascader sur tous les agents délégués par ce travail courant, transitivement.
- Les tools/processus/travaux en cours doivent aussi être interrompus.
Cadrage UX
- `Stop` signifie uniquement `Arrêter la demande en cours`.
- La session et le contexte doivent être conservés.
- Etat attendu: `Stopping...` pendant la propagation, puis `Stopped`/`Request stopped` quand tout le sous-arbre courant est effectivement annulé.
- Ne jamais afficher un état stoppé si un tool ou un sous-agent du même tour tourne encore.
Cadrage Architect
- Le bug vient du fait que la UI/commande stoppe la session structurée au lieu d’annuler l’exécution courante.
- Cible: source de vérité du travail courant = task racine persistée; chaque délégation/tool long du tour courant est chaîné via `parent_task_id`.
- Le cancel doit suivre l’arbre de tâches, avec séparation claire entre `annuler le travail` et `fermer la session`.
- Port recommandé côté app/infra pour annuler la ressource runtime associée à un task/execution; état `Cancelling` puis terminal cohérent.
Etat implémentation observé
- Backend modifié dans `crates/application`, `crates/domain`, `crates/infrastructure/session` et `orchestrator/mcp/tools`.
- Frontend modifié dans `CustomAgentChatView.tsx` + tests associés.
- Backend: sessions structurées conservées, `cancel_current_turn()` introduit, cascade sur dépendances actives + préemption runtime, autorisation requester/sous-arbre sur `idea_stop_agent`, `TurnCancel` pour couper le process du tour courant.
- Frontend: bouton `Stop` rebranché sur l’annulation de chat courante, état `Stopping...`, anti double-clic, session réutilisable.
Verdict QA final
- `cargo test -p application --test workstate_actions stop_structured -- --nocapture` => vert.
- `cargo test -p application --test orchestrator_service stop_agent -- --nocapture` => vert.
- `cargo test -p infrastructure --test mcp_server stop_agent -- --nocapture` => vert.
- `npm --prefix frontend test -- --run src/features/agents/CustomAgentChatView.test.tsx -t "cancels only the current request and keeps the structured session usable|treats NOT_FOUND during request cancel as an already-stopped request"` => vert.
- `cargo test -p app-tauri --test dto_agents -- --nocapture` => vert.
Risque résiduel
- Pas de scénario live end-to-end multi-agents + vrais tools externes exécuté par QA; couverture transitive validée surtout via tests backend ciblés.
Prochaine étape
- Git décide/pose le commit local du ticket #257.