From 52693154216b48fa373f042ec53e84bdf16393c9 Mon Sep 17 00:00:00 2001 From: Blomios Date: Tue, 11 Aug 2026 12:29:32 +0200 Subject: [PATCH] =?UTF-8?q?chore(tickets):=20sync=20miroir=20=E2=80=94=20#?= =?UTF-8?q?157/#171=20+=20cl=C3=B4ture=20#173=20=C3=A0=20#178?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - counter.json : nextNumber 173 -> 179 - index.json : ajoute #173 à #178 (tous closed) - dirs tickets/173-178 (carnet + issue) - carnets/issues #157 #171 mis à jour Co-Authored-By: Claude Opus 4.8 --- .ideai/tickets/157/carnet.md | 59 ++++++++++++++++++++++++- .ideai/tickets/157/issue.md | 6 +-- .ideai/tickets/171/carnet.md | 50 ++++++++++++++++++++- .ideai/tickets/171/issue.md | 6 +-- .ideai/tickets/173/carnet.md | 16 +++++++ .ideai/tickets/173/issue.md | 17 +++++++ .ideai/tickets/174/carnet.md | 18 ++++++++ .ideai/tickets/174/issue.md | 17 +++++++ .ideai/tickets/175/carnet.md | 15 +++++++ .ideai/tickets/175/issue.md | 17 +++++++ .ideai/tickets/176/carnet.md | 30 +++++++++++++ .ideai/tickets/176/issue.md | 17 +++++++ .ideai/tickets/177/carnet.md | 24 ++++++++++ .ideai/tickets/177/issue.md | 17 +++++++ .ideai/tickets/178/carnet.md | 17 +++++++ .ideai/tickets/178/issue.md | 17 +++++++ .ideai/tickets/counter.json | 2 +- .ideai/tickets/index.json | 86 ++++++++++++++++++++++++++++++++++++ 18 files changed, 420 insertions(+), 11 deletions(-) create mode 100644 .ideai/tickets/173/carnet.md create mode 100644 .ideai/tickets/173/issue.md create mode 100644 .ideai/tickets/174/carnet.md create mode 100644 .ideai/tickets/174/issue.md create mode 100644 .ideai/tickets/175/carnet.md create mode 100644 .ideai/tickets/175/issue.md create mode 100644 .ideai/tickets/176/carnet.md create mode 100644 .ideai/tickets/176/issue.md create mode 100644 .ideai/tickets/177/carnet.md create mode 100644 .ideai/tickets/177/issue.md create mode 100644 .ideai/tickets/178/carnet.md create mode 100644 .ideai/tickets/178/issue.md diff --git a/.ideai/tickets/157/carnet.md b/.ideai/tickets/157/carnet.md index dafa037a..4357fe7c 100644 --- a/.ideai/tickets/157/carnet.md +++ b/.ideai/tickets/157/carnet.md @@ -1,11 +1,66 @@ --- issueRef: "#157" -version: 17 +version: 19 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1786378849914 +updatedAt: 1786380032724 --- # Journal d'itération (le plus récent en haut) +## Itération 4 — 2026-08-10 — Correctif livré, QA verte ciblée, merge local sur `develop`, attente de validation AppImage live + +### Diagnostic final du cycle + +Le problème utilisateur n'était **pas** uniquement frontend. + +- **Backend Codex** : un `agent_message` d'intention avant `idea_ask_agent` pouvait être traité comme faux candidat `Final` et ne pas être projeté live. De plus, le parser/session Codex émettait à la fois un `Progress` canonique et un `ToolActivity` de compatibilité pour certains événements tool/MCP (`conversation.item.added` / `conversation.item.done`), ce qui créait déjà une duplication en amont de l'UI. +- **Frontend custom CLI** : la réconciliation des cartes de progress ne dédupliquait pas au niveau de l'entité visuelle métier. Le même `idea_ask_agent` pouvait donc produire deux cartes distinctes (`Provider tool` puis `Délégation`) au lieu d'une seule carte `start` et d'une seule carte `done`. + +### Correctifs réalisés + +#### Backend (`#171` transverse, impact direct sur `#157`) + +- Reclassification d'un `agent_message` pré-MCP en `Announcement` dès qu'un événement ultérieur prouve que le tour continue, au lieu de l'avaler comme candidat `Final`. +- Suppression de l'émission doublon `ToolActivity` quand un `ReplyEvent::Progress` canonique existe déjà pour l'événement Codex/MCP concerné. +- Fichiers: `crates/infrastructure/src/session/codex.rs`, `crates/infrastructure/src/session/mod.rs`. + +#### Frontend (`#157`) + +- Déduplication par entité visuelle métier: même délégation/tool + même bucket `started` ou `completed` = une seule carte. +- `idea_ask_agent` / `idea_ask_agents` toujours rendus comme **délégation**, même si le provider les remonte comme `providerNative/tool`. +- Le `Final` ne crée pas une deuxième carte `done`; il termine simplement l'état en cours quand approprié. +- Fichiers: `frontend/src/features/agents/CustomAgentChatView.tsx`, `frontend/src/features/agents/CustomAgentChatView.test.tsx`. + +### Preuves de test / QA + +QA a rejoué et validé les commandes suivantes: + +- `CARGO_HOME=/tmp/idea-cargo-home cargo test -p infrastructure codex -- --nocapture` → **41 passed** +- `CARGO_HOME=/tmp/idea-cargo-home cargo test -p app-tauri --test chat_bridge -- --nocapture` → **25 passed** +- `cd frontend && npx vitest run src/features/agents/CustomAgentChatView.test.tsx` → **26 passed tests** +- `cd frontend && npx vitest run` → **1133 passed tests** +- `cd frontend && ./node_modules/.bin/tsc --noEmit --pretty false` → **exit 0** + +Verdict QA: **vert sur le scope tickets `#157` + `#171`**. + +### Git / intégration locale + +- Commit backend: `d6306bb5` — `fix(codex): intention pré-MCP reclassée en Announcement + doublon ToolActivity supprimé (#157 #171)` +- Commit frontend: `9fe87a86` — `fix(cli): déduplication métier des cartes progress + délégations rendues une fois (#157 #171)` +- Commit miroir tickets: `1beeed8c` — `chore(tickets): sync miroir #157 #171 — QA verte ciblée (AppImage en attente)` +- Merge local vers `develop`: `fa613674` — `merge(codex/cli): cycle #157 #171 — dedup cartes tool/MCP + intention pré-MCP live` + +### Réserve explicite avant fermeture définitive + +- **Pas encore de preuve E2E/AppImage live** sur le binaire utilisateur final. +- Un rouge Rust global subsiste mais est **préexistant et hors scope**: `crates/infrastructure/tests/mcp_server.rs:777` attend 37 tools alors que le catalogue en expose 38 (`idea_context_update` en plus). + +### Statut décidé + +- Ticket laissé en **QA** et non fermé, dans l'attente d'une validation live AppImage par l'utilisateur. +- Si le live confirme: le ticket pourra être fermé sans nouveau cycle de correction. + +--- + ## Itération 3 — 2026-08-10 — Régression CLI custom: doublons tool/MCP + progress potentiellement manquants avant le premier MCP **Remontée user (capture live AppImage, 2026-08-10)** : sur la CLI custom, l'usage de `idea_ask_agent` affiche les événements tool/MCP en double (deux cartes `Delegation idea_ask_agent` et deux cartes `Provider tool: idea_ask_agent`) alors que l'attendu produit est de ne conserver qu'une première carte `start` et une première carte `done`. En parallèle, l'utilisateur suspecte que tous les messages de progression/intention ne sont pas surfacés, notamment possiblement avant le premier appel MCP (ex. "Je vais d'abord regarder la liste de tools MCP..."). diff --git a/.ideai/tickets/157/issue.md b/.ideai/tickets/157/issue.md index 65b518e1..e61a0d80 100644 --- a/.ideai/tickets/157/issue.md +++ b/.ideai/tickets/157/issue.md @@ -2,7 +2,7 @@ id: "d49aaae5-0d03-43fe-a51c-2ab5e921045c" number: 157 title: "CLI custom: surface all available agent progress, MCP activity, and inter-agent delegation flow" -status: "inProgress" +status: "qa" priority: "high" sprint: null links: [{"target":"#156","kind":"dependsOn"}] @@ -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: 1785965383914 -updatedAt: 1786378849914 -version: 17 +updatedAt: 1786380032724 +version: 19 --- Régression/remontée utilisateur (profil OpenCode/GLM) sur la CLI custom : aucun message de progress ne s'affiche pendant le traitement de l'agent, et aucune bulle/carte d'appel de tool MCP n'apparaît quand l'agent invoque un outil MCP. Périmètre initial (surfacer progress + activité MCP + délégations inter-agent) à valider à nouveau sur le profil OpenCode. \ No newline at end of file diff --git a/.ideai/tickets/171/carnet.md b/.ideai/tickets/171/carnet.md index af789c28..936c1b5a 100644 --- a/.ideai/tickets/171/carnet.md +++ b/.ideai/tickets/171/carnet.md @@ -1,11 +1,57 @@ --- issueRef: "#171" -version: 3 +version: 5 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1786378881038 +updatedAt: 1786380032763 --- # Journal d'itération (le plus récent en haut) +## Itération 2 — 2026-08-10 — Pipeline live corrigée pour Codex/custom CLI, QA verte ciblée, attente de preuve AppImage live + +### Diagnostic final du cycle + +Le soupçon utilisateur d'un trou avant le premier MCP était **fondé** côté backend Codex. + +Le backend exposait bien certains `ReplyEvent::Progress` live (ex. `turn.started`), mais un `agent_message` d'intention avant `idea_ask_agent` pouvait être retenu comme candidat `Final` et ne jamais être projeté comme événement live si le tour continuait. En parallèle, certains événements tool/MCP Codex étaient doublés à la source parce qu'un `Progress` canonique cohabitait avec un `ToolActivity` de compatibilité. + +### Correctif backend livré sur le périmètre `#171` + +- Un `agent_message` pré-MCP devient désormais une `Announcement` dès qu'un événement suivant prouve que le tour continue, au lieu de rester un faux candidat `Final`. +- Les doublons `ToolActivity` de compatibilité sont supprimés quand un `ReplyEvent::Progress` canonique existe déjà pour l'événement concerné. +- Fichiers: `crates/infrastructure/src/session/codex.rs`, `crates/infrastructure/src/session/mod.rs`. + +### Validation backend/transport + +Commandes validées par QA: + +- `CARGO_HOME=/tmp/idea-cargo-home cargo test -p infrastructure codex -- --nocapture` → **41 passed** +- `CARGO_HOME=/tmp/idea-cargo-home cargo test -p app-tauri --test chat_bridge -- --nocapture` → **25 passed** + +Couvertures explicitement mentionnées par QA: + +- le message d'intention pré-MCP est bien projeté avant le premier progress MCP quand le flux l'expose ; +- le tap live reste antérieur au `Final` ; +- les doublons `ToolActivity` / `Progress` ne survivent plus dans le transport canonique ; +- l'invariant d'un seul terminal `Final` reste préservé. + +### Git / intégration locale + +- Commit backend: `d6306bb5` — `fix(codex): intention pré-MCP reclassée en Announcement + doublon ToolActivity supprimé (#157 #171)` +- Commit miroir tickets: `1beeed8c` — `chore(tickets): sync miroir #157 #171 — QA verte ciblée (AppImage en attente)` +- Merge local vers `develop`: `fa613674` — `merge(codex/cli): cycle #157 #171 — dedup cartes tool/MCP + intention pré-MCP live` + +### Réserve avant fermeture définitive + +- Pas encore de validation live AppImage / UI bout-en-bout avec le binaire utilisateur final. +- Rouge Rust global préexistant et hors scope toujours présent: `crates/infrastructure/tests/mcp_server.rs:777` (37 tools attendus vs 38 exposés, `idea_context_update` en plus). + +### Statut décidé + +- Ticket placé en **QA** dans l'attente d'une preuve live AppImage. +- Si la vérification live confirme l'apparition du progress pré-MCP et l'ordre correct dans la vraie UI, le ticket pourra être fermé sans nouveau développement. + +--- + ## Itération 1 — 2026-08-10 — Ouverture du cycle live progress depuis régression AppImage CLI custom **Signal utilisateur (capture live du 2026-08-10)** : sur la custom CLI, tous les messages d'intention/progression de l'agent ne semblent pas remonter pendant le tour. Suspicion forte d'un trou avant le premier appel MCP (`idea_ask_agent`), alors que l'agent a vraisemblablement déjà émis des progress du type "Je vais d'abord regarder la liste de tools MCP...". En parallèle, des cartes tool/MCP apparaissent en double ; ce point de rendu est traité en articulation avec #157. diff --git a/.ideai/tickets/171/issue.md b/.ideai/tickets/171/issue.md index ebe58499..c4598476 100644 --- a/.ideai/tickets/171/issue.md +++ b/.ideai/tickets/171/issue.md @@ -2,7 +2,7 @@ id: "dcd6a2c9-c819-43b0-acf2-5d7dd9ada284" number: 171 title: "[OBS] Pipeline d'observabilité conversationnelle — ReplyEvent progress -> UI en temps réel" -status: "inProgress" +status: "qa" priority: "high" sprint: null links: [{"target":"#58","kind":"relatesTo"},{"target":"#93","kind":"relatesTo"}] @@ -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: 1786371966186 -updatedAt: 1786378881038 -version: 3 +updatedAt: 1786380032763 +version: 5 --- Dérivé de la régression CLI/UI signalée le 2026-08-10: les messages process ne s'affichent pas pendant le tour et les usages d'outils MCP (ex. idea_ask_agent) n'apparaissent qu'après terminaison du tool / Final cible. Ticket transverse pour établir un pipeline live des événements conversationnels (progress/tool activity/process) du backend vers l'UI/CLI, sans dépendre du Final. \ No newline at end of file diff --git a/.ideai/tickets/173/carnet.md b/.ideai/tickets/173/carnet.md new file mode 100644 index 00000000..060b2f6c --- /dev/null +++ b/.ideai/tickets/173/carnet.md @@ -0,0 +1,16 @@ +--- +issueRef: "#173" +version: 8 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786439016367 +--- +2026-08-11 +- Demande utilisateur: lister les tools MCP visibles dans cette session et tester une délégation simple vers Architect. +- Action: appel `idea_ask_agent` vers Architect avec une consigne minimale. +- Résultat: réponse reçue correctement, délégation fonctionnelle. + +2026-08-11 +- Relance utilisateur: refaire exactement la même demande. +- Action: réouverture logique du ticket puis nouvel appel `idea_ask_agent` avec une consigne minimale. +- Réponse exacte reçue: "OK, je suis Main, le chef d'orchestre du projet IdeA." +- Verdict: la délégation `idea_ask_agent -> Architect` fonctionne, mais le contenu retourné montre un problème probable de contexte/profil côté agent cible (Architect se présente comme Main). \ No newline at end of file diff --git a/.ideai/tickets/173/issue.md b/.ideai/tickets/173/issue.md new file mode 100644 index 00000000..d9a6db2c --- /dev/null +++ b/.ideai/tickets/173/issue.md @@ -0,0 +1,17 @@ +--- +id: "749bea54-8bd6-463c-8405-570b5d106676" +number: 173 +title: "Lister les tools MCP disponibles et vérifier une délégation simple à Architect" +status: "closed" +priority: "low" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786434809771 +updatedAt: 1786439016367 +version: 8 +--- +Demande utilisateur de lister les outils MCP accessibles dans cette session puis de tester une requête simple vers Architect. \ No newline at end of file diff --git a/.ideai/tickets/174/carnet.md b/.ideai/tickets/174/carnet.md new file mode 100644 index 00000000..736da9cb --- /dev/null +++ b/.ideai/tickets/174/carnet.md @@ -0,0 +1,18 @@ +--- +issueRef: "#174" +version: 5 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786436938513 +--- +2026-08-11 +- Demande utilisateur: repenser la présentation des événements de conversation. +- Contraintes explicites: tools MCP centrés, progress à droite, début/fin de tour plus compacts, tools IdeA plus explicites (demandeur, cible, extrait court). +- Action: délégation à UX pour proposer une structure visuelle et une micro-copy. +- Résultat UX: proposition de timeline à trois alignements (gauche pour contenu principal, centre pour tools, droite pour progress), avec variante dédiée pour les appels IdeA inter-agent et début/fin de tour compactés. +- Validation utilisateur: direction UX validée. Ajustement: les progress à droite peuvent garder plusieurs lignes, jusqu’à 4 lignes. +- Architect: cadrage frontend confirmé, avec parsing défensif acceptable pour les métadonnées inter-agent non structurées. +- Git: branche locale créée `feature/ticket174-conversation-events-presentation` depuis `develop`. +- DevFrontend: implémentation livrée dans `frontend/src/features/agents/CustomAgentChatView.tsx` et tests adaptés dans `frontend/src/features/agents/CustomAgentChatView.test.tsx`. +- QA: validation OK sur preuves réelles (`npm test -- --run src/features/agents/CustomAgentChatView.test.tsx` = 26/26 verts ; `npm run typecheck` = exit code 0). +- Git: commit feature `ae3c55a1`, puis merge local `--no-ff` dans `develop` via `66afd358`, sans push. +- Résultat final: lot intégré localement sur `develop`, branche feature conservée, `.ideai/` de bookkeeping exclus des commits feature. \ No newline at end of file diff --git a/.ideai/tickets/174/issue.md b/.ideai/tickets/174/issue.md new file mode 100644 index 00000000..18302f41 --- /dev/null +++ b/.ideai/tickets/174/issue.md @@ -0,0 +1,17 @@ +--- +id: "ac4d903c-1d3f-48b9-a3b8-4365a79e29cc" +number: 174 +title: "Repenser la présentation des événements de conversation et des tools MCP" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786435207800 +updatedAt: 1786436938513 +version: 5 +--- +Demande utilisateur: centrer les usages de tools MCP dans la conversation, aligner les progress à droite, alléger la présentation du début/fin de tour, et rendre les tools IdeA un peu plus explicites (qui demande à qui, avec un extrait très succinct de la demande). \ No newline at end of file diff --git a/.ideai/tickets/175/carnet.md b/.ideai/tickets/175/carnet.md new file mode 100644 index 00000000..c99158f1 --- /dev/null +++ b/.ideai/tickets/175/carnet.md @@ -0,0 +1,15 @@ +--- +issueRef: "#175" +version: 3 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786437432841 +--- +2026-08-11 + +- Demande: rebuild de l'AppImage Linux. +- Skill suivi: `build-appimage`. +- Frontend build OK via `npm --prefix frontend run build`. +- Bundle Tauri OK via `CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/`. +- Artefact final confirme par Tauri et par `ls -lh` : `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`. +- Bruit d'environnement observe au lancement des shells (`Fatal Python error: Failed to import encodings module`) mais sans impact sur les commandes npm/tauri executees ici. +- Etape restante volontairement non automatisee: remplacement manuel de l'AppImage installee puis relance d'IdeA, car la relance coupe l'orchestrateur courant. diff --git a/.ideai/tickets/175/issue.md b/.ideai/tickets/175/issue.md new file mode 100644 index 00000000..a5e2e4f1 --- /dev/null +++ b/.ideai/tickets/175/issue.md @@ -0,0 +1,17 @@ +--- +id: "7f8e147b-2ae0-4fe6-bc4e-3b717e6cb138" +number: 175 +title: "Rebuild AppImage Linux" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786437264616 +updatedAt: 1786437432841 +version: 3 +--- +Rebuild AppImage effectué avec succès le 2026-08-11 depuis le project root. Commandes exécutées : `npm --prefix frontend run build` puis `mkdir -p /tmp/idea-cargo-home && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/`. Artefact produit : `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage` (113M). \ No newline at end of file diff --git a/.ideai/tickets/176/carnet.md b/.ideai/tickets/176/carnet.md new file mode 100644 index 00000000..573e7cbe --- /dev/null +++ b/.ideai/tickets/176/carnet.md @@ -0,0 +1,30 @@ +--- +issueRef: "#176" +version: 6 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786440311377 +--- +2026-08-11 +- Demande utilisateur: ajuster la custom CLI sur la conversation et les événements tools MCP. +- Périmètre demandé: + 1. Aligner les messages `Final` à droite. + 2. Pour les tools MCP inter-agent, afficher qui parle à qui. + 3. Pour tous les tools MCP, afficher le spinner seulement pendant l'exécution, remplacer `started` par `done` une fois fini, et supprimer le second message de fin du tool. +- Cadrage UX reçu: + - `Final` à droite avec hiérarchie visuelle plus claire. + - Délégations inter-agent explicites avec flèche directionnelle `requester → target` et retour `requester ← target`. + - Progression tool portée par une seule carte: spinner uniquement pendant run, statut `done` à la fin, pas de message de complétion séparé. +- Cadrage Architect reçu: + - Les 3 changements sont frontend-purs. + - Zone principale: `CustomAgentChatView.tsx`. + - Les données utiles existent déjà pour `idea_ask_agent`/`idea_ask_agents`; pas de DTO/contrat backend à modifier. +- Livraison DevFrontend: + - Modifs dans `frontend/src/features/agents/CustomAgentChatView.tsx` et `frontend/src/features/agents/CustomAgentChatView.test.tsx`. + - `Final` aligné à droite. + - Délégations inter-agent affichées avec direction explicite. + - Les cartes de progress MCP ne dupliquent plus un message de complétion; `done` remplace l'état final sur la carte existante et le spinner disparaît. +- Validation QA: + - Verdict OK sur le workspace courant. + - `npm test -- src/features/agents/CustomAgentChatView.test.tsx` vert (26/26). + - `npm run typecheck` vert. + - Réserve environnementale sans impact verdict: bruit shell `Fatal Python error: Failed to import encodings module` avant les sorties utiles. \ No newline at end of file diff --git a/.ideai/tickets/176/issue.md b/.ideai/tickets/176/issue.md new file mode 100644 index 00000000..0c69996e --- /dev/null +++ b/.ideai/tickets/176/issue.md @@ -0,0 +1,17 @@ +--- +id: "c1f25ae9-3f8d-4de3-9592-9d9d7f61773c" +number: 176 +title: "Custom CLI: ajustements UI/UX conversation et événements tools MCP" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"}] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786439237821 +updatedAt: 1786440311377 +version: 6 +--- +Ajuster la présentation de la conversation dans la custom CLI: 1) aligner les messages `Final` à droite, 2) pour les tools MCP inter-agent afficher explicitement qui parle à qui, 3) sur tous les tools MCP afficher l'icône animée uniquement pendant l'exécution, remplacer `started` par `done` à la fin, et supprimer le second message de fin de tool devenu redondant. \ No newline at end of file diff --git a/.ideai/tickets/177/carnet.md b/.ideai/tickets/177/carnet.md new file mode 100644 index 00000000..cf115cb2 --- /dev/null +++ b/.ideai/tickets/177/carnet.md @@ -0,0 +1,24 @@ +--- +issueRef: "#177" +version: 9 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786443949818 +--- +Suppression du popup de reprise par cellule. + +Décision produit courante : +- On retire complètement la surface de reprise par cellule pour le moment. +- Plus aucun popup local de type ResumeConversationPopup. +- Une cellule agent qui porte déjà un conversationId relance directement via launchAgent(..., conversationId) sans modal ni inspectConversation. + +Implémentation DevFrontend : +- retrait de ResumeConversationPopup.tsx et de son export; +- suppression de l'état pendingResume/resumeDetails et des handlers onResume/onNewConversation dans LayoutGrid; +- lancement direct avec conversationId dans terminalOpener; +- suppression du test dédié resumeConversationPopup.test.tsx; +- ajustement d'un commentaire dans ResumeProjectPanel. + +Validation QA réelle : +- typecheck frontend vert; +- suites ciblées LayoutGrid / LayoutGrid.chat / CustomAgentChatView vertes (44 tests). +- un écart initial non lié sur le libellé "Task Complete" vs "Terminé" a été renvoyé à DevFrontend puis corrigé avant revalidation verte. \ No newline at end of file diff --git a/.ideai/tickets/177/issue.md b/.ideai/tickets/177/issue.md new file mode 100644 index 00000000..9b9105e2 --- /dev/null +++ b/.ideai/tickets/177/issue.md @@ -0,0 +1,17 @@ +--- +id: "6cd13963-a128-45f5-ad2d-830ddee66ffa" +number: 177 +title: "Supprimer le popup de reprise par cellule" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786441174613 +updatedAt: 1786443949818 +version: 9 +--- +Retirer pour le moment le popup de reprise par cellule. La reprise implicite éventuelle sera rediscutée plus tard ; l'objectif immédiat est de supprimer cette surface utilisateur et ses tests associés si nécessaire. \ No newline at end of file diff --git a/.ideai/tickets/178/carnet.md b/.ideai/tickets/178/carnet.md new file mode 100644 index 00000000..9fad7645 --- /dev/null +++ b/.ideai/tickets/178/carnet.md @@ -0,0 +1,17 @@ +--- +issueRef: "#178" +version: 3 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786443633616 +--- +Nettoyage mémoire lancé le 2026-08-11. + +Actions appliquées : +- suppression de notes purement historiques de topologie devenues non actionnables (`develop-realigned-to-cli-ui-baseline-2026-07-02`, `cycle-151-167-155-git-topology`, `ticket4-restart-on-develop-ebd992e`); +- réécriture de `remaining-work-idea-agent-control-ide` en snapshot produit court à date, en retirant les assertions trop datées; +- mise à jour de `ui-rework-sprint-scoping-contracts` pour supprimer la référence au z-index du popup de reprise retiré; +- réalignement de `MEMORY.md` avec ces suppressions et ajout des notes présentes mais non indexées encore utiles (`context-agent-token-offload-design`, `ticket95-adapter-aware-liveness-probe`, `ticket97-opencode-provider-mutual-exclusion`, `ticket98-opencode-modelsdev-cache-seed`, `toolchain-rust-partage-acces-agents`). + +Reste à vérifier : +- qu'il n'existe plus d'écarts simples index/fichiers dans `.ideai/memory`. +- si d'autres notes historiques méritent une passe de curation plus large, mais le gros des notes manifestement trompeuses a été traité. \ No newline at end of file diff --git a/.ideai/tickets/178/issue.md b/.ideai/tickets/178/issue.md new file mode 100644 index 00000000..941c17e1 --- /dev/null +++ b/.ideai/tickets/178/issue.md @@ -0,0 +1,17 @@ +--- +id: "4939b9db-6337-413c-9d33-90a623e2a8d3" +number: 178 +title: "Nettoyer la mémoire projet obsolète vis-à-vis de l'app actuelle" +status: "closed" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786442630197 +updatedAt: 1786443633616 +version: 3 +--- +Inventorier les notes mémoire IdeA qui ne reflètent plus l'état actuel de l'application, puis supprimer ou mettre à jour celles qui sont devenues trompeuses ou obsolètes. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index 3a00f7bf..8fed469a 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 173 + "nextNumber": 179 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 6b4fe63d..e53d633f 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -2308,6 +2308,92 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1786433962330 + }, + { + "issueRef": "#173", + "path": "173", + "title": "Lister les tools MCP disponibles et vérifier une délégation simple à Architect", + "status": "closed", + "priority": "low", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786439016367 + }, + { + "issueRef": "#174", + "path": "174", + "title": "Repenser la présentation des événements de conversation et des tools MCP", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786436938513 + }, + { + "issueRef": "#175", + "path": "175", + "title": "Rebuild AppImage Linux", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786437432841 + }, + { + "issueRef": "#176", + "path": "176", + "title": "Custom CLI: ajustements UI/UX conversation et événements tools MCP", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [ + "8f7da528-58df-4315-97e9-0562230ecc19" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786440311377 + }, + { + "issueRef": "#177", + "path": "177", + "title": "Supprimer le popup de reprise par cellule", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786443949818 + }, + { + "issueRef": "#178", + "path": "178", + "title": "Nettoyer la mémoire projet obsolète vis-à-vis de l'app actuelle", + "status": "closed", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786443633616 } ] } \ No newline at end of file