--- issueRef: "#208" version: 9 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedAt: 1786777635633 --- 2026-08-15 Main - Demande utilisateur: 1) switch du TUI naïf vers la CLI custom dans le web, 2) layout desktop web identique au système de layout AppImage. - UX: desktop = segmented control dans l’en-tête de cellule/session; mobile = action menu + rappel du mode; layout AppImage desktop uniquement, mobile préservé sans grille multi-cellules. - Architect: converger le desktop web vers ViewPlacements + LayoutTabs + LayoutGrid; ne pas promettre detached sur le web; réutiliser la logique de mode de cellule desktop; risque de divergence si on garde WebWorkspace actuel comme base unique. - Point d’attention initial: la bascule web vers CLI custom nécessitait le chat structuré via l’adapter HTTP frontend. - DevFrontend annonce avoir implémenté sur feature/208-web-appimage-layout-tui-switch: - desktop/mobile shell séparés dans WebWorkspace; - desktop web avec LayoutTabs + LayoutGrid et panneaux closed/floating/docked; - mobile web conservé avec shell simplifié; - structured chat web branché dans streamGateways/wsLiveClient/frames pour CLI custom. - Vérifs DevFrontend initiales annoncées: `npm run typecheck` OK; `npm test -- WebMobile WebWorkspaceLive WebAgentCell LayoutGrid.chat http/wsLiveClient http/agentGateway` OK (49 tests). - QA invalide ensuite le ticket: timeout réel sur `src/adapters/http/agentGateway.test.ts` ; `sendAgentChat()` attend un ack WS sur `chat.send`, mais le client WS traite `chat.output` comme flux spontané et ne résout pas `replyTo`. - DevFrontend corrige `frontend/src/adapters/http/wsLiveClient.ts`: les frames `chat.output` portant `replyTo` sont désormais corrélées au waiter `send()` au lieu d’être traitées comme flux spontané. - Vérifs DevFrontend après fix: - `npm run typecheck` OK - `npm test -- WebDesktopWorkspace agentGateway wsLiveClient.chat` OK (3 fichiers / 12 tests) - `npm test -- WebMobile WebWorkspaceLive WebAgentCell LayoutGrid.chat http/wsLiveClient http/agentGateway` OK (8 fichiers / 52 tests) - Nouvelle passe QA demandée avant clôture.