Versionne l'état runtime IdeA produit pendant le sprint #13 : store de tickets (dont les nouveaux #55 à #67), compteur et index, notes de mémoire projet des lots F0 à F5, et journal des tâches de fond. Séparé du code applicatif conformément à la convention du dépôt (cf.ad1f225,a244f32) : métadonnée d'orchestration last-writer-wins, sans impact sur le build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.9 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| ticket13-f0-frontend-transport-inventory | Résultat de l'inventaire B0/F0 frontend du chantier client/serveur |
|
Inventaire B0/F0 (ticket #13 server/client mode), côté frontend TS/React. Doc : docs/ticket13-f0-frontend-transport-inventory.md.
Constat clé : la frontière « gateways TS transport-neutres » du plan est DÉJÀ réalisée et testée.
src/ports/index.ts= 21 gateways sans Tauri ; toute la couchefeatures/+app/en dépend via DI (useGateways()).src/adapters/*= seul lieu important@tauri-apps/api.- Garde L1
src/app/no-direct-invoke.test.tscasse la CI si un fichier horsadaptersimporte Tauri / appelleinvoke(. src/app/di.tsxresolveGateways()bifurque déjà Tauri vs mock → F1 = ajoutercreateHttpWsGateways()(3ᵉ impl).
Donc F1 = écrire un 2ᵉ jeu d'adapters derrière des ports inchangés, aucun composant métier à réécrire.
Flux Channel (→ WebSocket) : (1) terminal.ts PTY, (2) agent.ts PTY agent (réutilise makeTerminalHandle), (3) ticket.ts sendTicketChat Channel<ReplyChunk>. Tous modélisés côté port par callback onData/onChunk. Le contrat PTY WS du carnet mappe 1-pour-1 sur TerminalHandle (write/resize/detach/close, detach≠close, scrollback au reattach) → port inchangé pour F3. TerminalView.tsx ne connaît que le port.
Event portable : system.onDomainEvent("domain://event") (bus domaine) → WS serveur→client.
Desktop-only à cadrer : system.pickFolder (dossier = machine serveur ≠ client web → file-picker serveur), window.ts (WebviewWindow OS) et focusedProject.ts (multi-fenêtres OS) probablement hors V1 web. uiPreferences (localStorage) marche tel quel.
Convention DTO à préserver côté adapter HTTP : commandes snake_case, payloads camelCase souvent enveloppés { request: {...} }.