0.3.5-alpha.5
This commit is contained in:
126
deltas/0.3.5/alpha.5.md
Normal file
126
deltas/0.3.5/alpha.5.md
Normal file
@@ -0,0 +1,126 @@
|
||||
<!-- file: deltas/0.3.5/alpha.5.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.5-alpha.5
|
||||
|
||||
## Base requise
|
||||
|
||||
`0.3.5-alpha.4.fix.1`, validée par l'utilisateur le 2026-09-21 avec fmt, audits, `cargo check`, Clippy strict, les sept tests du contrat realtime commun et les vingt tests WebTransport.
|
||||
|
||||
La preuve est enregistrée dans `history/0.3.5/alpha.4.fix.1.md`.
|
||||
|
||||
## Objectif
|
||||
|
||||
Fermer la preuve runtime native WebTransport hors harness de test sans ajouter de fonctionnalité à la bibliothèque.
|
||||
|
||||
Cette tranche doit démontrer avec les APIs publiques réellement distribuées que le chemin localhost complet fonctionne depuis un exécutable normal : TLS local, pinning, session WebTransport, stream fiable principal, contrat realtime commun, round-trip bidirectionnel et fermeture propre.
|
||||
|
||||
## Version
|
||||
|
||||
La version workspace passe à :
|
||||
|
||||
```text
|
||||
0.3.5-alpha.5
|
||||
```
|
||||
|
||||
## Launcher technique
|
||||
|
||||
Nouvelle crate :
|
||||
|
||||
```text
|
||||
crates/apps/game-realtime-webtransport-smoke
|
||||
```
|
||||
|
||||
Elle dépend uniquement de :
|
||||
|
||||
```text
|
||||
game-logging-lib
|
||||
game-realtime-transport-lib
|
||||
game-realtime-webtransport-lib
|
||||
tokio
|
||||
tracing
|
||||
```
|
||||
|
||||
Aucune nouvelle dépendance externe n'est introduite.
|
||||
|
||||
Le launcher :
|
||||
|
||||
1. initialise le tracing commun ;
|
||||
2. génère une identité TLS loopback ECDSA P-256 courte durée en mémoire ;
|
||||
3. dérive le hash SHA-256 exact exposé par cette identité ;
|
||||
4. bind le listener WebTransport sur `127.0.0.1:0` ;
|
||||
5. construit le client `https://<adresse>/smoke` avec ce hash pin ;
|
||||
6. établit simultanément les sessions client et serveur ;
|
||||
7. ouvre/accepte le stream bidirectionnel primaire ;
|
||||
8. échange un payload client puis un payload serveur via le contrat `RealtimeConnection` ;
|
||||
9. ferme proprement le sender client et vérifie `Closed` côté serveur ;
|
||||
10. ferme proprement le sender serveur et vérifie `Closed` côté client ;
|
||||
11. imprime exactement :
|
||||
|
||||
```text
|
||||
game-realtime-webtransport-smoke: PASS
|
||||
```
|
||||
|
||||
Une deadline globale de 10 secondes empêche le smoke de rester bloqué indéfiniment.
|
||||
|
||||
## Frontière de dépendances
|
||||
|
||||
Le backend WebTransport est désormais consommé par un launcher technique public, ce qui est intentionnel. Il doit toujours rester absent des crates engine et gameplay.
|
||||
|
||||
Le graphe inverse attendu peut donc contenir :
|
||||
|
||||
```text
|
||||
game-realtime-webtransport-lib
|
||||
game-realtime-webtransport-smoke
|
||||
```
|
||||
|
||||
mais aucune crate `engine-v1-*`, `game-snake-poc` ou `game-reflex-poc`.
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
README.md
|
||||
docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md
|
||||
```
|
||||
|
||||
Nouveaux fichiers :
|
||||
|
||||
```text
|
||||
crates/apps/game-realtime-webtransport-smoke/Cargo.toml
|
||||
crates/apps/game-realtime-webtransport-smoke/src/main.rs
|
||||
deltas/0.3.5/alpha.5.md
|
||||
history/0.3.5/alpha.4.fix.1.md
|
||||
```
|
||||
|
||||
## Validation attendue
|
||||
|
||||
```bash
|
||||
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-webtransport-lib --all-targets --all-features
|
||||
|
||||
cargo run -p game-realtime-webtransport-smoke
|
||||
|
||||
cargo tree -p game-realtime-webtransport-smoke --edges normal
|
||||
cargo tree -i game-realtime-webtransport-lib --workspace --edges normal
|
||||
```
|
||||
|
||||
Le smoke doit se terminer avec :
|
||||
|
||||
```text
|
||||
game-realtime-webtransport-smoke: PASS
|
||||
```
|
||||
|
||||
## Après validation
|
||||
|
||||
Créer `history/0.3.5/alpha.5.md` à partir des sorties réellement fournies, puis ouvrir `0.3.5-alpha.6` pour le chemin WASM compilable. Le smoke navigateur/TLS réel reste réservé à `alpha.7`.
|
||||
Reference in New Issue
Block a user