86 lines
2.9 KiB
Markdown
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.
|