Agents for developpement added + frontend add + backend added. Git viewer created + agent and template creator + layout and project creator
2.3 KiB
2.3 KiB
L1 — Composition root & IPC
Binôme : dev-ipc-bridge / test-ipc-bridge
Zones : crates/app-tauri, frontend/ports, frontend/adapters
Dépendances amont : L0 (ports figés).
Statut : suivant (enchaîné après L0).
Objectif
Mettre en place le squelette Tauri qui tourne : composition root (DI), pont IPC bidirectionnel, et la couche ports/adapters du frontend (avec mocks) — pour que le front soit développable sans backend dès les lots suivants.
Périmètre (DEV)
Backend app-tauri (driving adapter + composition root)
- Composition root : instancier les adapters concrets (au départ :
LocalFileSystem,TokioBroadcastEventBus,SystemClock,UuidGenerator) et les injecter dans les use cases viatauri::State(Arc<dyn Port>). - Registre des
#[tauri::command](squelette, mapping DTO ↔ use case) etErrorDTO. TauriEventRelay: souscrit l'EventBusdomaine → relaie en events/Channels Tauri.- Bridge PTY ↔ Tauri Channel (
tauri::ipc::Channel) : infrastructure générique de flux d'octets par session (sera consommée par L3). - App Tauri v2 minimale qui démarre (fenêtre vide).
Frontend (hexagonal côté UI)
frontend/ports: gateways TS (AgentGateway,TerminalGateway,ProjectGateway,LayoutGateway,GitGateway,RemoteGateway).frontend/adapters: impl via@tauri-apps/api(invoke/listen/Channel).frontend/adapters/mock: impl mock de chaque gateway.frontend/app: bootstrap React + Vite, provider de DI des adapters (réel vs mock).
Périmètre (TEST)
- Backend : mapping commands ↔ use cases (un use case in-memory simple validant le wiring).
- Relais
EventBus→ events Tauri (unDomainEventpublié arrive bien côté relais). - Front : chaque gateway mock satisfait l'interface du port (typecheck + tests Vitest).
- Provider de DI : bascule réel/mock fonctionnelle.
Definition of Done
- L'app Tauri démarre (fenêtre vide) sur Linux.
cargo test -p app-taurietvitestverts.- Front compile et tourne en mode mock sans backend.
- Aucun
invoke()direct dans les composants (uniquement via gateways).
Points d'attention / spikes
- Forme du bridge PTY↔Channel (backpressure) — préparé ici, stressé en L3.
- Convention de (dé)sérialisation DTO Rust ↔ TS (serde camelCase ?). À figer ici.