chore(tickets): synchronise les statuts tickets et l'état plugin android

Rattrapage de l'état runtime .ideai/ (tickets #119-#139/#147 clôturés,
compteur→149, ticket #148 clos et QA verte, métadonnées plugin android) —
séparé du code de feature avant d'ouvrir le travail sur le nouveau bug
de lancement CLI custom.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-05 13:40:44 +02:00
parent 00a2eaaa16
commit ecad746c66
41 changed files with 202 additions and 163 deletions

View File

@ -5,7 +5,7 @@
"probableAppModule": null,
"projectId": "97b49ac2-8376-4aa3-8ea9-bf3ac81d0023",
"projectRoot": "/home/anthony/Documents/Projects/IdeA",
"updatedAt": "2026-08-04T21:31:12.564Z"
"updatedAt": "2026-08-05T11:34:54.650Z"
},
"ownerAgentId": null,
"ownerAgentMapping": {},
@ -15,7 +15,7 @@
},
"schemaVersion": 1,
"selection": {
"activeModulePath": null,
"activeModulePath": "android/app",
"debugApkPathByModule": {},
"selectedDeviceSerial": null
},

View File

@ -1,6 +1,6 @@
---
issueRef: "#119"
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785748044163
version: 4
updatedBy: {"kind":"user"}
updatedAt: 1785881187569
---

View File

@ -2,17 +2,17 @@
id: "b76431d7-f3a3-438f-ae3f-5648f5eda8ce"
number: 119
title: "Refondre le système de skills IdeA en capacités agent découvrables"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: []
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785534242629
updatedAt: 1785748044163
version: 3
updatedAt: 1785881187569
version: 4
---
## Constat

View File

@ -1,8 +1,8 @@
---
issueRef: "#120"
version: 10
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785748044180
version: 11
updatedBy: {"kind":"user"}
updatedAt: 1785881187579
---
---
issueRef: "#120"

View File

@ -2,17 +2,17 @@
id: "f4218553-680a-4fbb-9514-a96eab79b8d8"
number: 120
title: "Réinvestiguer linstallation de hello-plugin: écran noir / perte daffichage IdeA"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#116","kind":"relatesTo"},{"target":"#43","kind":"relatesTo"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785534496259
updatedAt: 1785748044180
version: 10
updatedAt: 1785881187579
version: 11
---
## Constat utilisateur

View File

@ -1,8 +1,8 @@
---
issueRef: "#123"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785670261241
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187586
---
## Contexte
Le besoin initial vient dun futur plugin orienté développement Android, mais le périmètre validé pour ce chantier est strictement **SDK générique**. Lobjectif nest pas dajouter des API Android-first, mais de combler les trous du SDK public qui empêchent aujourdhui tout plugin de développement un peu sérieux.

View File

@ -2,16 +2,16 @@
id: "0013caf7-bbc9-439f-82b2-9d23ed9e901a"
number: 123
title: "SDK plugins: combler les capacités globales manquantes pour les plugins de développement outillés"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: []
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662012603
updatedAt: 1785670261241
version: 4
updatedAt: 1785881187586
version: 5
---
Ticket parapluie pour structurer lextension du SDK public des plugins IdeA afin de supporter des plugins de développement avancés sans introduire dAPI métier spécifiques à une stack donnée. Le besoin initial vient du cas Android, mais le périmètre doit rester strictement transversal.

View File

@ -1,8 +1,8 @@
---
issueRef: "#124"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785666067073
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187593
---
## Problème
`WorkspaceService` public expose aujourdhui seulement le projet courant, son root, et la lecture/écriture du contexte Markdown IdeA. Cela ne suffit pas pour un plugin de développement qui doit lire, écrire, lister ou surveiller les fichiers dun projet.

View File

@ -2,16 +2,16 @@
id: "639787e1-83b5-49b7-a89f-3a6985129163"
number: 124
title: "SDK plugins: exposer une API publique daccès fichiers/workspace"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#123","kind":"blocks"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026640
updatedAt: 1785666067073
version: 4
updatedAt: 1785881187593
version: 5
---
Ajouter au SDK plugin une API publique de lecture/écriture/listing/watch dans le workspace projet, distincte du simple accès au contexte Markdown IdeA.

View File

@ -1,8 +1,8 @@
---
issueRef: "#125"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785667057177
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187607
---
## Problème
Le SDK public permet seulement :

View File

@ -2,16 +2,16 @@
id: "78bb45fb-6320-4d75-8db2-1e2a9591219f"
number: 125
title: "SDK plugins: exposer une API publique de lancement de commandes et tâches"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#123","kind":"blocks"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026655
updatedAt: 1785667057177
version: 4
updatedAt: 1785881187607
version: 5
---
Ajouter au SDK plugin une API publique pour lancer des commandes/outils externes et suivre leur exécution comme tâches IdeA, au-delà de lobservation des tâches existantes et du simple PTY interactif.

View File

@ -1,8 +1,8 @@
---
issueRef: "#126"
version: 7
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785668062783
version: 8
updatedBy: {"kind":"user"}
updatedAt: 1785881187599
---
## Problème
Un plugin de dev a souvent besoin de savoir si un outillage externe existe, où il se trouve, quelle version est installée, et si lenvironnement est valide. Le SDK public nexpose pas aujourdhui cette capacité comme primitive générique.

View File

@ -2,16 +2,16 @@
id: "51d4f4b0-4482-4400-a0d5-9f88471581f0"
number: 126
title: "SDK plugins: exposer une API publique de découverte/validation doutillage externe"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#123","kind":"blocks"},{"target":"#124","kind":"dependsOn"},{"target":"#125","kind":"dependsOn"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026684
updatedAt: 1785668062783
version: 7
updatedAt: 1785881187599
version: 8
---
Ajouter au SDK plugin une API publique pour détecter, valider et décrire des toolchains externes (exécutables, versions, variables denvironnement, prérequis) sans spécialiser le SDK pour une stack donnée.

View File

@ -1,8 +1,8 @@
---
issueRef: "#127"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785669121141
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187615
---
## Problème
Sans bus dévénements ou API de watch publique, un plugin doit poller létat du host ou du workspace pour se tenir à jour. Cest coûteux, fragile et peu réactif.

View File

@ -2,16 +2,16 @@
id: "9b238559-9982-4a69-8795-99da8a46be1e"
number: 127
title: "SDK plugins: exposer une API publique dévénements et de watch"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#123","kind":"blocks"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026701
updatedAt: 1785669121141
version: 4
updatedAt: 1785881187615
version: 5
---
Ajouter au SDK plugin une API publique dabonnement aux événements utiles du host et du projet: changements de fichiers, évolution des tâches, focus projet et autres signaux nécessaires pour éviter le polling côté plugin.

View File

@ -1,8 +1,8 @@
---
issueRef: "#128"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785670260985
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187622
---
## Problème
Le manifeste expose déjà des contributions `layouts`, mais la runtime publique ne formalise pas proprement lenregistrement et le cycle de vie de ces layouts. Lexemple SDK actuel contourne la surface avec des casts ad hoc.

View File

@ -2,16 +2,16 @@
id: "053f079d-1dfd-48bb-85a2-2dfa8d237999"
number: 128
title: "SDK plugins: typer et stabiliser la runtime UI/layout publique"
status: "qa"
status: "closed"
priority: "medium"
sprint: null
links: [{"target":"#123","kind":"blocks"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026717
updatedAt: 1785670260985
version: 4
updatedAt: 1785881187622
version: 5
---
Formaliser la surface runtime publique pour les contributions UI/layout des plugins afin déviter les casts ad hoc et de permettre des panneaux/plugins de dev riches sur base stable.

View File

@ -1,8 +1,8 @@
---
issueRef: "#129"
version: 5
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785666067171
version: 6
updatedBy: {"kind":"user"}
updatedAt: 1785881187631
---
## Problème
Chaque plugin de développement devrait aujourdhui rescanner lui-même le workspace pour reconstruire une vision de la structure projet. Cela duplique les heuristiques et rend lécosystème fragile.

View File

@ -2,16 +2,16 @@
id: "550fe7ca-8a25-4529-be2e-2fd79c7ddde4"
number: 129
title: "SDK plugins: exposer une API publique danalyse/requête de structure projet"
status: "qa"
status: "closed"
priority: "medium"
sprint: null
links: [{"target":"#123","kind":"blocks"},{"target":"#124","kind":"dependsOn"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026738
updatedAt: 1785666067171
version: 5
updatedAt: 1785881187631
version: 6
---
Ajouter au SDK plugin une API publique pour interroger la structure dun projet (fichiers, modules, graphes simples, conventions détectées) sans obliger chaque plugin à rescanner le workspace depuis zéro.

View File

@ -1,8 +1,8 @@
---
issueRef: "#130"
version: 5
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedAt: 1785669830933
version: 6
updatedBy: {"kind":"user"}
updatedAt: 1785881187639
---
## Problème
Un plugin de développement doit souvent lire ou modifier des documents structurés. Sans primitive publique, chaque plugin doit réimplémenter parsing, validation et patching, avec un risque élevé de corruption ou dincohérence.

View File

@ -2,16 +2,16 @@
id: "07a76880-f176-4fc8-b1d3-732a88a8c837"
number: 130
title: "SDK plugins: exposer une API publique de documents de configuration structurés"
status: "qa"
status: "closed"
priority: "medium"
sprint: null
links: [{"target":"#123","kind":"blocks"},{"target":"#124","kind":"dependsOn"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
updatedBy: {"kind":"user"}
createdAt: 1785662026750
updatedAt: 1785669830933
version: 5
updatedAt: 1785881187639
version: 6
---
Ajouter au SDK plugin une API publique pour lire/mettre à jour des documents de configuration structurés via un modèle générique plutôt que forcer chaque plugin à réimplémenter son parsing/patching.

View File

@ -1,8 +1,8 @@
---
issueRef: "#133"
version: 4
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedAt: 1785703664966
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187645
---
## Décision d'architecture (2026-08-02)

View File

@ -2,17 +2,17 @@
id: "f5296d8b-6bef-45c4-ac8a-cf6e0f90ae9c"
number: 133
title: "Plugins: contrat de service des assets idea-plugin:// (multi-fichiers ESM) & confinement"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: []
agentRefs: [{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"user"}
createdAt: 1785702640094
updatedAt: 1785703664966
version: 4
updatedAt: 1785881187645
version: 5
---
Bug diagnostiqué : `crates/app-tauri/src/plugins.rs:504-536` (`asset_allowed`) n'autorise que `main`/`icon` déclarés au manifeste, ou un chemin préfixé `assets/`. Tout import ESM relatif secondaire (`./constants.js`, `./core/x.js`) depuis le `main` est donc rejeté 403 → "Importing a module script failed." côté navigateur. Le SDK (sdk/IdeaSDK/README.md) documente `main: dist/index.js` comme point d'entrée sans jamais imposer un bundle mono-fichier, ce qui sous-entend un support multi-fichiers jamais réellement vérifié (l'exemple hello-plugin est mono-fichier).

View File

@ -1,6 +1,6 @@
---
issueRef: "#134"
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785707290184
version: 4
updatedBy: {"kind":"user"}
updatedAt: 1785881187652
---

View File

@ -2,17 +2,17 @@
id: "e98c3f80-9fd6-444a-be80-ad695809c71c"
number: 134
title: "Plugins: servir tout fichier confiné du package installé (fix racine multi-fichiers ESM)"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#133","kind":"dependsOn"}]
agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785702651199
updatedAt: 1785707290184
version: 3
updatedAt: 1785881187652
version: 4
---
Implémente le contrat décidé en #133.

View File

@ -1,8 +1,8 @@
---
issueRef: "#135"
version: 4
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785708498776
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187659
---
## Audit QA

View File

@ -2,17 +2,17 @@
id: "13442dae-7860-45e3-9287-31b9bde19170"
number: 135
title: "Plugins: audit confinement install & désinstallation 100% propre"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#133","kind":"dependsOn"}]
agentRefs: [{"agentId":"ab328d90-c307-4771-a3b6-6c56089c8506","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785702662938
updatedAt: 1785708498776
version: 4
updatedAt: 1785881187659
version: 5
---
Applique le contrat de confinement/désinstallation décidé en #133.

View File

@ -1,6 +1,6 @@
---
issueRef: "#136"
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785708478849
version: 4
updatedBy: {"kind":"user"}
updatedAt: 1785881187667
---

View File

@ -2,17 +2,17 @@
id: "214e7c14-fab8-45ed-bb71-5f309a8479a6"
number: 136
title: "SDK plugins: aligner doc/exemple sur le support multi-fichiers ESM"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#134","kind":"dependsOn"}]
agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785702672090
updatedAt: 1785708478849
version: 3
updatedAt: 1785881187667
version: 4
---
Une fois #134 livré, aligner le SDK et sa documentation pour que le support multi-fichiers soit explicite et testé, pas seulement sous-entendu.

View File

@ -1,6 +1,6 @@
---
issueRef: "#137"
version: 1
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedAt: 1785702681696
version: 2
updatedBy: {"kind":"user"}
updatedAt: 1785881139749
---

View File

@ -2,17 +2,17 @@
id: "2ef9b71a-9869-4476-88b6-65aaefc993e1"
number: 137
title: "QA: validation end-to-end plugin multi-fichiers ESM (chargement + désinstallation propre)"
status: "open"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#134","kind":"dependsOn"},{"target":"#136","kind":"dependsOn"}]
agentRefs: [{"agentId":"ab328d90-c307-4771-a3b6-6c56089c8506","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"user"}
createdAt: 1785702681696
updatedAt: 1785702681696
version: 1
updatedAt: 1785881139749
version: 2
---
Validation réelle, sortie observée — pas seulement des tests unitaires — du fix multi-fichiers (#134) et de l'exemple SDK (#136).

View File

@ -1,8 +1,8 @@
---
issueRef: "#138"
version: 4
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedAt: 1785703680849
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785881187672
---
## Décision d'architecture (2026-08-02)

View File

@ -2,17 +2,17 @@
id: "e33fd0ea-e7c6-40dc-a244-f158e44ac4a7"
number: 138
title: "SDK plugins: contrat de persistance plugin-owned hors projet et effacement total à la désinstallation"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: []
agentRefs: [{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"b4730d7f-c54d-4736-8a04-c6203aa2fd49"}
updatedBy: {"kind":"user"}
createdAt: 1785702748769
updatedAt: 1785703680849
version: 4
updatedAt: 1785881187672
version: 5
---
Le lot #133/#135 traite déjà le confinement du package installé et labsence décritures parasites au runtime, mais il reste un trou produit/API majeur : le SDK public et son exemple `sdk/IdeaSDK/examples/hello-plugin` montrent encore des écritures plugin sous `.ideai/hello-plugin.txt` et `.ideai/hello-plugin.json`, alors que lobjectif utilisateur est un modèle type VSCode où létat propre au plugin ne pollue jamais le projet et disparaît entièrement à la désinstallation.

View File

@ -1,6 +1,6 @@
---
issueRef: "#139"
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785709504027
version: 4
updatedBy: {"kind":"user"}
updatedAt: 1785881187678
---

View File

@ -2,16 +2,16 @@
id: "a5bac900-806d-4e13-866f-7ebae686a43d"
number: 139
title: "SDK plugins: aligner lAPI publique et les exemples sur une persistance plugin-owned hors projet"
status: "qa"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#138","kind":"dependsOn"}]
agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"},{"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"}
updatedBy: {"kind":"user"}
createdAt: 1785702774592
updatedAt: 1785709504027
version: 3
updatedAt: 1785881187678
version: 4
---
Implémenter le contrat décidé en #138. Ce ticket ne doit démarrer quaprès arbitrage architecture, car la forme exacte de lAPI publique peut varier (`ctx.storage` canonique seul, ou nouvelle API publique de document structuré plugin-scopé hors projet).\n\nPérimètre attendu après #138 :\n1. Faire de la voie canonique plugin-owned celle décidée en #138, et retirer lincitation actuelle à écrire létat interne du plugin dans le workspace utilisateur / `.ideai/`.\n2. Mettre à jour `sdk/IdeaSDK/README.md` et `sdk/IdeaSDK/examples/hello-plugin` pour que lexemple de référence nécrive plus `.ideai/hello-plugin.txt` ni `.ideai/hello-plugin.json` comme état interne par défaut.\n3. Si #138 décide quune nouvelle API SDK publique est nécessaire (par ex. document structuré plugin-scopé hors projet), lexposer de bout en bout : types SDK, façade runtime publique, adaptateurs hôte nécessaires, et documentation dusage.\n4. Garantir que la désinstallation du plugin purge aussi létat plugin-owned correspondant, conformément au contrat #138, sans supprimer les fichiers métier du projet que le plugin aurait modifiés explicitement.\n\nCritères dacceptation :\n- Le README SDK sépare explicitement données project-owned vs plugin-owned.\n- Lexemple de référence nemploie plus `.ideai/...` pour stocker son état interne.\n- Si une nouvelle API publique a été décidée en #138, elle est documentée, typée et couverte par des tests.\n- La purge de létat plugin-owned à la désinstallation est prouvée par tests ciblés sur le chemin réellement choisi par #138.\n- Aucun message public du SDK ne laisse entendre que `.ideai/` est le lieu normal de persistance interne dun plugin.

View File

@ -1,8 +1,8 @@
---
issueRef: "#147"
version: 7
version: 8
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785882543204
updatedAt: 1785924224928
---
## Cadrage consolidé

View File

@ -2,7 +2,7 @@
id: "64a8f704-df3e-40f4-9148-d39ae4f86af1"
number: 147
title: "[UI] créer une CLI custom alternative"
status: "inProgress"
status: "closed"
priority: "medium"
sprint: null
links: []
@ -11,8 +11,8 @@ attachments: [{"id":"06f4e827-d693-4190-9c53-186585602006","filename":"task_comp
createdBy: {"kind":"user"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785877963139
updatedAt: 1785882543204
version: 7
updatedAt: 1785924224928
version: 8
---
J'aimerais une CLI alternative pour mes agents. Cette CLI doit contenir bine entendu la barre de chat, ainsi que pour le reste de l'écran les bulle de conversation de l'agent et dde l'utilisateur. Cette CLI doit etre de la meme forme que ce qu'on peut voir dans les CLI des agents IA dans les IDE de code. Je veux voir s'afficher les reflexions de l'IA etc. La CLI communiquera en headless avec l'agent.

View File

@ -0,0 +1,6 @@
---
issueRef: "#148"
version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785928836678
---

View File

@ -0,0 +1,17 @@
---
id: "1ec75572-ecfa-47f9-a051-2eeb434c65a7"
number: 148
title: "CLI custom: structured session introuvable au lancement"
status: "closed"
priority: "high"
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: 1785927987793
updatedAt: 1785928836678
version: 3
---
Bug report utilisateur du 2026-08-05: lors du lancement de la CLI custom, l'app échoue avec `not found: structured session 86248c8d-9c67-4512-872b-87b0213a625e`. Diagnostic Architecture: trou de contrat frontend dans `CustomAgentChatView` — seul `reattach_agent_chat` au mount gère `NOT_FOUND`; `send()` et `cancel()` propagent encore l'erreur brute, et le reattach post-launch avale toute erreur. Objectif: centraliser la récupération de session structurée, relancer proprement sur `NOT_FOUND`, couvrir par tests réels, puis rebuild l'AppImage Linux.

View File

@ -1,3 +1,3 @@
{
"nextNumber": 148
"nextNumber": 149
}

View File

@ -1502,7 +1502,7 @@
"issueRef": "#119",
"path": "119",
"title": "Refondre le système de skills IdeA en capacités agent découvrables",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -1510,13 +1510,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785748044163
"updatedAt": 1785881187569
},
{
"issueRef": "#120",
"path": "120",
"title": "Réinvestiguer linstallation de hello-plugin: écran noir / perte daffichage IdeA",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [],
@ -1524,7 +1524,7 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785748044180
"updatedAt": 1785881187579
},
{
"issueRef": "#121",
@ -1559,7 +1559,7 @@
"issueRef": "#123",
"path": "123",
"title": "SDK plugins: combler les capacités globales manquantes pour les plugins de développement outillés",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -1567,13 +1567,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785670261241
"updatedAt": 1785881187586
},
{
"issueRef": "#124",
"path": "124",
"title": "SDK plugins: exposer une API publique daccès fichiers/workspace",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [],
@ -1581,13 +1581,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785666067073
"updatedAt": 1785881187593
},
{
"issueRef": "#125",
"path": "125",
"title": "SDK plugins: exposer une API publique de lancement de commandes et tâches",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [],
@ -1595,13 +1595,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785667057177
"updatedAt": 1785881187607
},
{
"issueRef": "#126",
"path": "126",
"title": "SDK plugins: exposer une API publique de découverte/validation doutillage externe",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -1609,13 +1609,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785668062783
"updatedAt": 1785881187599
},
{
"issueRef": "#127",
"path": "127",
"title": "SDK plugins: exposer une API publique dévénements et de watch",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -1623,13 +1623,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785669121141
"updatedAt": 1785881187615
},
{
"issueRef": "#128",
"path": "128",
"title": "SDK plugins: typer et stabiliser la runtime UI/layout publique",
"status": "qa",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
@ -1637,13 +1637,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785670260985
"updatedAt": 1785881187622
},
{
"issueRef": "#129",
"path": "129",
"title": "SDK plugins: exposer une API publique danalyse/requête de structure projet",
"status": "qa",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
@ -1651,13 +1651,13 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785666067171
"updatedAt": 1785881187631
},
{
"issueRef": "#130",
"path": "130",
"title": "SDK plugins: exposer une API publique de documents de configuration structurés",
"status": "qa",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
@ -1665,7 +1665,7 @@
"kind": "agent",
"agent_id": "a6ced819-b893-4213-b003-9e9dc79b9641"
},
"updatedAt": 1785669830933
"updatedAt": 1785881187639
},
{
"issueRef": "#131",
@ -1699,7 +1699,7 @@
"issueRef": "#133",
"path": "133",
"title": "Plugins: contrat de service des assets idea-plugin:// (multi-fichiers ESM) & confinement",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
@ -1709,13 +1709,13 @@
"kind": "agent",
"agent_id": "b4730d7f-c54d-4736-8a04-c6203aa2fd49"
},
"updatedAt": 1785703664966
"updatedAt": 1785881187645
},
{
"issueRef": "#134",
"path": "134",
"title": "Plugins: servir tout fichier confiné du package installé (fix racine multi-fichiers ESM)",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -1725,13 +1725,13 @@
"kind": "agent",
"agent_id": "b4730d7f-c54d-4736-8a04-c6203aa2fd49"
},
"updatedAt": 1785707290184
"updatedAt": 1785881187652
},
{
"issueRef": "#135",
"path": "135",
"title": "Plugins: audit confinement install & désinstallation 100% propre",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
@ -1741,13 +1741,13 @@
"kind": "agent",
"agent_id": "b4730d7f-c54d-4736-8a04-c6203aa2fd49"
},
"updatedAt": 1785708498776
"updatedAt": 1785881187659
},
{
"issueRef": "#136",
"path": "136",
"title": "SDK plugins: aligner doc/exemple sur le support multi-fichiers ESM",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
@ -1757,13 +1757,13 @@
"kind": "agent",
"agent_id": "b4730d7f-c54d-4736-8a04-c6203aa2fd49"
},
"updatedAt": 1785708478849
"updatedAt": 1785881187667
},
{
"issueRef": "#137",
"path": "137",
"title": "QA: validation end-to-end plugin multi-fichiers ESM (chargement + désinstallation propre)",
"status": "open",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -1773,13 +1773,13 @@
"kind": "agent",
"agent_id": "b4730d7f-c54d-4736-8a04-c6203aa2fd49"
},
"updatedAt": 1785702681696
"updatedAt": 1785881139749
},
{
"issueRef": "#138",
"path": "138",
"title": "SDK plugins: contrat de persistance plugin-owned hors projet et effacement total à la désinstallation",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -1789,13 +1789,13 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1785703680849
"updatedAt": 1785881187672
},
{
"issueRef": "#139",
"path": "139",
"title": "SDK plugins: aligner lAPI publique et les exemples sur une persistance plugin-owned hors projet",
"status": "qa",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -1806,7 +1806,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1785709504027
"updatedAt": 1785881187678
},
{
"issueRef": "#140",
@ -1921,14 +1921,30 @@
"issueRef": "#147",
"path": "147",
"title": "[UI] créer une CLI custom alternative",
"status": "inProgress",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
"createdBy": {
"kind": "user"
},
"updatedAt": 1785880207496
"updatedAt": 1785924224928
},
{
"issueRef": "#148",
"path": "148",
"title": "CLI custom: structured session introuvable au lancement",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
"8f7da528-58df-4315-97e9-0562230ecc19"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1785928836678
}
]
}