feat(tickets): ajoute les pièces jointes sur tickets (#108)
Stockage flat côté ticket + métadonnées d'attachments, lecture exposée côté backend/MCP, et UI minimale de liste/ajout dans TicketDetail. Traverse le domaine (Issue, ports), l'application (usecases + assistant de ticket), les adaptateurs infra/MCP (issues store, orchestrateur), les DTO backend/web- server/app-tauri, et le frontend (domain/ports/adapters/hooks/UI). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -68,6 +68,7 @@ import type {
|
||||
TerminalSession,
|
||||
Ticket,
|
||||
TicketBulkResult,
|
||||
TicketAttachmentContent,
|
||||
TicketChat,
|
||||
TicketCarnet,
|
||||
TicketLinkKind,
|
||||
@ -96,6 +97,12 @@ export interface SystemGateway {
|
||||
* cancelled. Same sanctioned-picker rule as {@link pickFolder}.
|
||||
*/
|
||||
pickArchiveFile(): Promise<string | null>;
|
||||
/**
|
||||
* Opens a native file picker for one local file and returns its path, or
|
||||
* `null` when cancelled. Used for ticket attachments; no file bytes cross the
|
||||
* frontend boundary.
|
||||
*/
|
||||
pickFile(): Promise<string | null>;
|
||||
/**
|
||||
* Subscribes to the app-exit work-in-progress guard (ticket #83): fired when
|
||||
* closing the main window is intercepted because it would interrupt active
|
||||
@ -1096,6 +1103,27 @@ export interface TicketGateway {
|
||||
carnet: string,
|
||||
expectedVersion: number,
|
||||
): Promise<Ticket>;
|
||||
/** Adds a local file path as a ticket attachment and returns the updated ticket. */
|
||||
addAttachment(
|
||||
projectId: string,
|
||||
ref: string,
|
||||
path: string,
|
||||
expectedVersion: number,
|
||||
mime?: string | null,
|
||||
): Promise<Ticket>;
|
||||
/** Reads raw attachment content as base64. Not used by the minimal v1 UI. */
|
||||
readAttachment(
|
||||
projectId: string,
|
||||
ref: string,
|
||||
attachmentId: string,
|
||||
): Promise<TicketAttachmentContent>;
|
||||
/** Marks an attachment as summarized in the ticket carnet. */
|
||||
markAttachmentSummarized(
|
||||
projectId: string,
|
||||
ref: string,
|
||||
attachmentId: string,
|
||||
expectedVersion: number,
|
||||
): Promise<Ticket>;
|
||||
/** Links this ticket to another `#id` with the given relationship kind. */
|
||||
link(
|
||||
projectId: string,
|
||||
|
||||
Reference in New Issue
Block a user