Files
IdeA/.ideai/memory/ticket13-f1-http-ws-adapter-delivered.md
Blomios 8e481aed69 chore(ideai): état d'orchestration du sprint #13 (transport HTTP/WS + surface web)
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>
2026-07-16 10:32:39 +02:00

2.1 KiB

name, description, metadata
name description metadata
ticket13-f1-http-ws-adapter-delivered Le 3e jeu d'adapters frontend (HTTP request/response + squelette WebSocket) du chantier client/serveur
type
reference

Ticket #13 lot F1 livré sur feature/ticket13-server-client-mode. Nouveau dossier frontend/src/adapters/http/ = 3e implémentation des gateways, à côté de Tauri (desktop) et mock.

Fichiers : httpInvoker.ts (POST /api/invoke {command,args}, ErrorDto→GatewayError, fetch injectable), frames.ts (contrat frames WS B0 + base64), wsLiveClient.ts (squelette WS multiplexé : corrélation id↔replyTo, routage terminal.output par session, dispatch event.domain), requestResponseGateways.ts (13 gateways R/R, commandes/enveloppes IDENTIQUES aux adapters Tauri), streamGateways.ts (HttpSystem/Agent/Ticket/Terminal + makeWsTerminalHandle detach≠close), unsupported.ts (Web{Window,FocusedProject,Remote}Gateway, code UNSUPPORTED_ON_WEB), index.ts (createHttpWsGateways(config?), endpoints via window.location). Tests : httpInvoker.test.ts, wsLiveClient.test.ts.

Seam DI : app/di.tsxresolveTransport() 3-way (mock > http > tauri), web sélectionné par VITE_TRANSPORT="http". Tauri reste défaut (desktop inchangé).

Décision de contrat clé (à confirmer DevBackend) : transport RPC générique POST /api/invoke {command,args} choisi PLUTÔT que l'arbre REST du brouillon B0 — préserve 1:1 tous les DTO Tauri, zéro divergence, bascule REST future ne touche que httpInvoker.ts. Autres points à trancher : placement token WS (pas en URL ; navigateur ne peut pas fixer d'en-tête upgrade), forme réponse terminal.open/agent.launch (ack terminal.attached avec session.sessionId), projectId absent du port openTerminal.

Reporté F3/B5/B6 (TODO(F3/B5)) : round-trip xterm réel, reconnexion/backpressure, replay seq/gap, sink chat par-session pour sendTicketChat, agents structurés. Pas de serveur avant B3/B4.

État : build vert (tsc+vite), garde no-direct-invoke verte, 77 fichiers/724 tests verts. Voir ticket13-f0-frontend-transport-inventory.