- 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:
@ -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...").
|
||||
|
||||
@ -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.
|
||||
Reference in New Issue
Block a user