diff --git a/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b-clipboard-image-1787483064671.png b/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b-clipboard-image-1787483064671.png new file mode 100644 index 00000000..a0aa95d3 Binary files /dev/null and b/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b-clipboard-image-1787483064671.png differ diff --git a/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b.json b/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b.json new file mode 100644 index 00000000..3d4027eb --- /dev/null +++ b/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b.json @@ -0,0 +1,13 @@ +{ + "id": "973df4c1-5389-4552-a9e3-0724beb9d68b", + "projectId": "97b49ac2-8376-4aa3-8ea9-bf3ac81d0023", + "agentId": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d", + "sessionId": "5dfcdad7-71a3-48fe-b02b-baed06234a35", + "filename": "clipboard-image-1787483064671.png", + "mime": "image/png", + "sizeBytes": 194375, + "sourceKind": "clipboard", + "storagePath": "agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b-clipboard-image-1787483064671.png", + "readablePath": "/home/anthony/Documents/Projects/IdeA/.ideai/attachments/agent-chat/5dfcdad7-71a3-48fe-b02b-baed06234a35/973df4c1-5389-4552-a9e3-0724beb9d68b-clipboard-image-1787483064671.png", + "createdAt": 1787483279889 +} \ No newline at end of file diff --git a/.ideai/tickets/241/carnet.md b/.ideai/tickets/241/carnet.md index 9fe9c621..dff69796 100644 --- a/.ideai/tickets/241/carnet.md +++ b/.ideai/tickets/241/carnet.md @@ -1,8 +1,8 @@ --- issueRef: "#241" -version: 5 +version: 7 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1787473510001 +updatedAt: 1787483784669 --- 2026-08-23 - Symptôme utilisateur: les progress de la custom CLI cessent d’apparaître après plusieurs demandes à Main, impression forte dès la 2e demande. diff --git a/.ideai/tickets/241/issue.md b/.ideai/tickets/241/issue.md index 76b3877f..e381bec1 100644 --- a/.ideai/tickets/241/issue.md +++ b/.ideai/tickets/241/issue.md @@ -11,7 +11,7 @@ attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1787472909626 -updatedAt: 1787473510001 -version: 5 +updatedAt: 1787483784669 +version: 7 --- Bug utilisateur observé le 23 août 2026. Symptôme: les progress de la custom CLI finissent par ne plus apparaître dans l’UI, avec l’impression que cela survient à partir de la deuxième demande envoyée à l’agent orchestrateur Main. La régression pourrait être liée aux modifications récentes autour de la version web, sans certitude. Capture fournie par l’utilisateur: panneau Main / onglet CLI custom avec logs toujours présents mais progression visible absente. \ No newline at end of file diff --git a/.ideai/tickets/245/carnet.md b/.ideai/tickets/245/carnet.md new file mode 100644 index 00000000..919e90d2 --- /dev/null +++ b/.ideai/tickets/245/carnet.md @@ -0,0 +1,15 @@ +--- +issueRef: "#245" +version: 7 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1787484765506 +--- +2026-08-23 +- Signalement utilisateur avec capture: dans la conversation agent / CLI custom, après le premier appel à l’agent, les appels suivants n’affichent plus correctement progress ni usage des tools; la chatbox reste éditable; l’agent ciblé par l’utilisateur (ex Main) n’apparaît pas busy alors qu’un agent peut être actif dans Work state. +- Tickets antérieurs liés relus: #236 (collisions de clés progress/tools + store annonces borné par projectId), #238 (désalignement conversation vs activité réelle), #241 (reconnect web ne réattachait pas `chatSinks` après reconnexion). +- UX: la source visuelle de vérité du tour utilisateur reste l’agent ciblé (`Main`) jusqu’au terminal; chatbox disabled du submit au `final`/erreur/annulation/timeout terminal; si délégation, afficher sous-état `Main attend Architect`; l’absence de progress détaillé ne doit jamais réactiver l’input. +- Architect: suspicion principale sur un désalignement entre flux structuré de conversation (`ChatBridge`/`ReplyChunk`), état busy canonique du tour structuré/rendez-vous, et projection UI de cellule. Correctif minimal sûr proposé: verrouillage chatbox + badge busy pilotés par l’état busy canonique de l’agent, pas par la présence d’événements `progress/tools`; corriger ensuite le relay live des non-terminaux si nécessaire. +- Git: branche locale créée depuis `develop` = `fix/245-custom-cli-busy-progress-chatbox`. +- DevBackend: backend impliqué. Cause 1: `agent_send` (desktop) et `ws_send_chat` (web) appellent la session structurée directement (`send` / `send_with_tap`) sans passer par `InputMediator::enqueue_silent`; résultat: pas de `AgentBusyChanged`, `GetProjectWorkState` voit l’agent idle, et la cellule/chatbox ne peuvent pas s’aligner sur un busy canonique. Cause 2: côté web, `ws_send_chat` n’utilise pas `send_with_tap`, donc peut rater des progress/tools live non terminaux. Fix implémenté: ajout d’un `StructuredHumanTurnGuard` partagé sur le backend; `agent_send` et `ws_send_chat` démarrent désormais un tour humain médié, marquent alive sur activité, clearent idle sur terminal/erreur/drop, et le web passe aussi par `send_with_tap`. Tests backend/web ciblés ajoutés; commandes exécutées par DevBackend: `cargo fmt`, `cargo test -p web-server websocket_chat_send -- --nocapture`, `cargo check -p app-tauri --lib`. +- DevFrontend: source actuelle du verrouillage = `busy` local de `CustomAgentChatView`, remis à false seulement sur `final/error`; la cellule Layout lit déjà un busy canonique Work state mais ne le propage pas à la vue de chat. De plus, `progressIndex` vit à travers les tours et peut fusionner à tort des progress/tools legacy récurrents sur les tours suivants. Fix implémenté: `effectiveBusy = localBusy || canonicalBusy || requesterDelegation.active`; textarea/Joindre/Envoyer restent verrouillés tant que le tour canonique est ouvert; fallback de délégation `Main attend Architect`; `agentBusyChanged(false)` du même agent peut relâcher le busy local si le terminal stream n’est pas arrivé; namespace/index des progress legacy reset par tour via `progressScope`. Tests frontend ciblés ajoutés; commandes exécutées par DevFrontend: `npm run test -- src/features/agents/CustomAgentChatView.test.tsx`, `npm run typecheck`, `git diff --check`. +- Étape suivante: validation QA complète backend + frontend sur le scénario multi-demandes/busy/délégation. \ No newline at end of file diff --git a/.ideai/tickets/245/issue.md b/.ideai/tickets/245/issue.md new file mode 100644 index 00000000..35088f84 --- /dev/null +++ b/.ideai/tickets/245/issue.md @@ -0,0 +1,17 @@ +--- +id: "72acf1c8-d786-45ae-ba98-86fd7f106d80" +number: 245 +title: "Corriger l’état busy/progress/tools/chatbox de la custom CLI après le premier appel" +status: "inProgress" +priority: "critical" +sprint: null +links: [{"target":"#241","kind":"relatesTo"},{"target":"#238","kind":"relatesTo"},{"target":"#236","kind":"relatesTo"}] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1787483461710 +updatedAt: 1787484765506 +version: 7 +--- +Régression observée le 23 août 2026 dans la vue de conversation agent / CLI custom. Après le premier appel à l’agent, les appels suivants peuvent ne plus afficher correctement les progress ni l’utilisation des tools. La chatbox reste éditable alors qu’un tour agent est déjà en cours. L’agent sollicité par l’utilisateur (ex: Main) n’apparaît pas busy alors qu’un agent délégué ou un état de travail actif peut être visible dans Work state. La conversation doit rester pilotée par le tour ouvert de l’agent cible, avec chatbox disabled jusqu’au terminal, progress/tools réinitialisés par tour, et sous-état explicite lors des délégations. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index e467655a..f01c2bbd 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 244 + "nextNumber": 246 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 44ef592f..319609a3 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -3251,7 +3251,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1787473510001 + "updatedAt": 1787483784669 }, { "issueRef": "#242", @@ -3294,6 +3294,20 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1787481685136 + }, + { + "issueRef": "#245", + "path": "245", + "title": "Corriger l’état busy/progress/tools/chatbox de la custom CLI après le premier appel", + "status": "inProgress", + "priority": "critical", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1787484765506 } ] } \ No newline at end of file