# Historique 0.3.3-0-pre.2 ## Statut `0.3.3-0-pre.2` a été validé par l'utilisateur le 2026-09-21. La preuve Snake ARM64 confirme que `assembleDebug` possède désormais le build Rust/SDL3 sans exécution préalable de `scripts/build_android_rust.py`. Aucun `0-pre.2.fix.N` n'est requis ; la suite peut ouvrir `0-pre.3`. ## Gate statique et Rust La gate fournie est propre : ```text General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) games.sasedev workspace audit: clean Markdown table audit: clean (5 table(s), 235 file(s)) Distribution layout audit: clean (53 required path(s), 1 forbidden path(s) absent) cargo fmt --all: clean cargo fmt --all -- --check: clean cargo check --workspace: clean cargo clippy --workspace --all-targets --all-features -- -D warnings: clean ``` Le workspace compilé porte bien `0.3.3-0-pre.2` sur les crates concernées. ## Preuve Gradle/JDK du jalon Le wrapper introduit pour cette preuve a été contrôlé avant build : ```text Gradle Wrapper JAR SHA-256 497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7 Gradle distribution 9.6.0 Gradle binary ZIP SHA-256 bbaeb2fef8710818cf0e261201dab964c572f92b942812df0c3620d62a529a01 ``` `./gradlew --version` a téléchargé puis exécuté Gradle `9.6.0`. Pour cette gate, le launcher et le daemon utilisaient Temurin `17.0.20.1` via `JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64`. Cette combinaison décrit la preuve `0-pre.2`; elle n'est pas conservée comme contrainte exacte du pipeline natif après la décision de toolchain prise pour `0-pre.3`. ## Build Snake ARM64 La commande : ```text :game-snake-poc:assembleDebug ``` a déclenché `buildDebugSasedevRustArm64V8a`, compilé `game-android-entrypoint` avec `cargo ndk` pour `aarch64-linux-android`, copié les bibliothèques sous `build/generated/sasedevNative/...` et terminé avec : ```text BUILD SUCCESSFUL 54 actionable tasks: 54 executed ``` Aucune commande Python de build natif n'a été exécutée avant Gradle. ## Inspection APK L'artefact produit est : ```text Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk ``` L'inspection confirme les deux bibliothèques ARM64 attendues : ```text lib/arm64-v8a/libSDL3.so lib/arm64-v8a/libgame_android_entrypoint.so ``` Aucune bibliothèque `x86_64`, `armeabi-v7a` ou `x86` n'est présente dans cette preuve mono-ABI. Les lignes répétées dans la sortie utilisateur provenaient des deux `grep -Fx` exécutés après le listing initial, pas de doublons internes à l'APK. ## Transmission vers 0-pre.3 Le task wiring, l'extraction SDL3, le linkage Rust, le staging `jniLibs` généré et le packaging ARM64 sont donc prouvés. `0-pre.3` peut élargir ce même contrat à `arm64-v8a + x86_64`. Après cette validation, la politique toolchain a été révisée explicitement : le projet Android SDL3 natif doit accepter le Gradle système lorsqu'il est `>= 9.6.0` et utiliser le JDK normal de l'environnement, sans `export JAVA_HOME` spécifique au projet. Les contraintes historiques du POC Tauri restent séparées.