--- issueRef: "#157" version: 12 updatedBy: {"kind":"agent","agent_id":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} updatedAt: 1786019394609 --- # Objectif Améliorer la CLI custom / chat agent pour afficher **un maximum de progress intermédiaires réellement disponibles** au lieu d'un silence jusqu'au `Final`, avec une UX différenciée pour : - les messages/progress agent généraux - les appels MCP / outils - les délégations inter-agent # Dépendance - Dépend explicitement de #156, qui doit fournir le contrat d'événements canonique multi-profils. # Attentes produit - Afficher les événements intermédiaires au fil de l'eau quand ils existent. - Montrer clairement quel agent parle à quel agent. - Afficher un extrait court de la demande déléguée. - Rendre les appels MCP/outils visuellement distincts du reste du flux. - Fonctionner avec un maximum de profils IA, avec dégradation élégante quand un profil n'expose pas grand-chose. # Périmètre UI/UX attendu ## Types visuels - `AgentMessage` : message/progress principal d'un agent. - `Delegation` : carte dédiée `Agent A -> Agent B` avec extrait court de la demande. - `ToolCall` : carte secondaire/indentée pour les appels d'outil. - `MCPEvent` : variante spécifique pour les appels MCP/méthodes MCP, distincte visuellement. ## États - `started` - `running` - `done` - `error` ## Hiérarchie visuelle - Les délégations et appels MCP ne doivent pas se confondre avec un simple texte agent. - Les appels MCP/outils doivent être lisibles mais plus discrets que le message principal. - Prévoir la lecture d'une conversation longue sans transformer l'écran en log brut. # Recommandations UX initiales (retour UX intégré) - `Delegation` : carte avec flèche `From -> To`, extrait de demande tronqué (~80 chars), accès au détail sur expansion/hover. - `ToolCall` : carte indentée avec badge outil, état spinner/check/error, args résumés/tronqués. - `MCPEvent` : bordure latérale/coloration dédiée par serveur ou type de méthode. - Timeline verticale légère pour relier visuellement les sous-événements au message/agent source. - Les événements très courts doivent être lissés/batchés pour éviter le clignotement. # Anti-bruit / garde-fous - Ne pas afficher comme texte brut tous les micro-événements sans hiérarchie. - Seuil temporel ou batching pour les événements trop fugitifs. - Possibilité de collapse/groupement pour tool calls répétitifs. - Limitation du nombre d'événements visibles avant expansion. - Si un profil n'expose aucun delta ni événement intermédiaire, afficher au minimum l'état occupé/vivant sans simuler un faux stream. # Critères d'acceptation - Sur les profils riches, l'utilisateur voit les progress/events apparaître avant le `Final`. - Sur les profils pauvres, l'UI reste honnête et utile (busy/progression minimale) sans faux "thinking". - Les appels MCP apparaissent au fil de l'eau, pas seulement après le `Final`, si l'information est disponible côté IdeA. - Les délégations inter-agent sont lisibles : on comprend qui parle à qui et à propos de quoi. - La vue reste stable et lisible sur conversation longue.