# Historique 0.3.5-alpha.7.fix.2 ## Statut `0.3.5-alpha.7.fix.2` a été validée par l'utilisateur le 2026-09-22. La tranche navigateur WebTransport est fermée : compilation native/WASM, build Vite/TypeScript, génération `wasm-bindgen`, chargement WASM, connexion WebTransport browser -> Rust avec pin SHA-256 exact, round-trip et fermeture propre ont abouti. Une première tentative interactive du navigateur a atteint la deadline de connexion de 5 s. Aucun changement de code n'a été appliqué pour ce symptôme isolé ; une tentative suivante contre le même peer local a été acceptée et le smoke s'est terminé par `PASS`. Aucun défaut reproductible de transport n'a donc été établi par cette première tentative. ## Gates statiques et compilation Les commandes utilisateur ont terminé proprement : ```text cargo fmt --all cargo fmt --all -- --check python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android Web deltas history python3 scripts/audit_distribution_layout.py cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings cargo build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown ``` La sortie confirme : ```text General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) games.sasedev workspace audit: clean Markdown table audit: clean (5 table(s), 300 file(s)) Distribution layout audit: clean (58 required path(s), 8 forbidden path(s) absent) cargo check --workspace: clean cargo clippy --workspace --all-targets --all-features -- -D warnings: clean browser smoke WASM library build: clean ``` ## Build frontend La commande : ```bash (cd Web/game-realtime-webtransport-browser-smoke && npm install && npm run build) ``` termine proprement. `wasm-bindgen` lit désormais le bon artefact externe, TypeScript résout les déclarations générées et Vite produit le bundle sous le build root externe : ```text vite v8.3.0 building client environment for production... 5 modules transformed main.html *.wasm main-*.js built in 41ms ``` `npm install` signale `0 vulnerabilities` dans cette gate. ## Smoke navigateur réel Le peer natif a été lancé par : ```bash cargo run -p game-realtime-webtransport-browser-smoke ``` Il a bind un endpoint éphémère `https://127.0.0.1:/browser-smoke`, publié son hash SHA-256 exact et l'URL `OPEN=...` du host Vite. Le host a été lancé par : ```bash (cd Web/game-realtime-webtransport-browser-smoke && npm run dev) ``` La page a confirmé le secure context, la présence de WebTransport et le chargement du WASM. Une tentative suivante a été acceptée par le serveur : ```text WebTransport peer accepted peer=127.0.0.1: game-realtime-webtransport-browser-smoke: PASS browser WebTransport smoke passed ``` Le smoke navigateur WebTransport réel est donc validé sans fallback WebSocket. ## Graphe cible Les graphes fournis confirment que `game-realtime-webtransport-browser-smoke` consomme `game-realtime-webtransport-lib` et que `gloo-timers` reste sur le chemin WASM. La séparation native/WASM établie en `alpha.6` reste intacte. ## Conséquence `alpha.8` peut maintenant exercer séparément la composition WebTransport-first et le fallback WebSocket. Le smoke navigateur validé reste une preuve WebTransport pure et ne doit pas recevoir de fallback silencieux.