0.3.5-beta.2

This commit is contained in:
2026-09-22 11:38:58 +02:00
parent 48444dce7f
commit 6ccdebb241
15 changed files with 692 additions and 54 deletions

View File

@@ -0,0 +1,101 @@
<!-- 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.