# 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.