0.3.5-alpha.8
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md -->
|
||||
<!-- version: 11 -->
|
||||
<!-- version: 12 -->
|
||||
|
||||
# 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 candidat de `0.3.5-alpha.7` et ses correctifs de build `0.3.5-alpha.7.fix.1` puis `0.3.5-alpha.7.fix.2`.
|
||||
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` et la composition/fallback WebSocket candidate de `0.3.5-alpha.8`.
|
||||
|
||||
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.
|
||||
|
||||
@@ -199,7 +199,7 @@ WebTransport attempt
|
||||
-> classified unavailable/establishment failure: WebSocket
|
||||
```
|
||||
|
||||
Le test doit pouvoir forcer les deux branches.
|
||||
Le test doit pouvoir forcer les deux branches. La classification est volontairement conservative : tant que le backend WebTransport natif agrège sous `TransportErrorKind::Connect` des causes d'établissement qui peuvent inclure un échec TLS/pinning, `Connect` ne doit pas déclencher un downgrade silencieux. `alpha.8` autorise uniquement `Timeout` et `Io` comme causes de fallback ; `InvalidConfiguration`, `Connect`, `Protocol`, `Aborted`, `Closed`, `Bind`, `Accept`, `MessageTooLarge` et `Backpressure` restent visibles.
|
||||
|
||||
Pas de `TransportManager`, registry de plugins ou sélection dynamique générique dans `game-realtime-transport-lib`.
|
||||
|
||||
@@ -515,17 +515,25 @@ Cette tranche reste volontairement séparée de `alpha.8` : le smoke WebTranspor
|
||||
|
||||
Correctif `0.3.5-alpha.7.fix.1` : la première gate utilisateur a validé fmt, audits, check/Clippy natifs, tests, smoke natif, check/Clippy/build WASM et la compilation de l'adapter navigateur, puis a échoué uniquement dans `npm run build` lorsque `wasm-bindgen` cherchait l'artefact Cargo sous `../../builds/...`. Depuis `Web/game-realtime-webtransport-browser-smoke`, le target-dir workspace `../builds/sasedev-games/target` se trouve en réalité sous `../../../builds/...`. Le fix corrige les scripts `wasm:dev`/`wasm:build` et l'audit de distribution associé, sans changement Rust/runtime.
|
||||
|
||||
Correctif `0.3.5-alpha.7.fix.2` : la gate du premier fix valide fmt, audits, check/Clippy natifs et le build WASM de l'adapter, puis `npm run build` atteint TypeScript et échoue uniquement parce que l'alias `@webtransport-browser-smoke-wasm` cherche encore les déclarations wasm-bindgen sous `../../builds/...`. Le chemin `paths` du `tsconfig.json` est aligné sur `../../../builds/...`; l'audit de distribution ancre désormais aussi cette résolution. Les erreurs `implicit any` observées sur les callbacks sont une conséquence de ce module non résolu et disparaissent lorsque la déclaration générée est chargee. Aucun code Rust/runtime ni protocole n'est modifié.
|
||||
Correctif `0.3.5-alpha.7.fix.2` : la gate du premier fix valide fmt, audits, check/Clippy natifs et le build WASM de l'adapter, puis `npm run build` atteint TypeScript et échoue uniquement parce que l'alias `@webtransport-browser-smoke-wasm` cherche encore les déclarations wasm-bindgen sous `../../builds/...`. Le chemin `paths` du `tsconfig.json` est aligné sur `../../../builds/...`; l'audit de distribution ancre désormais aussi cette résolution. Les erreurs `implicit any` observées sur les callbacks sont une conséquence de ce module non résolu et disparaissent lorsque la déclaration générée est chargée. Aucun code Rust/runtime ni protocole n'est modifié.
|
||||
|
||||
La gate utilisateur de `alpha.7.fix.2` valide ensuite fmt, audits, check/Clippy workspace, build WASM de l'adapter, `npm run build`, génération `wasm-bindgen`, TypeScript/Vite et le smoke navigateur réel. Une première tentative interactive a atteint la deadline browser de 5 s sans défaut reproductible établi ; une tentative suivante contre le même peer local a été acceptée et les deux côtés ont terminé par `game-realtime-webtransport-browser-smoke: PASS`. La preuve est conservée dans `history/0.3.5/alpha.7.fix.2.md`.
|
||||
|
||||
### `0.3.5-alpha.8` — fallback WebSocket au niveau composition
|
||||
|
||||
- tentative WebTransport ;
|
||||
- fallback WebSocket uniquement sur erreurs classifiées ;
|
||||
- branche WebTransport forcée ;
|
||||
- branche fallback forcée ;
|
||||
- erreur non-fallback visible ;
|
||||
- aucun couplage gameplay ;
|
||||
- pas de registry/framework générique.
|
||||
Tranche candidate matérialisée avec :
|
||||
|
||||
- nouveau launcher technique `game-realtime-transport-fallback-smoke`, sans modification du contrat commun ;
|
||||
- sélecteur privé WebTransport-first, non réutilisé comme framework produit ;
|
||||
- branche réelle WebTransport disponible avec round-trip et fermeture propres ;
|
||||
- branche fallback forcée par un `Timeout` WebTransport classifié, puis vraie connexion WebSocket loopback avec round-trip et fermeture propres ;
|
||||
- branche non-fallback utilisant une vraie configuration WebTransport invalide (`connect_timeout = 0`) et vérifiant que l'erreur `InvalidConfiguration` reste visible ;
|
||||
- politique volontairement étroite : seuls `Timeout` et `Io` autorisent le fallback ;
|
||||
- `Connect` explicitement exclu tant que le backend WebTransport ne distingue pas suffisamment les échecs réseau des échecs TLS/pinning ;
|
||||
- tests unitaires du sélecteur et de la matrice des `TransportErrorKind` ;
|
||||
- aucun couplage engine/gameplay, aucune registry et aucun `TransportManager`.
|
||||
|
||||
Le smoke navigateur `alpha.7` reste inchangé et continue d'échouer explicitement si WebTransport échoue ; le fallback n'existe que dans le launcher de composition `alpha.8`.
|
||||
|
||||
### `0.3.5-alpha.9` — datagram POC isolé
|
||||
|
||||
|
||||
Reference in New Issue
Block a user