3.5 KiB
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 :
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 :
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 :
(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 :
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 :
cargo run -p game-realtime-webtransport-browser-smoke
Il a bind un endpoint éphémère https://127.0.0.1:<port>/browser-smoke, publié son hash SHA-256 exact et l'URL OPEN=... du host Vite.
Le host a été lancé par :
(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 :
WebTransport peer accepted peer=127.0.0.1:<ephemeral-port>
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.