# Historique 0.3.1-0-pre.2 ## Statut Gate utilisateur exécutée le 2026-09-20 : validation partielle, `0.3.1-0-pre.2.fix.1` requis avant toute progression vers `0-pre.3`. ## Résultats propres Les contrôles suivants passent sur `0-pre.2` : ```text General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) games.sasedev workspace audit: clean Markdown table audit: clean Distribution layout audit: clean cargo fmt --all: clean cargo fmt --all -- --check: clean cargo check --workspace: terminé avec un warning build.rs cargo test -p game-snake-poc-wasm --all-targets --all-features: 5 passed cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown: clean wasm-bindgen: clean Web/game-snake-poc npm install + npm run build: clean crates/apps/game-snake-poc-tauri npm install: clean cargo tauri android init: succès ``` Le build Web direct reste donc non régressé et l'initialisation Android Tauri produit correctement le projet Android local. ## Défaut Rust `cargo clippy --workspace --all-targets --all-features -- -D warnings` échoue sur : ```text crates/apps/game-snake-poc-tauri/build.rs missing documentation for the crate ``` Pendant la compilation Android, le macro `tauri::mobile_entry_point` révèle également un `unused_must_use` parce que le point d'entrée annoté retourne `Result<(), String>`. Le fix sépare le wrapper mobile `()` de l'exécution interne retournant `Result` afin de conserver la propagation d'erreur sur Desktop sans laisser le point d'entrée Android ignorer implicitement le résultat. ## Défaut Gradle / Java La CLI Tauri `2.11.3` sélectionne correctement le NDK side-by-side installé : ```text Using installed NDK: .../AndroidSDK/ndk/30.0.14904198 ``` Elle injecte ensuite elle-même `NDK_HOME` dans le sous-processus Android. L'absence de `NDK_HOME` dans l'environnement utilisateur n'est donc pas la cause du défaut. `cargo tauri android dev` échoue plus tard lorsque le wrapper généré télécharge Gradle `8.14.3` puis l'exécute avec OpenJDK `25.0.4.1` : ```text Unsupported class file major version 69 ``` Le Gradle global présent dans le `PATH` n'est pas utilisé, puisque Tauri lance `gen/android/gradlew`. ## Direction du fix Le correctif suit la migration Android déjà retenue upstream par Tauri : ```text Gradle 9.6.1 Android Gradle Plugin 9.3.1 Kotlin Gradle Plugin 2.2.10 ``` Le scaffold `gen/android` reste généré et ignoré. Un hook Node idempotent adapte le projet généré avant les hooks WASM/Vite, y compris les usages Gradle 9 supprimés dans `buildSrc`. Le build script Rust adapte après `tauri_build::build()` le bridge Gradle généré par `tauri-build 2.6.3`. Aucun gameplay, Canvas, input, asset ou lifecycle de `0-pre.3` n'est ouvert par ce fix.