2.8 KiB
2.8 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||||
|---|---|---|---|---|---|---|---|
| #257 | 8 |
|
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
Stopsignifie uniquementArrêter la demande en cours.- La session et le contexte doivent être conservés.
- Etat attendu:
Stopping...pendant la propagation, puisStopped/Request stoppedquand 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 travailetfermer la session. - Port recommandé côté app/infra pour annuler la ressource runtime associée à un task/execution; état
Cancellingpuis terminal cohérent.
Etat implémentation observé
- Backend modifié dans
crates/application,crates/domain,crates/infrastructure/sessionetorchestrator/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 suridea_stop_agent,TurnCancelpour couper le process du tour courant. - Frontend: bouton
Stoprebranché sur l’annulation de chat courante, étatStopping..., 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.