# 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`.