# Historique 0.3.5-alpha.10.fix.1 ## Statut `0.3.5-alpha.10.fix.1` a été validée par l'utilisateur le 2026-09-22. La caractérisation locale WebSocket/WebTransport est fermée avec une gate complète verte et la conclusion technique provisoire reste de conserver WebTransport comme second backend. ## Gates 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 test -p game-realtime-transport-lib --all-targets --all-features cargo test -p game-realtime-websocket-lib --all-targets --all-features cargo test -p game-realtime-webtransport-lib --all-targets --all-features cargo run --release -p game-realtime-transport-measure ``` 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), 310 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 game-realtime-transport-lib: 7 passed; 0 failed game-realtime-websocket-lib: 11 passed; 0 failed game-realtime-webtransport-lib: 22 passed; 0 failed game-realtime-transport-measure: PASS ``` ## Mesures loopback validées Exécution release observée : ```text MEASURE transport=websocket metric=establishment samples=8 payload_bytes=0 min_us=25 median_us=29 p95_us=155 max_us=155 MEASURE transport=webtransport metric=establishment samples=8 payload_bytes=0 min_us=696 median_us=754 p95_us=1175 max_us=1175 MEASURE transport=websocket metric=rtt samples=128 payload_bytes=32 min_us=18 median_us=18 p95_us=18 max_us=24 MEASURE transport=webtransport metric=rtt samples=128 payload_bytes=32 min_us=11 median_us=12 p95_us=12 max_us=16 MEASURE transport=websocket metric=throughput messages=128 payload_bytes=65536 total_bytes=8388608 elapsed_us=2728 mib_per_s=2931.704 messages_per_s=46907.272 MEASURE transport=webtransport metric=throughput messages=128 payload_bytes=65536 total_bytes=8388608 elapsed_us=12331 mib_per_s=648.746 messages_per_s=10379.940 MEASURE transport=websocket metric=in_flight_window messages=64 payload_bytes=1024 total_bytes=65536 elapsed_us=44356 mib_per_s=1.409 messages_per_s=1442.849 MEASURE transport=webtransport metric=in_flight_window messages=64 payload_bytes=1024 total_bytes=65536 elapsed_us=338 mib_per_s=184.496 messages_per_s=188923.755 MEASURE transport=webtransport-datagram metric=bounded_burst attempted=64 received=64 receive_ratio=1.000000 payload_bytes=256 client_max=1381 server_max=1381 elapsed_us=80 CONCLUSION webtransport=retain scope=second-backend reason=reliable-browser-fallback-datagram-capabilities ``` Ces chiffres caractérisent uniquement le loopback de cette exécution. Ils ne constituent ni un classement global des protocoles ni une prédiction des performances Internet/mobile. Les profils favorisent des chemins différents selon la métrique, ce qui renforce la décision de conserver les deux backends plutôt que d'inférer un vainqueur unique. ## Conséquence Toutes les tranches alpha prévues de `0.3.5` sont fermées. `0.3.5-beta.1` peut exécuter la validation large : full workspace, smokes retenus, navigateur/WASM, fallback, graphe de dépendances et contrôle Android ciblé si l'environnement le permet.