# L3 — Terminaux & PTY (local)

**Binôme :** `dev-terminals` / `test-terminals`
**Zones :** `infrastructure/pty`, `application/terminal`, `frontend/features/terminals`
**Dépendances amont :** L0, L1.

## Objectif
Terminaux fonctionnels en local : ouverture PTY, I/O, resize, fermeture, rendu xterm.js, flux via Tauri Channel.

## Périmètre (DEV)
- Adapter `PortablePtyAdapter` (portable-pty) implémentant `PtyPort`.
- Use cases : `OpenTerminal`, `WriteToTerminal`, `ResizeTerminal`, `CloseTerminal`.
- Front : wrapper xterm.js, abonnement au flux d'octets (Channel), envoi des frappes/resize.

## Périmètre (TEST)
- Use cases avec `PtyPort` mocké (spawn/write/resize/kill appelés correctement).
- Intégration : `PortablePtyAdapter` lance `echo`/`printf` et reçoit la sortie attendue.
- Front : wrapper xterm avec gateway mock (frappe → write, octets reçus → rendu).

## Definition of Done
- `cargo test` (pty/terminal) + `vitest` verts ; un terminal réel utilisable en dev manuel sur Linux.

## Spikes (cf. ARCHITECTURE §13)
- ConPTY Windows (resize/signaux/exit codes).
- Backpressure/coalescing du flux haute fréquence via Channel.
