--- issueRef: "#257" version: 6 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedAt: 1787950467916 --- 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 1 - Ciblé backend/frontend vert. - Blocage global: `app-tauri` ne compile plus ses tests DTO après l’ajout de `runtime_state` et `node_id`. - Erreurs repérées dans `crates/app-tauri/tests/dto_agents.rs` lignes ~282, ~325, ~694. Prochaine étape - DevBackend corrige les fixtures/tests DTO Tauri puis QA relance.