Files
games/history/0.3.4/alpha.5.md
2026-09-21 19:38:00 +02:00

86 lines
2.9 KiB
Markdown

<!-- file: history/0.3.4/alpha.5.md -->
<!-- version: 1 -->
# 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.