This commit is contained in:
2026-09-22 14:24:05 +02:00
parent 4523083b20
commit 445728f636
11 changed files with 209 additions and 27 deletions

View File

@@ -1,8 +1,20 @@
<!-- file: CHANGELOG.md --> <!-- file: CHANGELOG.md -->
<!-- version: 21 --> <!-- version: 22 -->
# Changelog # Changelog
## 0.3.5 — 2026-09-22
- publication stable du second backend realtime `game-realtime-webtransport-lib`, retenu comme implémentation WebTransport/QUIC supplémentaire tandis que `game-realtime-websocket-lib` reste la baseline et le fallback de référence ;
- établissement natif QUIC/HTTP3 avec TLS et pin SHA-256 exact, stream bidirectionnel fiable compatible `RealtimeConnection`, deadlines/cancellation bornées et client navigateur/WASM WebTransport réel validé contre le serveur Rust natif ;
- composition WebTransport-first validée sans manager générique : fallback WebSocket limité aux erreurs classifiées `Timeout`/`Io`, avec les erreurs ambiguës ou de configuration laissées visibles ;
- datagrams WebTransport conservés comme capacité backend-spécifique non fiable/non ordonnée, avec taille maximale négociée et sans extension du contrat fiable commun ;
- caractérisation loopback bornée de l'établissement, du RTT, de plusieurs patterns de throughput et des datagrams, documentée comme observation locale et non comme classement général ni prédiction Internet/mobile ;
- `0.3.5-rc.1` validée avec audits propres, `cargo check`, Clippy strict, **77 tests workspace**, quatre smokes natifs `PASS`, mesures release, builds WASM/frontend, smoke navigateur réel `PASS`, cross-compilation Android ARM64/API 21 et graphes de dépendances conformes ;
- documentation durable et architectures consolidées ; Android runtime WebTransport et plateformes Apple restent explicitement non validés, et aucun codec wire métier final, protocole session joueur/room, reconnect/resync, synchronisation gameplay, prediction/reconciliation, matchmaking ou simulation authoritative n'est introduit par `0.3.5`.
Les détails des phases `alpha`, `beta`, `rc` et de leurs correctifs restent dans `deltas/0.3.5/` et `history/0.3.5/`.
## 0.3.5-rc.1 — 2026-09-22 ## 0.3.5-rc.1 — 2026-09-22
- gel de la seconde implémentation realtime autour de `game-realtime-webtransport-lib`, conservée comme backend WebTransport/QUIC supplémentaire tandis que `game-realtime-websocket-lib` reste la baseline et le fallback de référence ; - gel de la seconde implémentation realtime autour de `game-realtime-webtransport-lib`, conservée comme backend WebTransport/QUIC supplémentaire tandis que `game-realtime-websocket-lib` reste la baseline et le fallback de référence ;

View File

@@ -30,7 +30,7 @@ members = [
] ]
[workspace.package] [workspace.package]
version = "0.3.5-rc.1" version = "0.3.5"
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: 82 --> <!-- version: 83 -->
# games.sasedev # games.sasedev
@@ -25,11 +25,11 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale
## Baseline ## Baseline
Version stable de référence : `0.3.4`. Version stable de référence : `0.3.5`.
Version active : `0.3.5-rc.1`. `0.3.2` reste différée. Version active : `0.3.5`. Prochaine version planifiée : `0.3.6-alpha.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-rc.1` gèle le résultat consolidé du POC WebTransport/QUIC après validation de `0.3.5-beta.2` : chemins natif et navigateur, composition WebTransport-first avec fallback WebSocket strictement classifié, datagrams backend-spécifiques, caractérisation loopback bornée et cross-compilation Android ARM64/API 21. La candidate `0.3.5-rc.1` conserve la décision de **retenir WebTransport comme second backend realtime** à côté de WebSocket, qui reste la baseline/fallback de référence. Cette décision ne prétend pas quun résultat loopback prédit les performances Internet/mobile et ne transforme pas les datagrams en capacité du contrat fiable commun. 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. La stable `0.3.5` ajoute le second backend WebTransport/QUIC retenu : chemins natif et navigateur, composition WebTransport-first avec fallback WebSocket strictement classifié, datagrams backend-spécifiques, caractérisation loopback bornée et cross-compilation Android ARM64/API 21. WebSocket reste la baseline/fallback de référence ; WebTransport est conservé comme second backend realtime. Cette décision ne prétend pas quun résultat loopback prédit les performances Internet/mobile et ne transforme pas les datagrams en capacité du contrat fiable commun.
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,5 @@
<!-- file: ROADMAP.md --> <!-- file: ROADMAP.md -->
<!-- version: 27 --> <!-- version: 28 -->
# Roadmap # Roadmap
@@ -50,7 +50,7 @@ Le détail historique des prereleases `0.1.0-*` reste dans `deltas/0.1.0/` et `h
- (d) `0.3.2` — Tauri Desktop + Snake est différé tant quune solution de monétisation desktop/WebView, notamment vidéo récompensée, nest pas démontrée techniquement et contractuellement ; ne pas créer cette distribution seulement pour réutiliser le host Web. - (d) `0.3.2` — Tauri Desktop + Snake est différé tant quune solution de monétisation desktop/WebView, notamment vidéo récompensée, nest pas démontrée techniquement et contractuellement ; ne pas créer cette distribution seulement pour réutiliser le host Web.
- (x) `0.3.3` — Android SDL3 natif multi-ABI livré avec Cargo/Gradle natifs, APK universal pour tests, AAB comme cible de distribution, `minSdk 21` fumé et compatibilité 16 KB 64 bits validée, sans script Python de build. - (x) `0.3.3` — Android SDL3 natif multi-ABI livré avec Cargo/Gradle natifs, APK universal pour tests, AAB comme cible de distribution, `minSdk 21` fumé et compatibilité 16 KB 64 bits validée, sans script Python de build.
- (x) `0.3.4` — API de transport realtime + WebSocket/tokio-tungstenite baseline livrée, sans serveur Uroburas Mode 3. - (x) `0.3.4` — API de transport realtime + WebSocket/tokio-tungstenite baseline livrée, sans serveur Uroburas Mode 3.
- ( ) `0.3.5` — POC WebTransport/QUIC sur le même protocole, avec comparaison mesurée et fallback WebSocket. - (x) `0.3.5` — POC WebTransport/QUIC sur le même protocole, avec comparaison mesurée et fallback WebSocket.
- ( ) `0.3.6` — consolidation des POC plateforme/réseau et préparation de la baseline `0.4.x`. - ( ) `0.3.6` — consolidation des POC plateforme/réseau et préparation de la baseline `0.4.x`.
La numérotation `0.3.1+` reste révisable à partir des résultats réels ; les lignes ci-dessus décrivent le planning actuel, pas une obligation de créer des versions artificielles. La numérotation `0.3.1+` reste révisable à partir des résultats réels ; les lignes ci-dessus décrivent le planning actuel, pas une obligation de créer des versions artificielles.

View File

@@ -1,7 +1,7 @@
{ {
"name": "game-realtime-webtransport-browser-smoke-web", "name": "game-realtime-webtransport-browser-smoke-web",
"private": true, "private": true,
"version": "0.3.5-rc.1", "version": "0.3.5",
"type": "module", "type": "module",
"scripts": { "scripts": {
"wasm:dev": "cargo build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown && wasm-bindgen ../../../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_realtime_webtransport_browser_smoke.wasm --target web --out-dir ../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm --out-name game_realtime_webtransport_browser_smoke", "wasm:dev": "cargo build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown && wasm-bindgen ../../../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_realtime_webtransport_browser_smoke.wasm --target web --out-dir ../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm --out-name game_realtime_webtransport_browser_smoke",

81
deltas/0.3.5/rel.001.md Normal file
View File

@@ -0,0 +1,81 @@
<!-- file: deltas/0.3.5/rel.001.md -->
<!-- version: 1 -->
# Delta 0.3.5 — release stable
## Base
Base validée : `0.3.5-rc.1`.
## Objet
Promouvoir mécaniquement la candidate validée vers `0.3.5` sans introduire de nouveau comportement.
## Changements
La release stable :
- passe `workspace.package.version` de `0.3.5-rc.1` à `0.3.5` ;
- synchronise le host `Web/game-realtime-webtransport-browser-smoke` sur `0.3.5` ;
- positionne `README.md` sur `0.3.5` comme stable de référence et `0.3.6-alpha.1` comme prochaine version planifiée ;
- marque `0.3.5` terminée dans `ROADMAP.md` ;
- ajoute l'entrée stable `0.3.5` dans `CHANGELOG.md` ;
- enregistre la validation effective de la RC dans `history/0.3.5/rc.1.md` ;
- clôt `docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md` et ses deux entrées d'index ;
- ajuste mécaniquement `prompts/007-V0_3_6_START_PROMPT.md` pour qu'il soit utilisé après publication effective du tag stable `v0.3.5`.
## Frontière de release
Aucun fichier Rust, test Rust, manifeste de crate realtime, dépendance tierce, Android/Gradle, gameplay, moteur, comportement WebSocket/WebTransport, fallback, datagram, framing, limite ou timeout n'est modifié après la RC.
La stable conserve notamment :
```text
WebSocket -> baseline/fallback de référence
WebTransport -> second backend realtime retained
Datagrams -> capacité WebTransport backend-spécifique, hors RealtimeConnection
```
Les preuves de plateforme restent bornées : Linux natif et navigateur/WASM ont une preuve runtime ; Android ARM64/API 21 a une preuve de cross-compilation du backend ; Android runtime WebTransport et Apple restent non validés.
## Validation proportionnelle
La RC fonctionnellement identique a déjà validé audits, `cargo check`, Clippy strict, **77 tests workspace**, quatre smokes natifs, mesures release, gates WASM/frontend, smoke navigateur réel, cross-compilation Android ARM64/API 21 et graphes de dépendances.
La promotion stable demande uniquement les contrôles proportionnels aux changements de version et de documentation/build-metadata :
```bash
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
(cd Web/game-realtime-webtransport-browser-smoke && npm install && npm run build)
```
Clippy strict, full tests, smokes natifs/browser et cross-compilation Android ne sont pas répétés par cérémonie puisque cette promotion ne modifie aucun code ni comportement. Tout échec de la gate ci-dessus doit néanmoins être corrigé avant publication.
## Contrôles documentaires de release
Vérifier explicitement que :
- `CHANGELOG.md` contient une entrée stable `0.3.5` au-dessus de l'entrée `0.3.5-rc.1` ;
- `ROADMAP.md` marque `0.3.5` `(x)` et laisse `0.3.6` planifiée ;
- le host navigateur annonce `0.3.5` ;
- le plan `0.3.5` et ses index sont clôturés ;
- `prompts/007-V0_3_6_START_PROMPT.md` demande `v0.3.5` comme base et précise qu'il ne doit être utilisé qu'après publication effective de ce tag ;
- aucune documentation ne transforme les datagrams en capacité `RealtimeConnection` ;
- aucune preuve de cross-compilation Android n'est décrite comme smoke runtime Android WebTransport.
## Publication
Après validation de ce delta :
- commit de release ;
- tag stable unique `v0.3.5` ;
- archive ZIP téléchargée depuis ce tag utilisée comme baseline autoritaire de la session suivante ;
- démarrage de `0.3.6` uniquement depuis `v0.3.5` avec `prompts/007-V0_3_6_START_PROMPT.md` ;
- première tranche suivante : `0.3.6-alpha.1`, audit/consolidation des POC `0.3.x` et création du plan actif `0.3.6`.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md --> <!-- file: docs/000-README.md -->
<!-- version: 37 --> <!-- version: 38 -->
# Documentation games.sasedev # Documentation games.sasedev
@@ -21,7 +21,7 @@
- [`plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan clôturé de `0.3.1`, second host Snake Tauri Android. - [`plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan clôturé de `0.3.1`, second host Snake Tauri Android.
- [`plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan clôturé de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI. - [`plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan clôturé de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI.
- [`plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md`](plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md) — plan clôturé de `0.3.4`, API de transport realtime et baseline WebSocket Tokio/tokio-tungstenite. - [`plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md`](plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md) — plan clôturé de `0.3.4`, API de transport realtime et baseline WebSocket Tokio/tokio-tungstenite.
- [`plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md`](plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md) — plan actif de `0.3.5`, POC WebTransport/QUIC, navigateur, fallback WebSocket et mesures comparatives. - [`plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md`](plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md) — plan clôturé de `0.3.5`, second backend WebTransport/QUIC retenu, navigateur, fallback WebSocket et mesures comparatives.
## Architecture ## Architecture

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/000-README.md --> <!-- file: docs/plans/000-README.md -->
<!-- version: 7 --> <!-- version: 8 -->
# Plans de versions games.sasedev # Plans de versions games.sasedev
@@ -15,4 +15,4 @@ Le `ROADMAP.md` reste la trajectoire macroscopique du projet ; les deltas décri
- [`002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan clôturé de `0.3.1`, second host Snake Tauri Android. - [`002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan clôturé de `0.3.1`, second host Snake Tauri Android.
- [`003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan clôturé de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI. - [`003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan clôturé de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI.
- [`004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md`](004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md) — plan clôturé de `0.3.4`, API de transport realtime et baseline WebSocket Tokio/tokio-tungstenite. - [`004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md`](004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md) — plan clôturé de `0.3.4`, API de transport realtime et baseline WebSocket Tokio/tokio-tungstenite.
- [`005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md`](005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md) — plan actif de `0.3.5`, POC WebTransport/QUIC, navigateur, fallback WebSocket et comparaison mesurée. - [`005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md`](005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md) — plan clôturé de `0.3.5`, second backend WebTransport/QUIC retenu, navigateur, fallback WebSocket et comparaison mesurée.

View File

@@ -1,11 +1,13 @@
<!-- 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: 21 --> <!-- version: 22 -->
# 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`, le POC datagram backend-spécifique validé par `0.3.5-alpha.9.fix.1`, puis la caractérisation comparative bornée validée par `0.3.5-alpha.10.fix.1`. `0.3.5-beta.1` a validé le workspace complet, les smokes natifs, les mesures, le build WASM/frontend et le smoke navigateur réel. `0.3.5-beta.1.fix.1` a ensuite fermé la dérive de version du host navigateur, revali son build/smoke réel et confirmé la cross-compilation du backend WebTransport pour Android ARM64/API 21 avec le NDK `28.2.13676358`. `0.3.5-beta.2` a validé la consolidation documentaire pré-RC sans changement fonctionnel. `0.3.5-rc.1` est désormais la candidate gelée : WebTransport reste **retained** comme second backend realtime et WebSocket reste la baseline/fallback de référence. Plan clôturé avec la promotion stable `0.3.5` du 2026-09-22. Il a été créé pendant `0.3.5-alpha.1` à partir de l'archive taggée `v0.3.4` et reste désormais une référence historique.
Les tranches `alpha.1`, `alpha.2.fix.1`, `alpha.3`, `alpha.4.fix.1`, `alpha.5`, `alpha.6`, `alpha.7.fix.2`, `alpha.8.fix.1`, `alpha.9.fix.1`, `alpha.10.fix.1`, `beta.1.fix.1`, `beta.2` et `rc.1` ont été validées. Les prereleases intermédiaires ayant nécessité un fix restent documentées dans `deltas/0.3.5/`. La RC finale a repassé les audits, la compilation workspace, Clippy strict, **77 tests workspace**, les quatre smokes natifs, les mesures release, les builds WASM/frontend, le smoke navigateur réel, la cross-compilation Android ARM64/API 21 et les graphes de dépendances sans défaut. La stable est une promotion mécanique de cette RC gelée. WebTransport est **retained** comme second backend realtime et WebSocket reste la baseline/fallback de référence.
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.
@@ -637,7 +639,7 @@ La RC suivante vérifie cette documentation consolidée et porte l'entrée chang
### `0.3.5-rc.1` — candidate gelée ### `0.3.5-rc.1` — candidate gelée
Tranche active : Tranche validée :
- aucun comportement volontaire nouveau ; - aucun comportement volontaire nouveau ;
- enregistrer `history/0.3.5/beta.2.md` après sa validation ; - enregistrer `history/0.3.5/beta.2.md` après sa validation ;
@@ -653,15 +655,7 @@ Tranche active :
### `0.3.5` — stable ### `0.3.5` — stable
Promotion mécanique autant que possible : Promotion mécanique réalisée : version `0.3.5`, historique RC, changelog stable, roadmap clôturée, plan et index clôturés, delta `rel.001` et prompt `0.3.6` ajusté pour partir de la stable publiée/taggée après validation du delta final. Aucun comportement n'est modifié après `rc.1`.
- version stable ;
- historique RC ;
- changelog stable ;
- clôture du plan ;
- roadmap si nécessaire ;
- delta final ;
- ajustement mécanique du prompt `0.3.6`.
## Gates Cargo planifiées ## Gates Cargo planifiées

95
history/0.3.5/rc.1.md Normal file
View File

@@ -0,0 +1,95 @@
<!-- file: history/0.3.5/rc.1.md -->
<!-- version: 1 -->
# Historique 0.3.5-rc.1
## Statut
`0.3.5-rc.1` a été validée par l'utilisateur le 2026-09-22. La candidate gelée passe les audits, la compilation workspace, Clippy strict, le workspace de tests complet, les smokes realtime natifs, la caractérisation release, les gates WASM/frontend, la cross-compilation Android ARM64/API 21, le smoke navigateur réel et les contrôles de dépendances sans défaut de publication.
Aucun `rc.1.fix.N` n'est requis. La candidate peut être promue mécaniquement vers la stable `0.3.5`.
## Gates statiques et workspace
La sortie utilisateur confirme :
```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), 318 file(s))
Distribution layout audit: clean (66 required path(s), 8 forbidden path(s) absent)
cargo check --workspace: clean
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
```
Le workspace compilé porte bien `0.3.5-rc.1`, y compris les crates realtime, les smokes et l'outil de mesure.
## Tests workspace
La commande :
```bash
cargo test --workspace --all-targets --all-features
```
valide **77 tests, 0 échec** sur les moteurs, plateformes, assets/logging, jeux, WebSocket, WebTransport, datagrams, fallback et adapters concernés.
## Smokes realtime natifs
Les quatre launchers terminent par :
```text
game-realtime-websocket-smoke: PASS
game-realtime-webtransport-smoke: PASS
game-realtime-webtransport-datagram-smoke: PASS
game-realtime-transport-fallback-smoke: PASS
```
Le fallback confirme WebTransport préféré, WebSocket uniquement sur erreur classifiée `Timeout`/`Io`, et visibilité conservée des erreurs non éligibles au fallback.
## Mesures de la RC
La caractérisation release bornée termine par `game-realtime-transport-measure: PASS` et observe sur cette exécution loopback :
```text
establishment median: websocket=65 us, webtransport=720 us
rtt median: websocket=17 us, webtransport=11 us
throughput 128 x 64 KiB: websocket=3036.346 MiB/s, webtransport=634.827 MiB/s
in-flight 64 x 1 KiB: websocket=1.533 MiB/s, webtransport=348.883 MiB/s
datagram bounded burst: attempted=64, received=64, payload=256 bytes, client_max=1381, server_max=1381
```
Ces valeurs restent une observation locale dépendante du pattern ; elles ne constituent ni un classement général des protocoles ni une prédiction Internet/mobile. La conclusion reste :
```text
CONCLUSION webtransport=retain scope=second-backend reason=reliable-browser-fallback-datagram-capabilities
```
## WASM, frontend et navigateur réel
Les gates `wasm32-unknown-unknown` de `game-realtime-webtransport-lib` passent en check, Clippy strict et build. `game-realtime-webtransport-browser-smoke` compile également pour WASM.
Le host Vite/TypeScript synchronisé sur `0.3.5-rc.1` passe `npm install` sans vulnérabilité puis son build production. Le smoke navigateur réel contre le serveur Rust natif termine par :
```text
game-realtime-webtransport-browser-smoke: PASS
```
## Android ARM64/API 21
Avec le NDK `28.2.13676358` déjà retenu et le Clang ciblé `aarch64-linux-android21-clang` exposé à Cargo/`cc-rs`, la commande :
```bash
cargo check -p game-realtime-webtransport-lib --target aarch64-linux-android
```
termine proprement. Cette preuve valide la **cross-compilation** du backend WebTransport pour Android ARM64/API 21 ; elle ne constitue pas un smoke runtime Android WebTransport.
## Frontières de dépendances
Les graphes directs/inverses confirment que les backends realtime restent consommés uniquement par les launchers/outils techniques prévus. Aucun moteur ni gameplay ne dépend directement de `game-realtime-websocket-lib` ou `game-realtime-webtransport-lib`.
## Conclusion RC
La candidate est gelée, cohérente et validée sans correctif RC. La stable `0.3.5` peut se limiter aux changements mécaniques de version, changelog, roadmap, clôture du plan/index, historique RC, delta final et ajustement du prompt `0.3.6`.

View File

@@ -1,5 +1,5 @@
<!-- file: prompts/007-V0_3_6_START_PROMPT.md --> <!-- file: prompts/007-V0_3_6_START_PROMPT.md -->
<!-- version: 1 --> <!-- version: 2 -->
# Prompt de démarrage `0.3.6` — consolidation des POC plateforme/réseau et baseline 0.4.x # Prompt de démarrage `0.3.6` — consolidation des POC plateforme/réseau et baseline 0.4.x
@@ -11,7 +11,7 @@ Partir uniquement de la version stable/taggée :
v0.3.5 v0.3.5
``` ```
Ce prompt est préparé pendant la consolidation `0.3.5-beta.2`. Il doit être vérifié en RC puis ajusté mécaniquement à la stable. Ne pas l'utiliser comme preuve que `v0.3.5` existe avant la publication effective du tag. Ce prompt accompagne la stable `0.3.5`. Il doit être utilisé uniquement après validation du delta stable, commit de release et publication effective du tag `v0.3.5`. L'archive ZIP téléchargée depuis ce tag devient alors la baseline autoritaire de la session `0.3.6`.
Une archive annoncée comme téléchargement ZIP du tag Gitea est autoritaire conformément à `CMD-GIT-003` et `CMD-GIT-004`; l'absence de `.git` n'est pas un défaut. Une archive annoncée comme téléchargement ZIP du tag Gitea est autoritaire conformément à `CMD-GIT-003` et `CMD-GIT-004`; l'absence de `.git` n'est pas un défaut.