From 3d4ea6859e17f6bc9583b8f531a07e19a2e62d17 Mon Sep 17 00:00:00 2001 From: Blomios Date: Thu, 6 Aug 2026 18:50:52 +0200 Subject: [PATCH] =?UTF-8?q?chore(tickets):=20rouverture=20#151=20#155=20+?= =?UTF-8?q?=20cr=C3=A9ation=20#167=20=E2=80=94=20sync=20miroir=20tickets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ideai/tickets/151/carnet.md | 11 +++-- .ideai/tickets/151/issue.md | 10 ++-- .ideai/tickets/155/carnet.md | 91 +++--------------------------------- .ideai/tickets/155/issue.md | 10 ++-- .ideai/tickets/167/carnet.md | 12 +++++ .ideai/tickets/167/issue.md | 17 +++++++ .ideai/tickets/counter.json | 2 +- .ideai/tickets/index.json | 30 ++++++++++-- 8 files changed, 80 insertions(+), 103 deletions(-) create mode 100644 .ideai/tickets/167/carnet.md create mode 100644 .ideai/tickets/167/issue.md diff --git a/.ideai/tickets/151/carnet.md b/.ideai/tickets/151/carnet.md index 25e3377..5530db2 100644 --- a/.ideai/tickets/151/carnet.md +++ b/.ideai/tickets/151/carnet.md @@ -1,6 +1,11 @@ --- issueRef: "#151" -version: 8 -updatedBy: {"kind":"agent","agent_id":"1ff94b51-3e17-4a39-8543-7715d1ff0f80"} -updatedAt: 1786019394609 +version: 10 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786034876647 --- +## 2026-08-06 — Reopened from user validation on AppImage +- User retested the custom CLI on the current AppImage build. +- Regression still visible: the red `Cancel` button remains visually underneath adjacent toolbar controls while the conversation is busy. +- Scope for this new cycle: identify whether the issue is pure z-index/stacking, container overflow/clipping, or layout ordering in the custom CLI toolbar; fix without regressing idle-state controls. +- Main reopened the ticket and assigned it to DevFrontend for a full Architect -> Git -> DevFrontend -> QA -> Git cycle. diff --git a/.ideai/tickets/151/issue.md b/.ideai/tickets/151/issue.md index 066fdca..365ed7d 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: [{"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: 1786019394609 -version: 8 +updatedAt: 1786034876647 +version: 10 --- -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 +Régression toujours présente sur 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 au lieu de passer au premier plan et de rester cliquable. 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/155/carnet.md b/.ideai/tickets/155/carnet.md index 0740a74..eec4da5 100644 --- a/.ideai/tickets/155/carnet.md +++ b/.ideai/tickets/155/carnet.md @@ -1,88 +1,11 @@ --- issueRef: "#155" -version: 4 +version: 6 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1786007117827 +updatedAt: 1786034876664 --- -## Objective -Allow the user to paste an image directly from the clipboard into the custom agent chat composer (for example after a screenshot) and send it as a proper attachment. - -## Dependency -This ticket depends on #154 because clipboard image paste must reuse the durable agent/chat attachment pipeline rather than reintroduce a local-only workaround. - -## User expectation -The experience should feel close to Codex / Claude Code: -- user focuses the custom chat composer; -- presses paste after taking a screenshot or copying an image; -- sees an attachment chip and, if practical, a lightweight preview; -- sends the message normally; -- the target agent can actually access the attached image in its sandbox. - -## Product constraints -- This is for the custom structured chat UI, not the raw PTY/TUI path. -- The feature must ride on first-class attachments, not on embedding base64 in the prompt or on temporary browser-only objects. -- If the message text is empty but an image attachment is present, product behavior should be explicitly decided: either allow send with attachment-only or require text. Recommendation: allow attachment-only send. - -## UX scope -Recommended MVP: -- intercept paste on the custom chat composer textarea; -- detect image MIME types from clipboard data (`image/png`, `image/jpeg`, potentially `image/webp` if stable); -- materialize the image through the foundation pipeline from #154; -- show an attachment chip with filename, MIME, and size if available; -- show a thumbnail preview when cheap and reliable; -- allow removing the pasted attachment before send; -- send through the same structured attachment contract as picked files. - -Possible follow-ups, not required in this ticket unless cheap: -- multiple pasted images in one operation; -- drag-and-drop onto the composer; -- richer preview lightbox; -- file progress UI for large payloads. - -## Edge cases -- clipboard contains both text and image; -- clipboard contains unsupported binary data; -- paste permission / browser-webview limitations; -- pasted image too large; -- rapid repeated pastes; -- session recovery / resend after structured session NOT_FOUND; -- removing/replacing an attachment before send. - -## Expected technical direction -### Frontend -- handle `onPaste` on the composer; -- inspect clipboard items and prefer image payloads when present; -- route pasted binary data through the attachment creation/import API from #154; -- keep attachment state typed and separate from message text; -- render attachment chip/preview in the composer area; -- keep keyboard behavior intact: Enter sends, Shift+Enter newline. - -### Backend -- no bespoke clipboard-only path; use the generic attachment pipeline from #154; -- if a dedicated import endpoint is needed for raw bytes from the frontend, it should still create the same attachment entity/store record as picked files. - -### Sandbox / runtime -- the agent must read the resulting stored image through the managed attachment location; -- no dependence on the clipboard source continuing to exist after paste. - -## Acceptance criteria -- Pasting an image into the custom chat composer creates a real attachment entry. -- The composer shows the attachment before send and lets the user remove it. -- Sending the turn makes the attachment available to the target agent through the first-class attachment pipeline. -- The feature works for a typical screenshot flow on supported desktop targets. -- Failure states are explicit and recoverable (unsupported clipboard content, too large, import failed). - -## QA expectations -- verify screenshot paste on the supported desktop platform(s); -- verify pasted image is readable by the agent in practice, not just visible in UI; -- verify send with attachment-only if product accepts it; -- verify no regression on plain text send, picked-file attach, and session recovery. - -## Quality bar -No workaround such as: -- adding a fake path string to the prompt without importing the file; -- storing only a browser blob URL; -- embedding the whole image inline in prompt text; -- relying on arbitrary external paths that the sandbox may or may not read. - -This ticket is considered done only if the UX is good and the underlying file-access model is solid. \ No newline at end of file +## 2026-08-06 — Reopened from user validation on AppImage +- User reports that clipboard paste in the custom CLI chat still does not work in practice. +- Suspected historical scope was around #154/#155; this cycle treats #155 as the user-visible clipboard UX bug and keeps the #154 attachment foundation dependency in view. +- Scope for this cycle: verify whether the regression is frontend paste interception, attachment import, backend routing, or AppImage/runtime mismatch; restore end-to-end paste of clipboard image/file into the custom chat composer. +- Main reopened the ticket and assigned frontend/backend ownership before architecture arbitration. diff --git a/.ideai/tickets/155/issue.md b/.ideai/tickets/155/issue.md index e9a5568..752cb5a 100644 --- a/.ideai/tickets/155/issue.md +++ b/.ideai/tickets/155/issue.md @@ -2,16 +2,16 @@ id: "620bc08f-835c-483c-a9f1-59690ebf8ab5" number: 155 title: "Custom chat: paste image from clipboard into composer" -status: "closed" +status: "open" priority: "medium" sprint: null links: [{"target":"#154","kind":"dependsOn"}] -agentRefs: [] +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: 1785964740363 -updatedAt: 1786007117827 -version: 4 +updatedAt: 1786034876664 +version: 6 --- -Allow pasting an image from the clipboard (for example a screenshot) directly into the custom agent chat composer, with preview/attachment behavior comparable to Codex and Claude Code. This ticket should rely on a proper attachment foundation rather than a prompt-only hack. \ No newline at end of file +La custom CLI ne permet toujours pas de coller une image/fichier depuis le presse-papiers dans le chat. Après un test utilisateur du 2026-08-06, le collage attendu ne crée aucun attachment utilisable dans le composer. Il faut rétablir le support de collage clipboard dans le chat custom, sur la base du pipeline d'attachments, puis valider end-to-end sur l'AppImage réelle. \ No newline at end of file diff --git a/.ideai/tickets/167/carnet.md b/.ideai/tickets/167/carnet.md new file mode 100644 index 0000000..0ec82a6 --- /dev/null +++ b/.ideai/tickets/167/carnet.md @@ -0,0 +1,12 @@ +--- +issueRef: "#167" +version: 2 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1786034876685 +--- +## 2026-08-06 — New regression ticket from user test +- User validated that classic progress messages stream correctly in the custom CLI. +- However, provider turn-end events and MCP/tool-call events are rendered only after the final answer is already displayed. +- This is misleading because locally observable IdeA events should appear in temporal order before `Final`, not be appended retroactively afterward. +- Scope for this cycle: determine whether the bug sits in event buffering/order at the backend stream model, transport to frontend, or frontend reconciliation/render ordering; fix and validate on the real AppImage. +- Main created the ticket and will run the full cycle with Architect, Git, implementation, QA, and final AppImage rebuild. diff --git a/.ideai/tickets/167/issue.md b/.ideai/tickets/167/issue.md new file mode 100644 index 0000000..5f60b19 --- /dev/null +++ b/.ideai/tickets/167/issue.md @@ -0,0 +1,17 @@ +--- +id: "90559b5d-eb4d-47e5-b18f-cb2dc0ab5080" +number: 167 +title: "Custom CLI: turn-end and MCP/tool events appear only after Final" +status: "open" +priority: "high" +sprint: null +links: [] +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"} +createdAt: 1786034864702 +updatedAt: 1786034876685 +version: 2 +--- +Régression observée sur la custom CLI (test utilisateur du 2026-08-06): les messages de progress classiques apparaissent bien pendant le tour, mais les événements de fin de tour (`turn.started`/`turn.completed` côté provider) et les appels MCP/outils n'apparaissent qu'après le rendu du Final. Attendu: tout événement IdeA observable localement avant Final doit être projeté au fil de l'eau dans le bon ordre temporel, sans post-affichage trompeur après la réponse finale. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index b5c160f..a63a3d7 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 167 + "nextNumber": 168 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index fe0fcf1..b50da80 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -1981,7 +1981,7 @@ "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": [ @@ -1991,7 +1991,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786019394609 + "updatedAt": 1786034876647 }, { "issueRef": "#152", @@ -2025,15 +2025,18 @@ "issueRef": "#155", "path": "155", "title": "Custom chat: paste image from clipboard into composer", - "status": "closed", + "status": "open", "priority": "medium", "sprint": null, - "assignedAgentIds": [], + "assignedAgentIds": [ + "8f7da528-58df-4315-97e9-0562230ecc19", + "fe887179-933f-47d4-960f-c3b06827f86c" + ], "createdBy": { "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786007117827 + "updatedAt": 1786034876664 }, { "issueRef": "#156", @@ -2205,6 +2208,23 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1786024054225 + }, + { + "issueRef": "#167", + "path": "167", + "title": "Custom CLI: turn-end and MCP/tool events appear only after Final", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "fe887179-933f-47d4-960f-c3b06827f86c", + "8f7da528-58df-4315-97e9-0562230ecc19" + ], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1786034876685 } ] } \ No newline at end of file