# Delta 0.1.0-2-beta.1.fix.1 ## Base Base déclarée : `0.1.0-2-beta.1`, non validée. ## Échec observé Les gates Rust, la suite workspace complète, le build WASM, les builds Desktop natifs et les builds Android passent. Le packaging Tauri échoue dans `beforeBuildCommand` pendant : ```text tsc && vite build ``` Erreur : ```text frontend/ts/game.ts:62:30 - error TS2345: Argument of type 'CanvasRenderingContext2D | null' is not assignable to parameter of type 'CanvasRenderingContext2D'. ``` ## Cause TypeScript ne conserve pas le narrowing de `context` dans la closure `pointerdown`. Le contrôle : ```text if (context === null) { ... } ``` est correct à l'exécution, mais le compilateur strict ne considère pas la variable capturée comme définitivement non-null dans la closure. ## Correctif Après le guard, le contexte est stabilisé dans une variable explicitement non-null : ```text const drawingContext: CanvasRenderingContext2D = context; ``` Toutes les closures et tous les appels `render(...)` utilisent ensuite `drawingContext`. Aucune logique gameplay, WASM, Tauri, tracing ou input n'est modifiée. ## Validation ```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 deltas history python3 scripts/audit_distribution_layout.py cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings ``` La suite workspace complète n'a pas besoin d'être rejouée pour ce fix TypeScript isolé si les gates ci-dessus restent propres. ## Packaging Tauri ```bash cd crates/apps/game-reflex-poc-tauri cargo tauri build cd ../../.. ``` Attendu : - `tsc` propre ; - `vite build` propre ; - build Rust Tauri release propre ; - génération de l'artefact Tauri. ## Android Les builds x86_64 et ARM64 de `2-beta.1` ont déjà été validés. Aucune logique Android n'est modifiée par ce fix. ## Transition Si `cargo tauri build` passe et les smokes beta restent propres, `2-beta.1.fix.1` pourra être validée. Tout nouvel échec imputable au projet reste dans `2-beta.1.fix.N`.