chore(tickets): sync miroir — #157/#171 + clôture #173 à #178

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 12:29:32 +02:00
parent ed58afa034
commit 5269315421
18 changed files with 420 additions and 11 deletions

View File

@ -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...").

View File

@ -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.