124 lines
4.0 KiB
Markdown
124 lines
4.0 KiB
Markdown
<!-- file: deltas/0.3.5/alpha.7.fix.2.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# 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` :
|
|
|
|
```text
|
|
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 :
|
|
|
|
```text
|
|
Web/game-realtime-webtransport-browser-smoke
|
|
```
|
|
|
|
les déclarations générées par `wasm-bindgen` se trouvent sous :
|
|
|
|
```text
|
|
../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm/game_realtime_webtransport_browser_smoke.d.ts
|
|
```
|
|
|
|
mais `tsconfig.json` cherchait encore :
|
|
|
|
```text
|
|
../../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 à :
|
|
|
|
```text
|
|
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` :
|
|
|
|
```text
|
|
../../../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
|
|
|
|
```text
|
|
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 :
|
|
|
|
```text
|
|
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
|
|
|
|
```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 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 :
|
|
|
|
```bash
|
|
cargo run -p game-realtime-webtransport-browser-smoke
|
|
```
|
|
|
|
Terminal B :
|
|
|
|
```bash
|
|
(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 :
|
|
|
|
```text
|
|
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`.
|