From 0f60f625a13db23b7e17f94463e36d1e323f6062 Mon Sep 17 00:00:00 2001 From: Blomios Date: Thu, 6 Aug 2026 14:19:04 +0200 Subject: [PATCH] =?UTF-8?q?chore(tickets):=20r=C3=A9ouverture=20#151=20#15?= =?UTF-8?q?7=20+=20cr=C3=A9ation=20epic=20slash-commands=20#161=E2=80=93#1?= =?UTF-8?q?65?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Réouvre #151 (résidu z-order bouton Cancel en état busy) et #157 (suivi UX : arrêt du spinner à l'état terminal) en statut open avec assignations. Crée l'epic slash-commands custom CLI : #161 (ombrelle suivi produit), #162 (fondation registry + /help + /clean), #163 (UX autocomplete / menu), #164 (/profile + reset session confirmé), #165 (commands contribées plugins). nextNumber 161 → 166. Bookkeeping tickets seul (l'état runtime .ideai hors-lot reste en working tree, non committé). Co-Authored-By: Claude Opus 4.8 --- .ideai/tickets/151/carnet.md | 6 +-- .ideai/tickets/151/issue.md | 12 ++--- .ideai/tickets/157/carnet.md | 6 +-- .ideai/tickets/157/issue.md | 10 ++-- .ideai/tickets/161/carnet.md | 6 +++ .ideai/tickets/161/issue.md | 17 +++++++ .ideai/tickets/162/carnet.md | 6 +++ .ideai/tickets/162/issue.md | 17 +++++++ .ideai/tickets/163/carnet.md | 6 +++ .ideai/tickets/163/issue.md | 17 +++++++ .ideai/tickets/164/carnet.md | 6 +++ .ideai/tickets/164/issue.md | 17 +++++++ .ideai/tickets/165/carnet.md | 6 +++ .ideai/tickets/165/issue.md | 17 +++++++ .ideai/tickets/counter.json | 2 +- .ideai/tickets/index.json | 91 ++++++++++++++++++++++++++++++++++-- 16 files changed, 219 insertions(+), 23 deletions(-) create mode 100644 .ideai/tickets/161/carnet.md create mode 100644 .ideai/tickets/161/issue.md create mode 100644 .ideai/tickets/162/carnet.md create mode 100644 .ideai/tickets/162/issue.md create mode 100644 .ideai/tickets/163/carnet.md create mode 100644 .ideai/tickets/163/issue.md create mode 100644 .ideai/tickets/164/carnet.md create mode 100644 .ideai/tickets/164/issue.md create mode 100644 .ideai/tickets/165/carnet.md create mode 100644 .ideai/tickets/165/issue.md diff --git a/.ideai/tickets/151/carnet.md b/.ideai/tickets/151/carnet.md index 693b902..d592914 100644 --- a/.ideai/tickets/151/carnet.md +++ b/.ideai/tickets/151/carnet.md @@ -1,6 +1,6 @@ --- issueRef: "#151" -version: 5 -updatedBy: {"kind":"agent","agent_id":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} -updatedAt: 1786014830849 +version: 6 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786016963418 --- diff --git a/.ideai/tickets/151/issue.md b/.ideai/tickets/151/issue.md index f7de40a..9151c70 100644 --- a/.ideai/tickets/151/issue.md +++ b/.ideai/tickets/151/issue.md @@ -2,16 +2,16 @@ id: "c9aaa2e5-b17c-42ec-aa4c-2802a2863a1d" number: 151 title: "CLI UI: chevauchement des boutons dans la barre supérieure pendant une conversation agent" -status: "closed" +status: "open" priority: "medium" sprint: null links: [] -agentRefs: [] +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":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1785945386695 -updatedAt: 1786014830849 -version: 5 +updatedAt: 1786016963418 +version: 6 --- -Pendant une conversation avec un agent, les contrôles en haut à droite de la cellule CLI se chevauchent. La capture montre le bouton rouge Cancel qui overlap les switches de rendu/skin CLI. Attendu: layout stable sans overlap pendant l'état busy/conversation. Surface concernée: frontend UI cellule/toolbar CLI. \ No newline at end of file +Régression/résidu constaté sur une AppImage récente avec la custom CLI: pendant une conversation agent active, le bouton rouge Cancel en haut à droite de la cellule reste sous/derrière les autres contrôles de la toolbar (renderer/skin), au lieu d'être au premier plan et cliquable sans ambiguïté. Attendu: hiérarchie visuelle stable et z-order correct en état busy, sans recouvrement du bouton Cancel. \ No newline at end of file diff --git a/.ideai/tickets/157/carnet.md b/.ideai/tickets/157/carnet.md index 9a7f496..6b1587d 100644 --- a/.ideai/tickets/157/carnet.md +++ b/.ideai/tickets/157/carnet.md @@ -1,8 +1,8 @@ --- issueRef: "#157" -version: 9 -updatedBy: {"kind":"agent","agent_id":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} -updatedAt: 1786014830849 +version: 10 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786016963554 --- # Objectif diff --git a/.ideai/tickets/157/issue.md b/.ideai/tickets/157/issue.md index 3f19840..0f90041 100644 --- a/.ideai/tickets/157/issue.md +++ b/.ideai/tickets/157/issue.md @@ -2,16 +2,16 @@ id: "d49aaae5-0d03-43fe-a51c-2ab5e921045c" number: 157 title: "CLI custom: surface all available agent progress, MCP activity, and inter-agent delegation flow" -status: "closed" +status: "open" priority: "high" sprint: null links: [{"target":"#156","kind":"dependsOn"}] 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":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1785965383914 -updatedAt: 1786014830849 -version: 9 +updatedAt: 1786016963554 +version: 10 --- -User-facing feature for the custom CLI/chat surface: expose as much intermediate agent progress as available, distinguish MCP/tool activity visually from regular progress, show which agent is talking to which agent, and display a short excerpt of delegated requests. Must work across as many AI profiles as possible and degrade gracefully when a profile exposes only limited intermediate events. \ No newline at end of file +Suivi UX sur la custom CLI après livraison du flux Progress/MCP/inter-agent: l'affichage des messages de Progress est jugé correct, mais l'animation du rond/spinner affichée à côté du libellé Progress doit disparaître une fois l'événement terminé. Attendu: à la transition vers l'état terminal (done), la ligne Progress conserve éventuellement son contenu statique utile, mais n'affiche plus d'animation de chargement. \ No newline at end of file diff --git a/.ideai/tickets/161/carnet.md b/.ideai/tickets/161/carnet.md new file mode 100644 index 0000000..35582a3 --- /dev/null +++ b/.ideai/tickets/161/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#161" +version: 8 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786018356404 +--- diff --git a/.ideai/tickets/161/issue.md b/.ideai/tickets/161/issue.md new file mode 100644 index 0000000..4ac9fb9 --- /dev/null +++ b/.ideai/tickets/161/issue.md @@ -0,0 +1,17 @@ +--- +id: "0174c085-eb08-4294-bebc-34cb49885af3" +number: 161 +title: "Epic: commandes IdeA slash dans la custom CLI" +status: "open" +priority: "medium" +sprint: null +links: [{"target":"#162","kind":"relatesTo"},{"target":"#163","kind":"relatesTo"},{"target":"#164","kind":"relatesTo"},{"target":"#165","kind":"relatesTo"}] +agentRefs: [] +attachments: [] +createdBy: {"kind":"user"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786016953573 +updatedAt: 1786018356404 +version: 8 +--- +Ticket parapluie pour introduire des commandes `/` dans la custom CLI IdeA, avec menu contextuel/autocompletion au début du message, commandes natives IdeA comme `/clean`, et une architecture suffisamment souple pour accueillir plus tard des commandes exposées par le SDK/plugins. Décisions produit ajoutées: `/clean` est la commande de nettoyage de la conversation courante ; ne pas introduire `/reset` tant qu'elle n'a pas une utilité produit distincte. Les commandes SDK/plugins devront exposer une callback libre fournie par le plugin. La commande `/profile` doit imposer une confirmation explicite avant tout reset forcé de session. Le besoin mélange trois axes distincts qui sont désormais séparés en sous-tickets: fondation du systeme de commandes, UX frontend de la palette slash, flow spécifique `/profile` avec reset de session, puis extensibilité SDK/plugins. Ce ticket sert au suivi produit global et ne doit plus porter l'implémentation détaillée d'un seul lot. \ No newline at end of file diff --git a/.ideai/tickets/162/carnet.md b/.ideai/tickets/162/carnet.md new file mode 100644 index 0000000..c53d9bf --- /dev/null +++ b/.ideai/tickets/162/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#162" +version: 2 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786018356424 +--- diff --git a/.ideai/tickets/162/issue.md b/.ideai/tickets/162/issue.md new file mode 100644 index 0000000..5b9bcd9 --- /dev/null +++ b/.ideai/tickets/162/issue.md @@ -0,0 +1,17 @@ +--- +id: "987721b8-e70a-46b5-b5db-af8537e5d064" +number: 162 +title: "Slash commands foundation for custom CLI" +status: "open" +priority: "high" +sprint: null +links: [] +agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786017501892 +updatedAt: 1786018356424 +version: 2 +--- +Foundation ticket for the custom CLI slash-command system. Build a command registry/execution model for agent-local IdeA commands exposed to the custom CLI, starting with native commands such as `/help` and `/clean`. Product decision: `/clean` clears the current conversation/session view; do not introduce a separate `/reset` command unless it gains a clearly distinct product meaning. Must provide a stable contract to list commands, filter them by prefix, expose metadata needed by UI (name, short description, availability, whether confirmation is required), and execute a selected command. Goal: frontend should consume one unified command source, regardless of whether commands are native IdeA commands or future plugin-provided commands. \ No newline at end of file diff --git a/.ideai/tickets/163/carnet.md b/.ideai/tickets/163/carnet.md new file mode 100644 index 0000000..f5dce3d --- /dev/null +++ b/.ideai/tickets/163/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#163" +version: 2 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786017513680 +--- diff --git a/.ideai/tickets/163/issue.md b/.ideai/tickets/163/issue.md new file mode 100644 index 0000000..ed15e7a --- /dev/null +++ b/.ideai/tickets/163/issue.md @@ -0,0 +1,17 @@ +--- +id: "a3fb98de-29fd-4af7-9eff-cdf952f619d0" +number: 163 +title: "Custom CLI: slash-command autocomplete and contextual menu" +status: "open" +priority: "high" +sprint: null +links: [{"target":"#162","kind":"dependsOn"}] +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: 1786017501921 +updatedAt: 1786017513680 +version: 2 +--- +Frontend ticket for the custom CLI slash-command UX. When the user types `/` at the start of the composer, show a contextual menu with a small set of matching command suggestions and short descriptions; refine suggestions as the user types (`/c` => commands starting with `c`). Support keyboard navigation and selection. This ticket is only about the custom CLI UX and consumption of the unified command contract; it must not hardcode a closed list of commands in the UI. \ No newline at end of file diff --git a/.ideai/tickets/164/carnet.md b/.ideai/tickets/164/carnet.md new file mode 100644 index 0000000..9bb3de7 --- /dev/null +++ b/.ideai/tickets/164/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#164" +version: 4 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786018356449 +--- diff --git a/.ideai/tickets/164/issue.md b/.ideai/tickets/164/issue.md new file mode 100644 index 0000000..3c4417f --- /dev/null +++ b/.ideai/tickets/164/issue.md @@ -0,0 +1,17 @@ +--- +id: "f0965087-3799-4be0-9968-0fc43eb54129" +number: 164 +title: "Custom CLI: `/profile` command and profile-switch confirmation flow" +status: "open" +priority: "medium" +sprint: null +links: [{"target":"#162","kind":"dependsOn"},{"target":"#163","kind":"dependsOn"}] +agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"},{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786017501936 +updatedAt: 1786018356449 +version: 4 +--- +Implement `/profile` as a first-class custom CLI command that opens a profile-selection popup from the composer flow, informs the user that validating the choice will reset the current session, and requires an explicit user confirmation before performing that forced reset/profile switch. Scope includes the UX wording and confirmation/reset behavior tied to the command. Keep this separate from the generic slash-command palette so the session-reset semantics are explicit and testable. \ No newline at end of file diff --git a/.ideai/tickets/165/carnet.md b/.ideai/tickets/165/carnet.md new file mode 100644 index 0000000..e939a6d --- /dev/null +++ b/.ideai/tickets/165/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#165" +version: 3 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786018356463 +--- diff --git a/.ideai/tickets/165/issue.md b/.ideai/tickets/165/issue.md new file mode 100644 index 0000000..745811d --- /dev/null +++ b/.ideai/tickets/165/issue.md @@ -0,0 +1,17 @@ +--- +id: "2b41b7d3-b362-4e8d-8c56-c92b429da1f7" +number: 165 +title: "SDK/plugins: allow plugins to contribute custom CLI slash commands" +status: "open" +priority: "medium" +sprint: null +links: [{"target":"#162","kind":"dependsOn"}] +agentRefs: [{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"},{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1786017501962 +updatedAt: 1786018356463 +version: 3 +--- +Extend the SDK/plugin model so a plugin can contribute commands to the agent custom CLI slash-command system. Product decision: a plugin-contributed command is backed by a callback/function provided by the plugin, so the plugin can decide what the command actually does. Plugin commands must flow through the same unified registry/contract consumed by the frontend, with metadata sufficient for autocomplete and command execution. This ticket is about the extension seam and registration model, not the core native commands or the initial frontend menu. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index 60939aa..4dff0f6 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 161 + "nextNumber": 166 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 4dd85bf..a14a24c 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -1981,15 +1981,17 @@ "issueRef": "#151", "path": "151", "title": "CLI UI: chevauchement des boutons dans la barre supérieure pendant une conversation agent", - "status": "closed", + "status": "open", "priority": "medium", "sprint": null, - "assignedAgentIds": [], + "assignedAgentIds": [ + "8f7da528-58df-4315-97e9-0562230ecc19" + ], "createdBy": { "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786014830849 + "updatedAt": 1786016963418 }, { "issueRef": "#152", @@ -2053,7 +2055,7 @@ "issueRef": "#157", "path": "157", "title": "CLI custom: surface all available agent progress, MCP activity, and inter-agent delegation flow", - "status": "closed", + "status": "open", "priority": "high", "sprint": null, "assignedAgentIds": [ @@ -2063,7 +2065,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786014830849 + "updatedAt": 1786016963554 }, { "issueRef": "#158", @@ -2108,6 +2110,85 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1786014830849 + }, + { + "issueRef": "#161", + "path": "161", + "title": "Epic: commandes IdeA slash dans la custom CLI", + "status": "open", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "user" + }, + "updatedAt": 1786018356404 + }, + { + "issueRef": "#162", + "path": "162", + "title": "Slash commands foundation for custom CLI", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "fe887179-933f-47d4-960f-c3b06827f86c" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786018356424 + }, + { + "issueRef": "#163", + "path": "163", + "title": "Custom CLI: slash-command autocomplete and contextual menu", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "8f7da528-58df-4315-97e9-0562230ecc19" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786017513680 + }, + { + "issueRef": "#164", + "path": "164", + "title": "Custom CLI: `/profile` command and profile-switch confirmation flow", + "status": "open", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [ + "8f7da528-58df-4315-97e9-0562230ecc19", + "fe887179-933f-47d4-960f-c3b06827f86c" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786018356449 + }, + { + "issueRef": "#165", + "path": "165", + "title": "SDK/plugins: allow plugins to contribute custom CLI slash commands", + "status": "open", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [ + "b4730d7f-c54d-4736-8a04-c6203aa2fd49", + "fe887179-933f-47d4-960f-c3b06827f86c" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786018356463 } ] } \ No newline at end of file