chore(tickets): sync carnets/issues #102/#141-#147 + agent glmopencode

Rebase de l'état ticket (réouverture #102, clôtures #141-146, ouverture
#147) et ajout du contexte agent glmopencode avant démarrage du cycle #147.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 23:57:30 +02:00
parent 1c53ee09ef
commit efbd56a149
22 changed files with 180 additions and 55 deletions

View File

View File

@ -5,14 +5,25 @@
"probableAppModule": null, "probableAppModule": null,
"projectId": "97b49ac2-8376-4aa3-8ea9-bf3ac81d0023", "projectId": "97b49ac2-8376-4aa3-8ea9-bf3ac81d0023",
"projectRoot": "/home/anthony/Documents/Projects/IdeA", "projectRoot": "/home/anthony/Documents/Projects/IdeA",
"updatedAt": "2026-08-03T20:37:53.046Z" "updatedAt": "2026-08-04T21:31:12.564Z"
}, },
"ownerAgentId": null, "ownerAgentId": null,
"ownerAgentMapping": {},
"refresh": { "refresh": {
"onActivate": true, "onActivate": true,
"watchWorkspace": true "watchWorkspace": true
}, },
"schemaVersion": 1, "schemaVersion": 1,
"selection": {
"activeModulePath": null,
"debugApkPathByModule": {},
"selectedDeviceSerial": null
},
"toolchain": {
"adbPath": null,
"androidSdkPath": null,
"emulatorPath": null
},
"ui": { "ui": {
"showDebugActions": true "showDebugActions": true
} }

View File

@ -1,6 +1,38 @@
--- ---
issueRef: "#102" issueRef: "#102"
version: 4 version: 11
updatedBy: {"kind":"user"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1784993980505 updatedAt: 1785878554632
--- ---
## 2026-08-04 — Réouverture
- Repro utilisateur confirmée: en changeant de projet, si une cellule contient un terminal d'agent IA et que du contenu est arrivé pendant que le projet n'était pas affiché, le terminal revient partiellement/blanc/tronqué.
- Symptôme visuel observé: le contenu complet réapparaît immédiatement après un resize de la cellule ou de la fenêtre.
- Portée repro indiquée historiquement: switch de projet, switch de layout, ajout/suppression/redécoupage de cellules; le cas prioritaire confirmé aujourd'hui est le retour sur projet.
- Hypothèse de travail à valider: problème de refresh/fit/reflow frontend du terminal lors de la ré-attache ou ré-activation de la vue, pas un manque de données côté agent.
- Action en cours: recadrage Architect, décision de branche Git, implémentation dev ciblée, puis validation QA sur reproduction réelle.
## 2026-08-04 — Cadrage Architecture (analyse statique, avant implémentation)
- Frontière validée: frontend pur, ciblée sur `frontend/src/features/terminals/TerminalView.tsx`.
- Le backend/PTY n'est pas suspecté à ce stade: le tail de scrollback est bien restitué au reattach; le défaut semble être de rendu/reflow au retour sur la vue.
- Point d'attention principal: `term.write(scrollback)` pourrait arriver avant le premier `fit()` réellement utile, ce qui laisserait xterm wrapper le contenu sur une géométrie transitoire et n'obtiendrait un repaint correct qu'au resize manuel ultérieur.
- Les correctifs précédents ont déjà renforcé la boucle de fit; le trou probable est l'absence de test sur le rendu/repaint effectif et sur l'ordre `reattach/write` vs `first useful fit`.
- Stratégie recommandée: corriger dans `TerminalView` l'ordre de réécriture du scrollback et/ou forcer un repaint plein-buffer après le premier fit utile, puis valider par test ciblé et repro réelle.
## 2026-08-04 — Implémentation DevFrontend
- Correctif appliqué dans `frontend/src/features/terminals/TerminalView.tsx`.
- Changement clé: en cas de `reattach`, le scrollback et les chunks live reçus pendant la fenêtre de réattache ne sont plus écrits immédiatement dans xterm; ils sont tamponnés jusqu'au premier `fit` utile, puis rejoués dans l'ordre `scrollback` puis `live output`.
- Objectif: éviter un rendu initial du buffer sur une géométrie transitoire et supprimer la dépendance à un resize manuel ultérieur pour déclencher l'affichage correct.
- Test ajouté/ajusté dans `frontend/src/features/terminals/TerminalView.test.tsx` pour verrouiller qu'aucun `term.write` ne précède le premier `fit` utile et que l'ordre de replay est conservé.
## 2026-08-04 — Verdict QA
- Validation automatisée verte:
- `cd frontend && npx vitest run src/features/terminals/TerminalView.test.tsx` -> 22 tests passés.
- `cd frontend && npx vitest run src/features/terminals/TerminalView.scrollback.test.tsx src/features/terminals/TerminalView.portal.test.tsx` -> 5 tests passés.
- `cd frontend && npx vitest run src/features/terminals` -> 39 tests passés.
- `cd frontend && npx vitest run` -> 115 fichiers, 1083 tests passés.
- Verdict QA: `vert avec réserve de preuve manuelle`.
- Réserve restante: absence de repro visuelle réelle rejouée dans l'application avec un vrai xterm, une session vivante, puis un reattach après switch projet/layout. Le ticket reste donc ouvert tant que cette validation de terrain n'est pas obtenue.

View File

@ -2,15 +2,16 @@
id: "e91fd358-da94-4382-aa70-6a3fe5a63840" id: "e91fd358-da94-4382-aa70-6a3fe5a63840"
number: 102 number: 102
title: "[Bug] Devoir resize les cellule pour afficher la TUI d'un agent" title: "[Bug] Devoir resize les cellule pour afficher la TUI d'un agent"
status: "closed" status: "inProgress"
priority: "medium" priority: "medium"
sprint: "e28a4d53-8bd2-446a-b0ac-2a017373b8b2" sprint: "e28a4d53-8bd2-446a-b0ac-2a017373b8b2"
links: [] links: []
agentRefs: [{"agentId":"a6ced819-b893-4213-b003-9e9dc79b9641","role":"assigned"}] agentRefs: [{"agentId":"a6ced819-b893-4213-b003-9e9dc79b9641","role":"assigned"}]
attachments: []
createdBy: {"kind":"user"} createdBy: {"kind":"user"}
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1784993319700 createdAt: 1784993319700
updatedAt: 1785083912470 updatedAt: 1785878554632
version: 5 version: 11
--- ---
J'ai toujours un soucis qui fait que quand je switch de projet IdeA ou de layout ou que j'ajoute des cellules ou autres, je suis obligé de resize un coup la cellule pour que son constenu s'affiche correctement J'ai toujours un soucis qui fait que quand je switch de projet IdeA ou de layout ou que j'ajoute des cellules ou autres, je suis obligé de resize un coup la cellule pour que son constenu s'affiche correctement

View File

@ -1,6 +1,6 @@
--- ---
issueRef: "#141" issueRef: "#141"
version: 1 version: 2
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"user"}
updatedAt: 1785766766212 updatedAt: 1785838243826
--- ---

View File

@ -2,17 +2,17 @@
id: "5ed1fc9b-1eef-4236-be89-e5d351ece549" id: "5ed1fc9b-1eef-4236-be89-e5d351ece549"
number: 141 number: 141
title: "Supporter louverture des layouts plugins comme Android Health" title: "Supporter louverture des layouts plugins comme Android Health"
status: "open" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
agentRefs: [] agentRefs: []
attachments: [] attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"user"}
createdAt: 1785766766212 createdAt: 1785766766212
updatedAt: 1785766766212 updatedAt: 1785838243826
version: 1 version: 2
--- ---
Le plugin Android `dev.idea.android-plugin` déclare un layout `idea-android.health` et lenregistre correctement à lactivation, mais louverture depuis lUI échoue avec le message : « la création de layouts plugins nécessite une extension backend pas encore livrée ». Le plugin Android `dev.idea.android-plugin` déclare un layout `idea-android.health` et lenregistre correctement à lactivation, mais louverture depuis lUI échoue avec le message : « la création de layouts plugins nécessite une extension backend pas encore livrée ».

View File

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

View File

@ -2,7 +2,7 @@
id: "73c2a22d-86bb-4bf5-912b-7766a528d5e7" id: "73c2a22d-86bb-4bf5-912b-7766a528d5e7"
number: 142 number: 142
title: "Plugin SDK: backend support for plugin-hosted windows" title: "Plugin SDK: backend support for plugin-hosted windows"
status: "qa" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785794926619 createdAt: 1785794926619
updatedAt: 1785796721082 updatedAt: 1785796835464
version: 3 version: 4
--- ---
Implement the backend/domain/application changes needed so plugin commands can open a new OS window that hosts a plugin-contributed layout, reusing the existing window pipeline and anti-duplication rules instead of inventing a parallel window system. Scope: extend the accepted view/window surface contract for plugin layout ids, preserve native panel behavior, and keep the window lifecycle compatible with the existing layout/window stores and commands. Implement the backend/domain/application changes needed so plugin commands can open a new OS window that hosts a plugin-contributed layout, reusing the existing window pipeline and anti-duplication rules instead of inventing a parallel window system. Scope: extend the accepted view/window surface contract for plugin layout ids, preserve native panel behavior, and keep the window lifecycle compatible with the existing layout/window stores and commands.

View File

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

View File

@ -2,7 +2,7 @@
id: "9e684778-62df-491f-b824-d74960bd6b9d" id: "9e684778-62df-491f-b824-d74960bd6b9d"
number: 143 number: 143
title: "Plugin SDK: frontend host for plugin windows and window-open API" title: "Plugin SDK: frontend host for plugin windows and window-open API"
status: "qa" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785794926635 createdAt: 1785794926635
updatedAt: 1785796721101 updatedAt: 1785796835483
version: 3 version: 4
--- ---
Implement the frontend runtime and SDK service surface so a plugin menu command can open a new window rendering one of its declared layout contributions. Scope: route plugin window surfaces through the existing view-window host, reuse plugin layout rendering/fallback behavior, and expose a public `services.windows.open(...)` API validated against declared layout ids. Implement the frontend runtime and SDK service surface so a plugin menu command can open a new window rendering one of its declared layout contributions. Scope: route plugin window surfaces through the existing view-window host, reuse plugin layout rendering/fallback behavior, and expose a public `services.windows.open(...)` API validated against declared layout ids.

View File

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

View File

@ -2,7 +2,7 @@
id: "7ed6eb7f-713e-41c6-a0b4-9783acf68268" id: "7ed6eb7f-713e-41c6-a0b4-9783acf68268"
number: 144 number: 144
title: "Plugin SDK: shared React runtime for plugin layouts" title: "Plugin SDK: shared React runtime for plugin layouts"
status: "qa" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785794926654 createdAt: 1785794926654
updatedAt: 1785796721119 updatedAt: 1785796835501
version: 3 version: 4
--- ---
Upgrade the plugin SDK/runtime so plugin-contributed layouts can be authored as real React components with JSX and hooks. Scope: resolve `react`/`react-dom` imports to the host instance, update SDK public types/tsconfig/package metadata accordingly, and refresh the hello-plugin example to demonstrate the supported React authoring model. Upgrade the plugin SDK/runtime so plugin-contributed layouts can be authored as real React components with JSX and hooks. Scope: resolve `react`/`react-dom` imports to the host instance, update SDK public types/tsconfig/package metadata accordingly, and refresh the hello-plugin example to demonstrate the supported React authoring model.

View File

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

View File

@ -2,7 +2,7 @@
id: "00df9acb-29ec-498b-b0dd-56af00b3d630" id: "00df9acb-29ec-498b-b0dd-56af00b3d630"
number: 145 number: 145
title: "Plugin SDK: expand and restructure SDK documentation" title: "Plugin SDK: expand and restructure SDK documentation"
status: "qa" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785794926667 createdAt: 1785794926667
updatedAt: 1785796721137 updatedAt: 1785796835521
version: 3 version: 4
--- ---
Produce a much more complete SDK documentation set under `sdk/IdeaSDK/docs/` with explicit file names and focused topics. Scope: turn the root README into a concise entrypoint/summary, add dedicated docs for manifest, activation/context, menus, layouts with React, windows, services, packaging/distribution, and keep the content aligned with the real runtime contracts and example plugin. Produce a much more complete SDK documentation set under `sdk/IdeaSDK/docs/` with explicit file names and focused topics. Scope: turn the root README into a concise entrypoint/summary, add dedicated docs for manifest, activation/context, menus, layouts with React, windows, services, packaging/distribution, and keep the content aligned with the real runtime contracts and example plugin.

View File

@ -1,6 +1,6 @@
--- ---
issueRef: "#146" issueRef: "#146"
version: 2 version: 3
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785796721013 updatedAt: 1785796835539
--- ---

View File

@ -2,7 +2,7 @@
id: "1b3f9aa1-c16a-4fb7-aab0-a3c5b56b200b" id: "1b3f9aa1-c16a-4fb7-aab0-a3c5b56b200b"
number: 146 number: 146
title: "QA: validate plugin window opening, React layouts, and SDK docs/examples" title: "QA: validate plugin window opening, React layouts, and SDK docs/examples"
status: "qa" status: "closed"
priority: "high" priority: "high"
sprint: null sprint: null
links: [] links: []
@ -11,7 +11,7 @@ attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785794926679 createdAt: 1785794926679
updatedAt: 1785796721013 updatedAt: 1785796835539
version: 2 version: 3
--- ---
Validate the plugin SDK feature set end to end after implementation. Scope: real test evidence that a plugin submenu click can open a new window, the opened window renders a React-based plugin layout correctly, layout state still round-trips, existing plugin layout cells still work, and the refreshed SDK docs/example match the shipped behavior. Validate the plugin SDK feature set end to end after implementation. Scope: real test evidence that a plugin submenu click can open a new window, the opened window renders a React-based plugin layout correctly, layout state still round-trips, existing plugin layout cells still work, and the refreshed SDK docs/example match the shipped behavior.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -0,0 +1,45 @@
---
issueRef: "#147"
version: 6
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1785880207496
---
## Cadrage consolidé
### Intention produit
Créer une CLI custom alternative à la TUI native actuelle pour les cellules agent. Cette vue doit communiquer avec l'agent en headless et afficher une retranscription conversationnelle vivante de ce que fait l'agent, sans limiter ce qui fait la spécificité d'IdeA.
Références visuelles jointes : `task_completed.jpg`, `Cline.png`.
### Décisions validées avec l'utilisateur
- Tous les agents IdeA sont dans le périmètre, car le mode headless est considéré comme un socle du produit.
- Le choix `TUI native` / `CLI custom` est `par cellule`, uniquement quand la cellule est sur un agent. En mode `Plain`, le terminal reste inchangé.
- La TUI native reste le mode par défaut pour le moment.
- Le switch de mode est autorisé en cours de session, mais avec warning explicite et arrêt de la session courante pour éviter toute confusion utilisateur.
- Même logique quand on repasse de `CLI custom` à `TUI native`.
- Le bouton `cancel` doit se comporter comme une interruption du tour courant (analogue à `Esc` dans Claude/Codex), sans tuer la session elle-même.
- La vue custom est une retranscription live pendant la durée de vie de la session, comme la TUI actuelle ; ce n'est pas un transcript persistant indépendant.
- Si la session est toujours vivante quand on rouvre la cellule, on doit revoir l'historique live associé ; si la session est morte, non.
- On veut afficher un maximum de ce qui est exposé proprement par le headless : messages intermédiaires, progression, appels d'outils, édition de fichiers, final, etc. La règle est d'utiliser au maximum les features fournies par le headless, sans bricolage fragile.
- Si certains rendus avancés (ex. code avec syntax highlighting, détails riches de tool calls, etc.) ne peuvent pas être faits de manière propre et solide, ils ne doivent pas être forcés.
### Arbitrage prioritaire
Ordre de priorité explicitement demandé par l'utilisateur :
1. Robustesse
2. User experience
3. Beauté de la CLI
### Position de cadrage
Ce ticket ne doit pas être traité comme un simple ticket UI : il implique un vrai contrat runtime/headless pour piloter et afficher une session agent structurée. Le rendu en bulles est secondaire par rapport à la solidité des événements exposés et de la bascule de mode.
### Hypothèses de travail à privilégier
- S'appuyer sur le mode headless des agents et normaliser uniquement les événements réellement fiables.
- Prévoir une dégradation contrôlée quand un agent expose moins de richesse événementielle qu'un autre.
- Pour les fichiers joints, privilégier une solution robuste de staging temporaire par session si nécessaire, plutôt qu'un mécanisme dépendant du provider.
- Garder la CLI custom comme vue de session vivante, pas comme nouvelle source de vérité persistante.
### Questions résiduelles à arbitrer techniquement pendant le cycle
- Contrat précis des événements normalisés côté IdeA (`message`, `tool_call`, `tool_result`, `file_edit`, `status`, `final`, etc.).
- Comportement exact du staging temporaire des fichiers joints : durée de vie, nettoyage, taille max, comportement si le fichier source change.
- UX précise du warning de bascule de mode et du redémarrage de session.
- Stratégie de dégradation contrôlée selon la richesse réellement exposée par chaque agent headless.

View File

@ -0,0 +1,23 @@
---
id: "64a8f704-df3e-40f4-9148-d39ae4f86af1"
number: 147
title: "[UI] créer une CLI custom alternative"
status: "inProgress"
priority: "medium"
sprint: null
links: []
agentRefs: []
attachments: [{"id":"06f4e827-d693-4190-9c53-186585602006","filename":"task_completed.jpg","path":"attachments/06f4e827-d693-4190-9c53-186585602006-task_completed.jpg","mime":"image/jpeg","sizeBytes":19288,"addedBy":{"kind":"user"},"addedAt":1785878707537,"summarizedInCarnet":false,"summarizedBy":null,"summarizedAt":null},{"id":"93c049aa-c5d5-44d5-a7d7-35ef929efd19","filename":"Cline.png","path":"attachments/93c049aa-c5d5-44d5-a7d7-35ef929efd19-Cline.png","mime":"image/png","sizeBytes":137940,"addedBy":{"kind":"user"},"addedAt":1785878711232,"summarizedInCarnet":false,"summarizedBy":null,"summarizedAt":null}]
createdBy: {"kind":"user"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1785877963139
updatedAt: 1785880207496
version: 6
---
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.
Cette CLI est alternative, il faudra simplement proposé un bouton en haut à côté du choix de l'agent pour proposer d'utiliser la CLI custom ou la CLI (fin la TUI de l'agent, celle qu'on utilise actuellement). Pour le moment, par défaut on utilisera la TUI comme actuellement.
Pour c equie st un peu du design, j'aimerais que les bulles de conversation de l'utilisateur soient allignée à gauche et que celle de l'agent soient alignées à droite. La couleur de sbulles de l'agents devront etre légèrement différente de celle de l'utilisateur. On devra pouvoir du coup envoyer un message ainsi que joindre un fichier. Une fois envoyé, on devra avoir un bouton pour cancel l'agent, encore une fois comme dans les CLI multi agent qu'on trouve ailleurs.
Je dirais que notre référence serait Cline, j'aime beaucoup le fait que le final soit mis en avent avec le Task Complete. Je mets des exemple dans les fichiers joint a ce ticket. Ce ne sont que des exemples, il faut que la CLI custom propose un maximum de ce qui fait d'IdeA une experience unique, il faut donc que la CLI ne limite pas IdeA

View File

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

View File

@ -1342,7 +1342,7 @@
"issueRef": "#102", "issueRef": "#102",
"path": "102", "path": "102",
"title": "[Bug] Devoir resize les cellule pour afficher la TUI d'un agent", "title": "[Bug] Devoir resize les cellule pour afficher la TUI d'un agent",
"status": "closed", "status": "inProgress",
"priority": "medium", "priority": "medium",
"sprint": "e28a4d53-8bd2-446a-b0ac-2a017373b8b2", "sprint": "e28a4d53-8bd2-446a-b0ac-2a017373b8b2",
"assignedAgentIds": [ "assignedAgentIds": [
@ -1351,7 +1351,7 @@
"createdBy": { "createdBy": {
"kind": "user" "kind": "user"
}, },
"updatedAt": 1785083912470 "updatedAt": 1785878554632
}, },
{ {
"issueRef": "#103", "issueRef": "#103",
@ -1827,7 +1827,7 @@
"issueRef": "#141", "issueRef": "#141",
"path": "141", "path": "141",
"title": "Supporter louverture des layouts plugins comme Android Health", "title": "Supporter louverture des layouts plugins comme Android Health",
"status": "open", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [], "assignedAgentIds": [],
@ -1835,13 +1835,13 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785766766212 "updatedAt": 1785838243826
}, },
{ {
"issueRef": "#142", "issueRef": "#142",
"path": "142", "path": "142",
"title": "Plugin SDK: backend support for plugin-hosted windows", "title": "Plugin SDK: backend support for plugin-hosted windows",
"status": "qa", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [ "assignedAgentIds": [
@ -1851,13 +1851,13 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785796721082 "updatedAt": 1785796835464
}, },
{ {
"issueRef": "#143", "issueRef": "#143",
"path": "143", "path": "143",
"title": "Plugin SDK: frontend host for plugin windows and window-open API", "title": "Plugin SDK: frontend host for plugin windows and window-open API",
"status": "qa", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [ "assignedAgentIds": [
@ -1867,13 +1867,13 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785796721101 "updatedAt": 1785796835483
}, },
{ {
"issueRef": "#144", "issueRef": "#144",
"path": "144", "path": "144",
"title": "Plugin SDK: shared React runtime for plugin layouts", "title": "Plugin SDK: shared React runtime for plugin layouts",
"status": "qa", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [ "assignedAgentIds": [
@ -1883,13 +1883,13 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785796721119 "updatedAt": 1785796835501
}, },
{ {
"issueRef": "#145", "issueRef": "#145",
"path": "145", "path": "145",
"title": "Plugin SDK: expand and restructure SDK documentation", "title": "Plugin SDK: expand and restructure SDK documentation",
"status": "qa", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [ "assignedAgentIds": [
@ -1899,13 +1899,13 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785796721137 "updatedAt": 1785796835521
}, },
{ {
"issueRef": "#146", "issueRef": "#146",
"path": "146", "path": "146",
"title": "QA: validate plugin window opening, React layouts, and SDK docs/examples", "title": "QA: validate plugin window opening, React layouts, and SDK docs/examples",
"status": "qa", "status": "closed",
"priority": "high", "priority": "high",
"sprint": null, "sprint": null,
"assignedAgentIds": [ "assignedAgentIds": [
@ -1915,7 +1915,20 @@
"kind": "agent", "kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
}, },
"updatedAt": 1785796721013 "updatedAt": 1785796835539
},
{
"issueRef": "#147",
"path": "147",
"title": "[UI] créer une CLI custom alternative",
"status": "inProgress",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
"createdBy": {
"kind": "user"
},
"updatedAt": 1785880207496
} }
] ]
} }