Files
IdeA/.ideai/memory/web-client-is-single-column-no-desktop-shell.md
Blomios 5ee25d1ef6 chore(ideai): état d'orchestration du sprint serveur headless (#65, #68-#70)
État durable de `.ideai/` accumulé pendant le chantier `idea-serve`, séparé du
code applicatif conformément aux précédents `8e481ae` / `ad1f225`.

- Tickets : #13 clôturé (server/client mode livré), #65 passé en QA avec son
  carnet de chantier complet (arbitrages Architect sur le propriétaire canonique
  des DTO, structure livrée, vérif QA, incident de topologie et sa leçon).
  #64/#66/#67 rattachés au sprint. Nouveaux tickets #68 (activer le serveur
  depuis le desktop, dépend de #65), #69 (adaptabilité client téléphone, en QA)
  et #70 (gestion des modèles locaux llama.cpp).
- Mémoire : note `web-client-is-single-column-no-desktop-shell` — le client web
  n'a pas de shell desktop, à lire avant tout cadrage responsive sur cette
  surface.
- Journal des tâches de fond : complétions enregistrées.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 15:02:14 +02:00

2.0 KiB

name, description, metadata
name description metadata
web-client-is-single-column-no-desktop-shell memory note web-client-is-single-column-no-desktop-shell
type
project

Le client web n'a pas de shell desktop (ni docks, ni layout grid)

Constat établi en livrant le ticket #69 (adaptibilité téléphone), sur develop @ 506d589.

Le fait

Le client web livré par #13 (VITE_TRANSPORT=http) n'a jamais eu de docks gauche/droite, de fenêtres flottantes, de LayoutTree, de tabs projet, de menus ni de toasts. main.tsx route isWeb vers WebApp, qui est une surface autonome :

  • WebAppPairingScreen ou WebWorkspace (rien d'autre) ;
  • WebWorkspace → une colonne verticale unique (flex flex-col overflow-y-auto) ;
  • WebAgentCellTerminalView.

Les seuls imports @/features/* de tout features/web/ sont terminals et workstate/useProjectWorkState. Le shell desktop (App, layout, docks) n'est atteignable que par la branche non-web de main.tsx.

Pourquoi ça compte

Le cadrage de #69 prévoyait un lot « remplacer les docks gauche/droite/floating par une pile verticale, drawer ou bottom sheet ». Ce lot était sans objet : il n'y a pas de dock à remplacer, et l'arbitrage produit « bottom sheet vs drawer » ne se pose pas sur cette surface. Le vrai travail téléphone était ailleurs (terminal xterm pilotable au doigt, dvh, safe-area, rangées qui débordent à 360px).

Avant de cadrer un ticket « responsive / mobile » sur le client web, partir de features/web/, pas du shell desktop. Les deux surfaces ne partagent que TerminalView et les hooks transport-neutres.

Garde en place

frontend/src/features/web/WebMobile.test.tsx épingle la frontière : le client web ne doit monter aucun layout-grid / layout-grid-container / layout-split / layout-tabs. Si un jour on veut du desktop-shell dans le web, ce test tombe — et c'est le signal qu'il faut re-cadrer, pas le supprimer.

Voir aussi ui-rework-sprint-scoping-contracts.