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

2.8 KiB
Raw Blame History

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#257 8
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
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.