0.3.5-alpha.9.fix.1

This commit is contained in:
2026-09-22 08:35:53 +02:00
parent 9f1a1c3d06
commit c5806e4f78
5 changed files with 115 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml # file: Cargo.toml
# version: 107 # version: 108
[workspace] [workspace]
resolver = "3" resolver = "3"
@@ -29,7 +29,7 @@ members = [
] ]
[workspace.package] [workspace.package]
version = "0.3.5-alpha.9" version = "0.3.5-alpha.9.fix.1"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
repository = "https://git.sasedev.com/Sasedev/games" repository = "https://git.sasedev.com/Sasedev/games"

View File

@@ -1,5 +1,5 @@
<!-- file: README.md --> <!-- file: README.md -->
<!-- version: 75 --> <!-- version: 76 -->
# games.sasedev # games.sasedev
@@ -27,9 +27,9 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale
Version stable de référence : `0.3.4`. Version stable de référence : `0.3.4`.
Version active : `0.3.5-alpha.9`. `0.3.2` reste différée. Version active : `0.3.5-alpha.9.fix.1`. `0.3.2` reste différée.
La stable `0.3.4` livre la première baseline realtime : contrat binaire transport-neutral, backend WebSocket Tokio/tokio-tungstenite, limites et deadlines, tests loopback/robustesse, smoke runtime localhost public et frontières de dépendances empêchant moteurs et gameplay de dépendre d'un backend concret. `0.3.5-alpha.9` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié, puis ajoute un POC datagram backend-spécifique isolé. Les datagrams restent hors du contrat `RealtimeConnection` : ils sont non fiables, non ordonnés et bornés par la taille négociée de la session. Les mesures comparatives restent réservées à la tranche suivante. La stable `0.3.4` livre la première baseline realtime : contrat binaire transport-neutral, backend WebSocket Tokio/tokio-tungstenite, limites et deadlines, tests loopback/robustesse, smoke runtime localhost public et frontières de dépendances empêchant moteurs et gameplay de dépendre d'un backend concret. `0.3.5-alpha.9.fix.1` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié, puis ajoute le POC datagram backend-spécifique isolé de `alpha.9` avec son correctif de documentation du crate de test dintégration. Les datagrams restent hors du contrat `RealtimeConnection` : ils sont non fiables, non ordonnés et bornés par la taille négociée de la session. Les mesures comparatives restent réservées à la tranche suivante.
Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme. Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme.

View File

@@ -1,5 +1,7 @@
// file: crates/common/game-realtime-webtransport-lib/tests/datagrams.rs // file: crates/common/game-realtime-webtransport-lib/tests/datagrams.rs
// version: 1 // version: 2
//! Integration coverage for backend-specific WebTransport datagrams.
#![cfg(not(target_arch = "wasm32"))] #![cfg(not(target_arch = "wasm32"))]

View File

@@ -0,0 +1,103 @@
<!-- file: deltas/0.3.5/alpha.9.fix.1.md -->
<!-- version: 1 -->
# Delta 0.3.5-alpha.9.fix.1
## Base requise
`0.3.5-alpha.9`.
La gate utilisateur du 2026-09-22 valide :
- fmt et les trois audits ;
- `cargo check --workspace` ;
- les tests `game-realtime-webtransport-lib`, y compris les `2/2` tests datagram ;
- le smoke datagram natif, terminé par `game-realtime-webtransport-datagram-smoke: PASS` ;
- `cargo check`, Clippy et build de `game-realtime-webtransport-lib` sur `wasm32-unknown-unknown` ;
- les graphes de dépendances attendus.
La gate complète échoue uniquement sur Clippy workspace avec `missing_docs` pour le crate dintégration `crates/common/game-realtime-webtransport-lib/tests/datagrams.rs`. Les tests et le smoke datagram eux-mêmes sont verts.
`alpha.9` n'est donc pas historisée comme validée avant ce correctif.
## Cause
Chaque fichier sous `tests/` est compilé comme un crate dintégration autonome. La règle workspace :
```text
missing_docs = "warn"
```
devient bloquante sous :
```text
cargo clippy --workspace --all-targets --all-features -- -D warnings
```
Le nouveau `tests/datagrams.rs` documente ses tests mais ne possédait pas de rustdoc `//!` au niveau crate.
## Correction
La version technique passe à :
```text
0.3.5-alpha.9.fix.1
```
Le correctif ajoute uniquement une documentation de niveau crate à `tests/datagrams.rs`. Il n'ajoute aucune exception `allow`, ne modifie aucun test et ne change :
- ni la surface datagram de `WebTransportSession` ;
- ni le framing fiable ;
- ni `RealtimeConnection` ;
- ni les backends natif/WASM ;
- ni les deadlines ;
- ni les dépendances ;
- ni le smoke datagram.
## Fichiers modifiés
```text
Cargo.toml
README.md
crates/common/game-realtime-webtransport-lib/tests/datagrams.rs
docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md
```
Nouveau fichier :
```text
deltas/0.3.5/alpha.9.fix.1.md
```
Aucun `history/0.3.5/alpha.9.md` n'est créé avant une gate entièrement verte.
## 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-webtransport-lib --all-targets --all-features
cargo run -p game-realtime-webtransport-datagram-smoke
cargo check -p game-realtime-webtransport-lib --target wasm32-unknown-unknown
cargo clippy -p game-realtime-webtransport-lib --target wasm32-unknown-unknown --lib -- -D warnings
cargo build -p game-realtime-webtransport-lib --target wasm32-unknown-unknown
```
Le smoke doit terminer par :
```text
game-realtime-webtransport-datagram-smoke: PASS
```
## Après validation
Créer `history/0.3.5/alpha.9.fix.1.md` à partir des sorties réellement fournies, puis ouvrir `0.3.5-alpha.10` pour les mesures comparatives bornées WebSocket / WebTransport fiable, avec les datagrams mesurés séparément.

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md --> <!-- file: docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md -->
<!-- version: 14 --> <!-- version: 15 -->
# Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket # Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket
## Statut ## Statut
Plan actif créé pendant `0.3.5-alpha.1` à partir de l'archive taggée `v0.3.4`, puis réconcilié pour l'implémentation native de `0.3.5-alpha.2`, son correctif de validation `0.3.5-alpha.2.fix.1`, le chemin fiable validé de `0.3.5-alpha.3`, la robustesse validée par `0.3.5-alpha.4.fix.1`, le smoke natif validé de `0.3.5-alpha.5`, le chemin client WASM validé de `0.3.5-alpha.6`, le smoke navigateur validé par `0.3.5-alpha.7.fix.2`, la composition/fallback WebSocket validée par `0.3.5-alpha.8.fix.1` et le POC datagram backend-spécifique de `0.3.5-alpha.9`. Plan actif créé pendant `0.3.5-alpha.1` à partir de l'archive taggée `v0.3.4`, puis réconcilié pour l'implémentation native de `0.3.5-alpha.2`, son correctif de validation `0.3.5-alpha.2.fix.1`, le chemin fiable validé de `0.3.5-alpha.3`, la robustesse validée par `0.3.5-alpha.4.fix.1`, le smoke natif validé de `0.3.5-alpha.5`, le chemin client WASM validé de `0.3.5-alpha.6`, le smoke navigateur validé par `0.3.5-alpha.7.fix.2`, la composition/fallback WebSocket validée par `0.3.5-alpha.8.fix.1` et le POC datagram backend-spécifique de `0.3.5-alpha.9`, corrigé par `0.3.5-alpha.9.fix.1` après la gate Clippy.
Le cadrage détaillé et la comparaison des stacks actuelles sont conservés dans `docs/studies/026-V0_3_5_WEBTRANSPORT_QUIC_STACK_AUDIT.md`. Le présent document porte les décisions opérationnelles, le scope, les gates et le forecast vivant de la version. Le cadrage détaillé et la comparaison des stacks actuelles sont conservés dans `docs/studies/026-V0_3_5_WEBTRANSPORT_QUIC_STACK_AUDIT.md`. Le présent document porte les décisions opérationnelles, le scope, les gates et le forecast vivant de la version.
@@ -551,6 +551,8 @@ Le backend fiable natif et le navigateur étant désormais validés, la tranche
Le smoke navigateur interactif n'est pas rouvert dans cette tranche : sa preuve fiable `alpha.7.fix.2` reste intacte. La valeur retenue est **future capability backend-spécifique utile**, à mesurer en `alpha.10`, sans promotion vers le contrat commun. Le smoke navigateur interactif n'est pas rouvert dans cette tranche : sa preuve fiable `alpha.7.fix.2` reste intacte. La valeur retenue est **future capability backend-spécifique utile**, à mesurer en `alpha.10`, sans promotion vers le contrat commun.
Correctif `0.3.5-alpha.9.fix.1` : la gate utilisateur de `alpha.9` confirme fmt/audits, `cargo check --workspace`, les tests WebTransport dont `2/2` tests datagram, le smoke datagram natif terminé par `PASS`, ainsi que check/Clippy/build WASM. Clippy workspace échoue uniquement parce que le nouveau crate dintégration `tests/datagrams.rs` ne possède pas de rustdoc de niveau crate sous `missing_docs = "warn"` promu en erreur par `-D warnings`. Le correctif ajoute cette documentation sans modifier API, comportement, test ou dépendance.
### `0.3.5-alpha.10` — mesures comparatives bornées ### `0.3.5-alpha.10` — mesures comparatives bornées
- launcher/outil minimal de mesure ; - launcher/outil minimal de mesure ;