b7d38f1d306c434b8e0cfe2acfef6a550a8be363
Ouvre le point d'intégration du serveur embarqué desktop : `run_embedded_with_core` reçoit un `Arc<BackendCore>` déjà construit, pour que l'adapter HTTP partage le composition root de l'adapter Tauri au lieu d'en bâtir un second dans le même processus. `ServerState` porte désormais `Arc<BackendCore>` ; `run_embedded` est conservé en compat et délègue en construisant son propre core. Corrige au passage un vrai bug produit, découvert en rejouant les tests hors sandbox : `run_embedded` ne réconciliait pas le port effectif avec la config. Sur un bind éphémère (`127.0.0.1:0`), l'état du serveur gardait `listen` à port 0, donc `origin_allowed` comparait l'Origin entrante à `http://127.0.0.1:0` et le serveur embarqué rejetait **toutes** les requêtes API en 403. La config reçoit maintenant `local_addr` lu sur le listener **avant** la construction du state. Comble le trou signalé au merge de #65 : `run_embedded().stop()` est enfin couvert. ATTENTION — le premier « 57 passed » de ce lot était un FAUX VERT. Le sandbox d'exécution interdit `TcpListener::bind` ; les tests sortaient en silence sur EPERM, dont précisément le test `stop()`. Les replis EPERM sont supprimés : un bind refusé fait désormais échouer le test au lieu de le peindre en vert. QA ré-exécutée par Git HORS SANDBOX avant merge (sinon on reproduit le faux vert) : `cargo test -p web-server` 57 passed, 0 échec, avec `run_embedded_stop_shuts_down_accept_loop` et `run_embedded_with_core_uses_injected_core_for_http_invokes` réellement exécutés sur le vrai chemin réseau. `-p backend` 41 · `-p app-tauri` 35, 0 échec. DETTE CONNUE, tracée en #72 B0 : le chemin CLI standalone `run_server` garde la même hypothèse fausse — il reçoit un `ServerState` construit AVANT le bind, donc `idea-serve --listen 127.0.0.1:0` reste cassé à l'identique. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The file is empty.
Description
Languages
Rust
80.5%
TypeScript
19.4%