102 lines
4.3 KiB
Markdown
102 lines
4.3 KiB
Markdown
<!-- file: history/0.3.5/beta.1.fix.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Historique 0.3.5-beta.1.fix.1
|
|
|
|
## Statut
|
|
|
|
`0.3.5-beta.1.fix.1` a été validée par l'utilisateur le 2026-09-22. Le correctif ferme uniquement la dérive de version du host navigateur découverte pendant la gate large `beta.1`; il ne modifie aucun backend, protocole, fallback, datagram ou scénario de mesure.
|
|
|
|
La validation cumulée `beta.1` + `beta.1.fix.1` confirme le workspace complet, les smokes realtime natifs, la caractérisation release, le chemin navigateur/WASM réel et la cross-compilation Android ARM64/API 21 du backend WebTransport.
|
|
|
|
## Gate large héritée de beta.1
|
|
|
|
La gate `beta.1` a confirmé :
|
|
|
|
```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), 312 file(s))
|
|
Distribution layout audit: clean (66 required path(s), 8 forbidden path(s) absent)
|
|
cargo check --workspace: clean
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
|
|
cargo test --workspace --all-targets --all-features: 77 passed; 0 failed
|
|
```
|
|
|
|
Les smokes runtime natifs ont tous terminé par `PASS` :
|
|
|
|
```text
|
|
game-realtime-websocket-smoke: PASS
|
|
game-realtime-webtransport-smoke: PASS
|
|
game-realtime-webtransport-datagram-smoke: PASS
|
|
game-realtime-transport-fallback-smoke: PASS
|
|
```
|
|
|
|
Le fallback valide WebTransport en priorité, le passage vers WebSocket sur un `Timeout` classifié et la visibilité d'une erreur `InvalidConfiguration` non éligible au fallback.
|
|
|
|
## Mesures beta.1
|
|
|
|
La caractérisation release `game-realtime-transport-measure` a terminé par `PASS` avec :
|
|
|
|
```text
|
|
WebSocket establishment median : 42 us
|
|
WebTransport establishment median : 963 us
|
|
WebSocket RTT median : 19 us
|
|
WebTransport RTT median : 12 us
|
|
WebSocket throughput 128 x 64 KiB : 2933.255 MiB/s
|
|
WebTransport throughput 128 x 64 KiB : 646.338 MiB/s
|
|
WebSocket window 64 x 1 KiB : 1.471 MiB/s
|
|
WebTransport window 64 x 1 KiB : 153.084 MiB/s
|
|
WebTransport datagram : 64/64 reçus, payload 256 octets, client_max=1381, server_max=1381
|
|
```
|
|
|
|
Ces valeurs décrivent uniquement ce run loopback. Elles ne constituent pas un classement général WebSocket/WebTransport et ne sont pas extrapolées à Internet ou au mobile.
|
|
|
|
La conclusion technique reste :
|
|
|
|
```text
|
|
CONCLUSION webtransport=retain scope=second-backend reason=reliable-browser-fallback-datagram-capabilities
|
|
```
|
|
|
|
## WASM et host navigateur
|
|
|
|
`beta.1` puis `beta.1.fix.1` ont confirmé :
|
|
|
|
- check, Clippy `--lib` et build de `game-realtime-webtransport-lib` pour `wasm32-unknown-unknown` ;
|
|
- build de `game-realtime-webtransport-browser-smoke` pour WASM ;
|
|
- génération `wasm-bindgen` ;
|
|
- TypeScript/Vite propre ;
|
|
- host npm synchronisé sur `0.3.5-beta.1.fix.1` ;
|
|
- audit `DIST-LAYOUT-114` empêchant une nouvelle divergence de version ;
|
|
- smoke navigateur réel terminé par `game-realtime-webtransport-browser-smoke: PASS` côté pair natif.
|
|
|
|
Le smoke final a utilisé un endpoint loopback éphémère et un pin SHA-256 généré en mémoire. Les valeurs concrètes de port et de certificat appartiennent uniquement à cette exécution.
|
|
|
|
## Android ARM64
|
|
|
|
La première tentative `aarch64-linux-android` de `beta.1` a été bloquée avant compilation complète parce que `ring`/`cc-rs` ne trouvait pas le Clang du NDK dans l'environnement.
|
|
|
|
Le NDK `28.2.13676358` était déjà installé. Après exposition explicite du toolchain LLVM avec cible API 21 :
|
|
|
|
```text
|
|
CC_aarch64_linux_android=aarch64-linux-android21-clang
|
|
CXX_aarch64_linux_android=aarch64-linux-android21-clang++
|
|
AR_aarch64_linux_android=llvm-ar
|
|
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang
|
|
```
|
|
|
|
la commande :
|
|
|
|
```bash
|
|
cargo check -p game-realtime-webtransport-lib --target aarch64-linux-android
|
|
```
|
|
|
|
s'est terminée proprement, y compris `ring`, `rustls-platform-verifier-android`, Quinn et `game-realtime-webtransport-lib`.
|
|
|
|
Cette preuve valide la **cross-compilation ARM64 Android API 21** du backend. Elle ne vaut pas smoke WebTransport runtime sur appareil Android et ne valide pas les autres ABI Android pour ce backend.
|
|
|
|
## Conclusion beta
|
|
|
|
La fonctionnalité attendue est complète et la validation large ne révèle plus de défaut fonctionnel. La consolidation `0.3.5-beta.2` peut geler la décision `retained`, réconcilier la documentation durable et préparer le prompt `0.3.6` sans rouvrir le scope transport.
|