From 974ac28f352aa22653cf7756e468f715cb5e6fca Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Tue, 22 Sep 2026 08:53:36 +0200 Subject: [PATCH] 0.3.5-alpha.10.fix.1 --- Cargo.toml | 4 +- README.md | 6 +- .../src/main.rs | 3 +- deltas/0.3.5/alpha.10.fix.1.md | 108 ++++++++++++++++++ .../005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md | 6 +- 5 files changed, 118 insertions(+), 9 deletions(-) create mode 100644 deltas/0.3.5/alpha.10.fix.1.md diff --git a/Cargo.toml b/Cargo.toml index b8bdb3d..da34bb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 109 +# version: 110 [workspace] resolver = "3" @@ -30,7 +30,7 @@ members = [ ] [workspace.package] -version = "0.3.5-alpha.10" +version = "0.3.5-alpha.10.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/README.md b/README.md index 5e76db8..db37d28 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # 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 active : `0.3.5-alpha.10`. `0.3.2` reste différée. +Version active : `0.3.5-alpha.10.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.10` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié et le POC datagram backend-spécifique, puis ajoute un outil borné de caractérisation loopback WebSocket/WebTransport. Les mesures d’établissement, RTT, throughput et fenêtre de messages en vol restent descriptives ; le datagram est mesuré séparément et n’entre toujours pas dans `RealtimeConnection`. La conclusion technique provisoire reste de conserver WebTransport comme second backend à côté de WebSocket, sans prétendre qu’un résultat loopback prédit les performances Internet/mobile. +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.10.fix.1` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié et le POC datagram backend-spécifique, puis ajoute un outil borné de caractérisation loopback WebSocket/WebTransport. Les mesures d’établissement, RTT, throughput et fenêtre de messages en vol restent descriptives ; le datagram est mesuré séparément et n’entre toujours pas dans `RealtimeConnection`. La conclusion technique provisoire reste de conserver WebTransport comme second backend à côté de WebSocket, sans prétendre qu’un résultat loopback prédit les performances Internet/mobile. 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. diff --git a/crates/apps/game-realtime-transport-measure/src/main.rs b/crates/apps/game-realtime-transport-measure/src/main.rs index 77d3ed1..e1041c0 100644 --- a/crates/apps/game-realtime-transport-measure/src/main.rs +++ b/crates/apps/game-realtime-transport-measure/src/main.rs @@ -1,5 +1,5 @@ // file: crates/apps/game-realtime-transport-measure/src/main.rs -// version: 1 +// version: 2 #![warn(missing_docs)] #![deny(unreachable_pub)] @@ -7,7 +7,6 @@ //! Bounded localhost characterization tool for WebSocket and WebTransport realtime backends. -use game_realtime_transport_lib::RealtimeConnection; // rust-rules: trait-import use game_realtime_transport_lib::RealtimeReceiver; // rust-rules: trait-import use game_realtime_transport_lib::RealtimeSender; // rust-rules: trait-import diff --git a/deltas/0.3.5/alpha.10.fix.1.md b/deltas/0.3.5/alpha.10.fix.1.md new file mode 100644 index 0000000..3dbbc2f --- /dev/null +++ b/deltas/0.3.5/alpha.10.fix.1.md @@ -0,0 +1,108 @@ + + + +# Delta 0.3.5-alpha.10.fix.1 + +## Base requise + +`0.3.5-alpha.10`. + +La gate utilisateur du 2026-09-22 valide : + +- fmt et les trois audits ; +- `cargo check --workspace` ; +- les suites ciblées `game-realtime-transport-lib`, `game-realtime-websocket-lib` et `game-realtime-webtransport-lib` ; +- l'exécution release complète de `game-realtime-transport-measure` ; +- toutes les lignes `MEASURE ...`, la conclusion `webtransport=retain` et `game-realtime-transport-measure: PASS` ; +- les graphes de dépendances attendus. + +La gate complète échoue uniquement sur Clippy workspace à cause d'un import inutilisé dans `game-realtime-transport-measure`. + +`alpha.10` n'est donc pas historisée comme validée avant ce correctif. + +## Cause + +Le launcher importe encore : + +```text +use game_realtime_transport_lib::RealtimeConnection; +``` + +alors que ses helpers utilisent les types génériques et les traits `RealtimeSender` / `RealtimeReceiver` sans appeler de méthode nécessitant que `RealtimeConnection` soit explicitement en scope. + +`cargo check` le signale comme warning, puis : + +```text +cargo clippy --workspace --all-targets --all-features -- -D warnings +``` + +le transforme en erreur `unused-imports`. + +## Correction + +La version technique passe à : + +```text +0.3.5-alpha.10.fix.1 +``` + +Le correctif retire uniquement l'import inutilisé et ne change : + +- ni les paramètres de mesure ; +- ni les nombres d'échantillons ; +- ni les tailles de payload ; +- ni les chemins WebSocket/WebTransport fiables ; +- ni le POC datagram ; +- ni les backends ; +- ni les dépendances ; +- ni la sortie `MEASURE ...` ; +- ni la conclusion technique provisoire `webtransport=retain`. + +## Fichiers modifiés + +```text +Cargo.toml +README.md +crates/apps/game-realtime-transport-measure/src/main.rs +docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md +``` + +Nouveau fichier : + +```text +deltas/0.3.5/alpha.10.fix.1.md +``` + +Aucun `history/0.3.5/alpha.10.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-transport-lib --all-targets --all-features +cargo test -p game-realtime-websocket-lib --all-targets --all-features +cargo test -p game-realtime-webtransport-lib --all-targets --all-features + +cargo run --release -p game-realtime-transport-measure +``` + +Le launcher doit encore terminer par : + +```text +game-realtime-transport-measure: PASS +``` + +Les lignes `MEASURE ...` doivent rester présentes afin d'enregistrer les résultats de caractérisation dans l'historique après validation. + +## Après validation + +Créer `history/0.3.5/alpha.10.fix.1.md` avec les sorties réellement fournies et les mesures observées, puis ouvrir `0.3.5-beta.1` pour la validation large du workspace. diff --git a/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md b/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md index 9ac0756..80bd1c9 100644 --- a/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md +++ b/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md @@ -1,11 +1,11 @@ - + # Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket ## 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`, le POC datagram backend-spécifique validé par `0.3.5-alpha.9.fix.1`, puis la caractérisation comparative bornée de `0.3.5-alpha.10`. +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`, le POC datagram backend-spécifique validé par `0.3.5-alpha.9.fix.1`, puis la caractérisation comparative bornée de `0.3.5-alpha.10` et son correctif de gate `0.3.5-alpha.10.fix.1`. 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. @@ -570,6 +570,8 @@ La conclusion technique provisoire est **`retain`** : conserver WebTransport com La méthode, le format des résultats et leurs limites sont détaillés dans `docs/studies/027-V0_3_5_REALTIME_TRANSPORT_MEASUREMENT.md`. +Correctif `0.3.5-alpha.10.fix.1` : la gate utilisateur de `alpha.10` confirme les audits, `cargo check --workspace`, les suites ciblées WebSocket/WebTransport et l’exécution release complète de `game-realtime-transport-measure`, terminée par `PASS` avec toutes les lignes `MEASURE`. La gate complète échoue uniquement sur Clippy workspace pour un import `RealtimeConnection` devenu inutilisé dans le launcher de mesure. Le correctif retire cet import sans modifier le protocole de mesure, les métriques produites, les backends ou la conclusion technique provisoire. + ### `0.3.5-beta.1` — validation large Jalon rare de full workspace :