32c670a2b3e0eeaa2dd83aad993051109dc48d6c
Rend le client web utilisable sur téléphone : `100dvh` + `viewport-fit=cover` et safe-area insets (la barre d'URL rétractable masquait le bas), rangées qui s'empilent sous 360px, et surtout une `TerminalKeyBar` (Esc/Tab/Ctrl-C/Ctrl-D/ flèches) qui rend le terminal pilotable au doigt — le clavier virtuel n'offre aucune de ces touches, on pouvait donc parler à un agent CLI mais pas l'interrompre. Surface frontend-pure : aucun DTO, use case ni `LayoutTree` touché. Le chemin desktop est inchangé (`LayoutGrid` ne passe pas `onReady`, `onReady` est optionnel). Vert avant merge, ré-exécuté par Git sur la base rebasée (les chiffres du carnet ne valaient que sur `506d589`) : `npm run typecheck` exit 0 · `npx vitest run` 85 files / 774 passed, 0 échec · `VITE_TRANSPORT=http npx vite build` exit 0. RÉSERVE — le lot 3 est livré mais NON PROUVÉ en conditions réelles. La validation live utilisateur du 2026-07-16 (téléphone réel, via le reverse proxy) est PARTIELLE. Couvert : le terminal s'ouvre, ce qui implique appairage + workspace traversés, donc les lots 1 et 2 (`100dvh`, `60dvh`) validés en réel. NON couvert : la `TerminalKeyBar` n'a pas été utilisée, et l'invariant de focus au tap (« chaque tap annule le déplacement de focus puis refocalise xterm », sans lequel le clavier virtuel se referme à chaque touche) n'a pas été observé sur navigateur mobile réel. C'est le cœur du ticket. Le test manquant tient en 30 s : lancer une commande longue, taper Ctrl-C dans la barre, vérifier que la commande s'interrompt ET que le clavier reste ouvert. Merge autorisé par Main sur ce constat : risque résiduel borné (frontend-pur, desktop non atteint, non-régression prouvée). Si le test Ctrl-C échoue, il ouvre un bug, il ne réverte pas ce merge. Jusque-là, « mergé » ne veut pas dire « validé ». Trou de couverture connu et assumé : jsdom n'évalue pas les media queries, les tests sont structurels et ne prouvent ni les breakpoints, ni `dvh`, ni les safe areas, ni le clavier virtuel. La décision d'ajouter un vrai navigateur (Playwright) appartient à #63 « Système de test de l'UI ». Rebase préalable sur `develop@fe0e53e` (#65 avait fait avancer la base) : sans conflit, aucun recouvrement de fichiers, arbre `frontend/` identique bit pour bit à l'original `6ed0087`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The file is empty.
Description
Languages
Rust
80.5%
TypeScript
19.4%