--- issueRef: "#232" version: 12 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedAt: 1787334071330 --- 2026-08-20 Main - Ticket créé pour le rebuild AppImage Linux. - Workflow `build-appimage` chargé. - Build source identifié sur `develop` au commit `a1d25d7d9e6233d64143fe2f50cb47bc023fe660`. - `npm --prefix frontend run build` exécuté avec succès. - Bundling Tauri AppImage exécuté avec succès. - Artefact produit: `target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`. - Git a posé le tag annoté `v0.21.0` sur le commit source `a1d25d7` conformément à la règle de version des builds sur `develop`. - Vigilance relevée par Git: `v0.19.0` et `v0.20.0` pointent historiquement sur le même commit `1f58b96`; non modifié. 2026-08-21 Main - Ticket réouvert et requalifié pour la disparition des annonces MCP/inter-agent. - Capture fournie: Work state montre `DevFrontend` et `QA` Busy, mais aucun rendu visible d'annonce dans la cellule `Main`. - Cause principale identifiée dans le frontend: l'overlay cible F3 est explicitement désactivé en mode `custom` (`LayoutGrid.tsx`: rendu conditionné par `cellMode !== "custom"`). La capture est précisément sur `Main` en `CLI custom`, donc aucune annonce cible ne peut apparaître dans cette cellule, même si l'agent est busy. - Le preview F2 n'est rendu que dans `AgentsPanel` (`AnnouncementsPreview requester={a.id}`), pas dans `CustomAgentChatView`. Donc la surface visible de chat custom ne possède actuellement aucun rendu d'annonces inter-agent intégré. - Causes secondaires compatibles avec les disparitions "au bout d'un moment": les annonces sont éphémères/non persistées; le Work state se réhydrate/rafraîchit via read-model, mais le contenu `agentAnnouncement` n'est ni rejoué ni reconstruit après remount/reconnexion/perte d'événement. Busy peut donc rester juste alors que le texte disparaît. - DevFrontend: autre fragilité probable, le store d'annonces hydrate busy en seed-only; si un `busy:true` live est raté après un `false` déjà mémorisé, F3 peut diverger du Work state. - UX validé: en vue custom, un état persistant local à la cellule doit rester visible tant que l'agent est busy sur délégation. Fallback wording: `Travaille sur une demande de {Agent}.` / `Travaille sur une demande en cours.` / `Délégation en cours.` - Architect validé: conserver le contrat `busy = cycle de vie` / `agentAnnouncement = contenu éphémère`; rendre F3 agnostique du mode `custom` et ajouter F2 localement à `CustomAgentChatView`, sans tenter de persister/rejouer les annonces. - Git: branche `fix/232-agent-busy-announcements-disparition` créée depuis `a51813f` et active. - DevFrontend a livré: F3 visible aussi en mode custom; fallback F3 stable dérivé de `busyByWorkState`; état vide explicite quand busy sans texte live; `AnnouncementsPreview` requester-side avec fallback; intégration locale F2 dans `CustomAgentChatView`; stacking context custom pour laisser F3 couvrir la vue. - DevFrontend a exécuté: `npm test -- --run src/features/announcements/AnnouncementsProvider.test.tsx src/features/layout/LayoutGrid.chat.test.tsx` => 27 tests verts; `npm run typecheck` => vert; `git diff --check -- ...` => vert. - Réserve signalée par DevFrontend: la suite large `npm test -- --run` reste rouge hors périmètre #232 (33 tests / 6 fichiers), dont une assertion existante sur `WebAgentCell.test.tsx`. - QA indépendant: VERT sur la branche `fix/232-agent-busy-announcements-disparition`. Commandes exécutées: `npm test -- src/features/announcements/AnnouncementsProvider.test.tsx src/features/layout/LayoutGrid.chat.test.tsx src/features/agents/CustomAgentChatView.test.tsx` => 82/82 verts; `npm run typecheck` => OK. - Réserve QA hors périmètre: pas de scénario manuel/e2e Tauri complet; validation frontend ciblée + typecheck uniquement.