Files
games/history/0.3.5/alpha.7.fix.2.md
2026-09-22 07:35:17 +02:00

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.