Files
games/history/0.3.0/0-pre.4.fix.1.md

47 lines
2.0 KiB
Markdown

<!-- file: history/0.3.0/0-pre.4.fix.1.md -->
<!-- version: 1 -->
# Historique 0.3.0-0-pre.4.fix.1
## Statut
Validation partielle le 2026-09-20 : les gates Rust/WASM et les audits sont propres, mais `npm run build` échoue encore sur deux erreurs TypeScript strictes. La tranche déclenche `0-pre.4.fix.2`.
## Validation utilisateur
Les validations suivantes ont passé sur `0.3.0-0-pre.4.fix.1` :
```text
cargo fmt --all: clean
cargo fmt --all -- --check: clean
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
games.sasedev workspace audit: clean
Markdown table audit: clean (5 table(s), 183 file(s))
Distribution layout audit: clean (27 required path(s), 1 forbidden path(s) absent)
cargo check --workspace: clean
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
cargo test -p game-snake-poc-wasm: 2 passed, 0 failed
cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown: clean
wasm-bindgen --target web: clean
cargo tree -p game-snake-poc-wasm --edges normal: expected dependencies only
npm install: 5 packages added, 49 packages audited, 0 vulnerability
```
`npm install` a aussi signalé que le script d'installation de `@parcel/watcher@2.6.0` n'était pas encore couvert par `allowScripts`. Ce warning n'a pas interrompu l'installation et n'est pas traité comme l'échec de cette tranche.
## Défauts observés
`npm run build` a échoué avec deux erreurs :
```text
TS7016: Could not find a declaration file for module '@snake-wasm'.
TS2345: CanvasRenderingContext2D | null is not assignable to CanvasRenderingContext2D.
```
Le premier défaut vient du mapping TypeScript vers le fichier JavaScript généré par `wasm-bindgen` au lieu de sa déclaration `.d.ts`. Le second vient du narrowing du résultat de `canvas.getContext("2d")` qui n'est pas conservé jusque dans le callback de frame sous la configuration TypeScript courante.
## Suite
`0-pre.4.fix.2` corrige strictement ces deux erreurs puis rejoue `npm run build` et le smoke navigateur avant ouverture de `0-pre.5`.