# Historique 0.3.4-alpha.5 ## Statut `0.3.4-alpha.5` a été validée par l'utilisateur le 2026-09-21. La gate complète est propre et le smoke runtime WebSocket distinct du harness de test affiche explicitement `game-realtime-websocket-smoke: PASS` avec sortie zéro. Aucun `alpha.5.fix.N` n'est requis. Les critères d'entrée en beta sont satisfaits ; la suite ouvre `0.3.4-beta.1` sans nouveau scope fonctionnel. ## Gates statiques et Rust La gate fournie est propre : ```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), 269 file(s)) Distribution layout audit: clean (50 required path(s), 8 forbidden path(s) absent) cargo fmt --all: clean cargo fmt --all -- --check: clean cargo check --workspace: clean cargo clippy --workspace --all-targets --all-features -- -D warnings: clean ``` Le workspace compilé porte `0.3.4-alpha.5`, y compris le launcher `game-realtime-websocket-smoke`. ## Tests transport et WebSocket Le contrat transport-neutral reste propre : ```text cargo test -p game-realtime-transport-lib --all-targets --all-features 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ``` Le backend WebSocket valide : ```text unit tests: 5 passed; 0 failed loopback: 1 passed; 0 failed robustness: 5 passed; 0 failed ``` Les scénarios couvrent notamment les invariants de configuration, les mappings capacité/backpressure, le round-trip binaire, le close propre, les tailles hors limite, Text interdit, peer drop abrupt et timeout de handshake silencieux. ## Smoke runtime La commande : ```bash cargo run -p game-realtime-websocket-smoke ``` s'exécute avec succès hors harness `#[test]` sur un port loopback éphémère. Le log fourni montre : ```text realtime WebSocket smoke started WebSocket listener bound address=127.0.0.1:42419 loopback endpoint bound endpoint="ws://127.0.0.1:42419/" WebSocket peer accepted peer=127.0.0.1:42388 WebSocket client connected endpoint="ws://127.0.0.1:42419/" game-realtime-websocket-smoke: PASS realtime WebSocket smoke passed ``` Le port est alloué dynamiquement ; les valeurs ci-dessus décrivent uniquement cette exécution de validation. ## Graphe du smoke `cargo tree -p game-realtime-websocket-smoke --edges normal` confirme que le launcher dépend directement de : - `game-logging-lib` ; - `game-realtime-transport-lib` ; - `game-realtime-websocket-lib` ; - Tokio ; - tracing. Le backend WebSocket reste sur Tokio `1.53.1`, `tokio-tungstenite 0.30.0` et Tungstenite `0.30.0`. Aucune pile TLS n'apparaît dans le graphe normal fourni. ## Conclusion alpha La phase alpha a désormais produit et validé le contrat transport-neutral, le backend WebSocket, la robustesse, les cas négatifs et la preuve runtime publique. La beta peut se limiter à la validation large et à la recherche de régressions, conformément au plan actif.