94 lines
3.5 KiB
Markdown
94 lines
3.5 KiB
Markdown
<!-- file: history/0.3.5/alpha.7.fix.2.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# 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:<port>/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:<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.
|