chore(tickets): rouverture #151 #155 + création #167 — sync miroir tickets

This commit is contained in:
2026-08-06 18:50:52 +02:00
parent e148d3cc5e
commit 3d4ea6859e
8 changed files with 80 additions and 103 deletions

View File

@ -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.

View File

@ -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 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.
Régression toujours psente 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.

View File

@ -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.
## 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.

View File

@ -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.
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.

View File

@ -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.

View File

@ -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.

View File

@ -1,3 +1,3 @@
{
"nextNumber": 167
"nextNumber": 168
}

View File

@ -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
}
]
}