2.2 KiB
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 :
tsc && vite build
Erreur :
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 :
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 :
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
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
cd crates/apps/game-reflex-poc-tauri
cargo tauri build
cd ../../..
Attendu :
tscpropre ;vite buildpropre ;- 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.