4.0 KiB
Delta 0.3.5-alpha.7.fix.2
Base requise
0.3.5-alpha.7.fix.1, dont la gate utilisateur du 2026-09-22 valide fmt, les trois audits, cargo check --workspace, Clippy strict et le build WASM de game-realtime-webtransport-browser-smoke.
Le premier correctif permet aussi au sous-script wasm:build de terminer : la compilation release et wasm-bindgen trouvent désormais l'artefact Cargo et génèrent les bindings dans le build externe. La gate échoue ensuite uniquement pendant tsc :
frontend/ts/main.ts:4:41 - error TS2307: Cannot find module '@webtransport-browser-smoke-wasm' or its corresponding type declarations.
frontend/ts/main.ts:49:19 - error TS7006: Parameter 'message' implicitly has an 'any' type.
frontend/ts/main.ts:52:20 - error TS7006: Parameter 'caughtError' implicitly has an 'any' type.
alpha.7.fix.1 n'est donc pas historisée comme validée avant ce correctif.
Cause
Le chemin littéral corrigé dans package.json n'avait pas été réconcilié avec le mapping TypeScript. Depuis :
Web/game-realtime-webtransport-browser-smoke
les déclarations générées par wasm-bindgen se trouvent sous :
../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm/game_realtime_webtransport_browser_smoke.d.ts
mais tsconfig.json cherchait encore :
../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm/game_realtime_webtransport_browser_smoke.d.ts
L'import aliasé ne pouvant pas être résolu, TypeScript perdait aussi la signature générée de run_browser_smoke; les paramètres des callbacks de Promise apparaissaient alors comme any implicites.
Correction
La version technique passe à :
0.3.5-alpha.7.fix.2
Le mapping paths de @webtransport-browser-smoke-wasm utilise désormais le même build root externe réel que package.json et vite.config.ts :
../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm/game_realtime_webtransport_browser_smoke.d.ts
DIST-LAYOUT-086 ancre ce chemin TypeScript pour empêcher une régression silencieuse.
Aucun code Rust, TypeScript applicatif, protocole WebTransport, framing, deadline, certificat, pin SHA-256, API publique ou dépendance n'est modifié.
Fichiers modifiés
Cargo.toml
README.md
Web/game-realtime-webtransport-browser-smoke/package.json
Web/game-realtime-webtransport-browser-smoke/tsconfig.json
docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md
scripts/audit_distribution_layout.py
Nouveau fichier :
deltas/0.3.5/alpha.7.fix.2.md
Aucun fichier history/0.3.5/alpha.7.fix.1.md n'est créé avant une gate entièrement verte.
Plan
Le forecast fonctionnel ne change pas. Après validation du build frontend puis du smoke navigateur réel, 0.3.5-alpha.8 reste la tranche du fallback WebSocket au niveau composition.
Validation attendue
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 build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown
(cd Web/game-realtime-webtransport-browser-smoke && npm install && npm run build)
Puis exécuter le smoke runtime réel avec deux terminaux.
Terminal A :
cargo run -p game-realtime-webtransport-browser-smoke
Terminal B :
(cd Web/game-realtime-webtransport-browser-smoke && npm run dev)
Ouvrir l'URL OPEN=... imprimée par le Terminal A. Le résultat attendu dans la page puis dans le Terminal A reste :
game-realtime-webtransport-browser-smoke: PASS
Après validation
Créer history/0.3.5/alpha.7.fix.2.md à partir des résultats réellement fournis, puis ouvrir directement 0.3.5-alpha.8.