0.3.4-alpha.5

This commit is contained in:
2026-09-21 18:22:19 +02:00
parent fa17ea0ca5
commit 74cdb177e9
8 changed files with 358 additions and 10 deletions

62
history/0.3.4/alpha.4.md Normal file
View File

@@ -0,0 +1,62 @@
<!-- file: history/0.3.4/alpha.4.md -->
<!-- version: 1 -->
# Historique 0.3.4-alpha.4
## Statut
`0.3.4-alpha.4` a été validée par l'utilisateur le 2026-09-21. Les limites, deadlines et cas négatifs du backend WebSocket compilent dans le workspace, passent Clippy strict et tous les tests ciblés sont propres.
Aucun `alpha.4.fix.N` n'est requis. La revue suivant cette gate a néanmoins identifié qu'aucun smoke runtime distinct du harness de test n'avait encore été exécuté. La suite ouvre donc `0.3.4-alpha.5` pour cette preuve avant la beta.
## 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), 267 file(s))
Distribution layout audit: clean (49 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.4`, y compris `game-realtime-transport-lib` et `game-realtime-websocket-lib`.
## 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 ensuite :
```text
unit tests: 5 passed; 0 failed
loopback: 1 passed; 0 failed
robustness: 5 passed; 0 failed
```
Les onze tests WebSocket couvrent notamment les defaults et invariants de configuration, les mappings capacité/backpressure, le round-trip binaire et close propre, les tailles hors limite, Text interdit, peer drop abrupt et timeout de handshake silencieux.
## Graphe de dépendances
`cargo tree -p game-realtime-websocket-lib --edges normal` confirme toujours la frontière attendue :
- `game-realtime-websocket-lib` dépend directement de `game-realtime-transport-lib`, `futures-util 0.3.34`, `tokio 1.53.1`, `tokio-tungstenite 0.30.0` et `tracing 0.1.44` ;
- `tokio-tungstenite 0.30.0` apporte `tungstenite 0.30.0` ;
- aucune pile TLS `native-tls`/`rustls` n'apparaît dans le graphe normal ;
- aucune crate gameplay ou moteur ne dépend du backend WebSocket.
## Limite de la preuve
Cette gate est suffisante pour valider techniquement `alpha.4`, mais elle reste composée d'audits, compilation, lint et tests Cargo. Même le round-trip localhost est exécuté sous `#[test]`.
La validation runtime opérateur manque encore. `alpha.5` doit donc fournir un exécutable de smoke séparé qui utilise uniquement l'API publique sur un vrai socket loopback et dont le code de sortie atteste le résultat.