chore(tickets): synchro du store local — création #256 (Rebuild AppImage) + #257 (stop custom CLI), clôture #255 ; dérive résiduelle #254

This commit is contained in:
2026-08-28 22:57:32 +02:00
parent 1aabc3d702
commit 588914c83e
10 changed files with 157 additions and 12 deletions

View File

@ -1,8 +1,8 @@
---
issueRef: "#254"
version: 2
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787566369625
updatedAt: 1787566909446
---
2026-08-24
- Reprise du ticket par cycle complet.

View File

@ -2,7 +2,7 @@
id: "c77c66e2-5a81-4998-bcf5-c939be68b006"
number: 254
title: "Stabiliser les rendez-vous inter-agents OpenCode/GLM et éliminer les faux NoReply/perms sur projets externes"
status: "inProgress"
status: "qa"
priority: "high"
sprint: null
links: []
@ -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: 1787565563009
updatedAt: 1787566369625
version: 2
updatedAt: 1787566909446
version: 3
---
Enquête à partir du projet ReadaBook: des délégations Main -> Git/Architect/QA via profils OpenCode/GLM échouent encore sporadiquement avec `NoReply: agent ... finished without a structured Final response`, alors que les mêmes agents réussissent sur d'autres prompts. Les logs montrent aussi un vieux mélange de contexte où des agents Git/QA répondaient depuis le projet IdeA au lieu de ReadaBook et accusaient à tort des refus de permissions sur `/home/anthony/Documents/Projects/ReadaBook`. Il faut distinguer et corriger: 1) les vrais rendez-vous headless qui finissent sans Final capturée; 2) les cas de mauvais contexte/projet qui produisent de faux diagnostics de permissions. Périmètre probable: orchestration rendezvous/final-capture + projection d'état/live-state + messages d'erreur/réessai.

View File

@ -1,6 +1,27 @@
---
issueRef: "#255"
version: 3
version: 5
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787569806822
updatedAt: 1787569961595
---
Cause racine confirmée côté chemin headless OpenCode de `idea_ask_agent`.
Constat:
- Le run headless OpenCode était lancé depuis le run dir isolé sans `--dir <project_root>` ; une délégation pouvait donc s’exécuter hors du project root attendu.
- En reprise `--session`, OpenCode peut aussi sortir sans final JSON/textuel exploitable ; cela se manifestait côté Main par `finished without a structured Final response`.
- Le symptôme ne concernait pas la cellule visible de l’agent, ce qui isolait le bug au chemin de délégation headless.
Fix livré:
- `crates/infrastructure/src/session/factory.rs` passe désormais `ctx.project_root` à `OpenCodeSession`.
- `crates/infrastructure/src/session/opencode.rs` ajoute `--dir <project_root>` à chaque `opencode run`.
- En cas de reprise `--session` sans final exploitable, un retry unique est tenté en session fraîche, borné au même project root.
- Tests ajoutés: `send_passes_project_root_as_opencode_dir_without_changing_process_cwd` et `resumed_session_without_final_retries_once_as_fresh_project_scoped_run`.
Validation:
- QA verte le 2026-08-24 sur `cargo test -p infrastructure session::opencode -- --test-threads=1` (25 tests OK).
- Limite restante: pas d’e2e live OpenCode inter-projets exécutée contre un binaire/provider externe durant ce cycle.
Git:
- Branche de travail: `fix/255-opencode-cross-project-reattach-final`.
- Commits/merge locaux annoncés par Git: `8bea678` (fix), `6294ceb` (chore tickets), merge `9505a33` dans `develop`.
- Des changements hors sujet sont restés hors commit (`.ideai/tickets/254/*`, `scripts/`).

View File

@ -2,7 +2,7 @@
id: "bfcee119-765e-4622-b132-8fd5667d98d9"
number: 255
title: "Bug OpenCode: idea_ask_agent peut reattacher un agent d'un autre projet ou perdre le Final"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: []
@ -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: 1787569298214
updatedAt: 1787569806822
version: 3
updatedAt: 1787569961595
version: 5
---
Symptome utilisateur: dans un autre projet, une delegation Main -> Git via idea_ask_agent renvoie soit une reponse sur un autre depot, soit 'finished without a structured Final response'. La meme demande executee directement dans la cellule Git fonctionne. Suspicion forte: bug specifique au chemin OpenCode headless (reattache/session/cwd/contexte projet) et/ou a la capture de Final OpenCode. Objectif: verifier si le bug est bien specifique a OpenCode, identifier la cause, corriger, puis valider par test.

View File

@ -0,0 +1,24 @@
---
issueRef: "#256"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787572238319
---
Build AppImage exécuté le 2026-08-24 selon le workflow `build-appimage`.
Étapes exécutées:
- `npm --prefix frontend run build` vert.
- Depuis `crates/app-tauri/`: `CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` vert.
Résultat:
- Artefact produit: `target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`.
- Vérification fichier: présent sur disque, taille observée ~114M.
Version/tag:
- Branche courante: `develop`.
- Git a appliqué la règle projet d’incrément sur `develop` et a posé le tag local annoté `v0.37.0` sur le commit `9505a33` après build vert.
- Aucun push effectué.
Point restant manuel:
- Le remplacement de l’AppImage installée et la relance d’IdeA ne sont pas automatisés ici, car relancer IdeA coupe l’orchestrateur/session en cours.
- Si activation immédiate souhaitée: remplacer manuellement l’AppImage installée par l’artefact produit, idéalement en gardant un backup de l’ancienne AppImage, puis relancer IdeA.

View File

@ -0,0 +1,17 @@
---
id: "61fa7bad-35fc-4684-948e-7411d54bc9c7"
number: 256
title: "Rebuild AppImage IdeA"
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: 1787571941112
updatedAt: 1787572238319
version: 4
---
Reconstruction de l'AppImage Linux IdeA selon le workflow valide build-appimage. Inclut la gestion du tag de version local par l'agent Git selon la branche courante et la politique projet (x sur main, y sur develop, z sur autre branche).

View File

@ -0,0 +1,38 @@
---
issueRef: "#257"
version: 6
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787950467916
---
2026-08-28 Main
Contexte initial
- Le bouton stop de la custom CLI ne fonctionne pas et doit annuler le travail courant sans fermer la session.
- L’annulation doit cascader sur tous les agents délégués par ce travail courant, transitivement.
- Les tools/processus/travaux en cours doivent aussi être interrompus.
Cadrage UX
- `Stop` signifie uniquement `Arrêter la demande en cours`.
- La session et le contexte doivent être conservés.
- Etat attendu: `Stopping...` pendant la propagation, puis `Stopped`/`Request stopped` quand tout le sous-arbre courant est effectivement annulé.
- Ne jamais afficher un état stoppé si un tool ou un sous-agent du même tour tourne encore.
Cadrage Architect
- Le bug vient du fait que la UI/commande stoppe la session structurée au lieu d’annuler l’exécution courante.
- Cible: source de vérité du travail courant = task racine persistée; chaque délégation/tool long du tour courant est chaîné via `parent_task_id`.
- Le cancel doit suivre l’arbre de tâches, avec séparation claire entre `annuler le travail` et `fermer la session`.
- Port recommandé côté app/infra pour annuler la ressource runtime associée à un task/execution; état `Cancelling` puis terminal cohérent.
Etat implémentation observé
- Backend modifié dans `crates/application`, `crates/domain`, `crates/infrastructure/session` et `orchestrator/mcp/tools`.
- Frontend modifié dans `CustomAgentChatView.tsx` + tests associés.
- Backend: sessions structurées conservées, `cancel_current_turn()` introduit, cascade sur dépendances actives + préemption runtime, autorisation requester/sous-arbre sur `idea_stop_agent`, `TurnCancel` pour couper le process du tour courant.
- Frontend: bouton `Stop` rebranché sur l’annulation de chat courante, état `Stopping...`, anti double-clic, session réutilisable.
Verdict QA 1
- Ciblé backend/frontend vert.
- Blocage global: `app-tauri` ne compile plus ses tests DTO après l’ajout de `runtime_state` et `node_id`.
- Erreurs repérées dans `crates/app-tauri/tests/dto_agents.rs` lignes ~282, ~325, ~694.
Prochaine étape
- DevBackend corrige les fixtures/tests DTO Tauri puis QA relance.

View File

@ -0,0 +1,17 @@
---
id: "ed89dba0-05ae-4dc4-91b2-d90514c8ac70"
number: 257
title: "Le bouton stop de la custom CLI n’annule pas le travail courant ni les délivations en cascade"
status: "qa"
priority: "high"
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: 1787949060568
updatedAt: 1787950467916
version: 6
---
Le bouton stop de la custom CLI ne fonctionne pas. Il faut annuler le travail courant de l’agent ciblé sans fermer sa session, conserver son contexte, interrompre aussi les tools/travaux en cours, et propager l’annulation en chaîne à tous les agents appelés par cet agent pour le travail courant. La cascade doit fonctionner autant depuis un stop utilisateur que depuis un agent qui annule un agent qu’il a lancé.

View File

@ -1,3 +1,3 @@
{
"nextNumber": 256
"nextNumber": 258
}

View File

@ -3439,6 +3439,34 @@
"issueRef": "#255",
"path": "255",
"title": "Bug OpenCode: idea_ask_agent peut reattacher un agent d'un autre projet ou perdre le Final",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1787569961595
},
{
"issueRef": "#256",
"path": "256",
"title": "Rebuild AppImage IdeA",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1787572238319
},
{
"issueRef": "#257",
"path": "257",
"title": "Le bouton stop de la custom CLI n’annule pas le travail courant ni les délivations en cascade",
"status": "qa",
"priority": "high",
"sprint": null,
@ -3447,7 +3475,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1787569806822
"updatedAt": 1787950467916
}
]
}