0.3.1-2-beta.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# Plan v0.3.1 — second host Snake Tauri Android
|
||||
|
||||
@@ -127,7 +127,7 @@ Cette tranche doit rendre le second host fonctionnel de bout en bout et suffisam
|
||||
|
||||
La gate AVD `0-pre.4` est propre. Le smoke supplémentaire sur Galaxy S9+ ARM64 a confirmé compilation `aarch64-linux-android`, installation, Canvas, assets, WASM, touch et lifecycle visible/hidden via un tunnel ADB USB. Deux écarts ont été observés : le HMR utilisait encore un port WebSocket séparé, défaut local corrigé par `0-pre.4.fix.1`, et le Back système a déclenché un abort natif `FORTIFY: pthread_mutex_lock called on a destroyed mutex` pendant le teardown de l'Activity/WebView. Les logs placent cet abort après `visibility hidden` et avant `pagehide`, sans `runtime disposed`.
|
||||
|
||||
`0-pre.4.fix.1` ne tente pas de migrer manuellement Tauri/Wry ni de patcher `gen/android`. Le smoke résout `tauri 2.11.5` avec `wry 0.55.1`; les versions Wry postérieures comportent des changements Android de lifecycle et de synchronisation, mais elles ne doivent pas être forcées derrière la pile stable Tauri actuelle sans intégration upstream. Le crash Back réel reste donc une limite externe du POC à retester avec l'APK autonome `2-beta.1`.
|
||||
`0-pre.4.fix.1` ne tente pas de migrer manuellement Tauri/Wry ni de patcher `gen/android`. Il unifie HTTP et HMR sur le port `1436` et sa gate réelle ARM64 est validée : le frontend atteint `ready`, le touch est observé et l'erreur WebSocket Vite a disparu. Le Back n'a pas reproduit l'abort `FORTIFY` du smoke précédent et est allé jusqu'au détachement de la fenêtre ; le défaut reste néanmoins considéré comme potentiellement intermittent jusqu'au smoke de l'APK autonome `2-beta.1`.
|
||||
|
||||
### `0-pre.5` — extraction conditionnelle
|
||||
|
||||
@@ -139,6 +139,8 @@ Si aucune extraction n'est justifiée, cette tranche est omise.
|
||||
|
||||
### `2-beta.1` — validation large et packaging Android
|
||||
|
||||
Tranche ouverte après validation de `0-pre.4.fix.1`. Aucun `0-pre.5` n'est justifié : aucune extraction Web/Tauri ne conserve assez de valeur maintenant que le host Android Tauri est explicitement un POC de référence.
|
||||
|
||||
Prévoir :
|
||||
|
||||
- audits statiques applicables ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/001-VALIDATION_GATES.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Gates de validation
|
||||
|
||||
@@ -68,7 +68,7 @@ adb -s <serial> reverse tcp:1436 tcp:1436
|
||||
(cd crates/apps/game-snake-poc-tauri && cargo tauri android dev --host 127.0.0.1)
|
||||
```
|
||||
|
||||
La validation réelle de `0-pre.4` a confirmé le chemin ARM64 `aarch64-linux-android`, mais a aussi observé un abort natif lors du Back/teardown WebView sur le Galaxy S9+ de validation. Tant que ce comportement n'est pas résolu upstream ou reproduit sur l'APK autonome, il est enregistré comme limite du POC et ne doit pas être masqué par une modification du scaffold `gen/android`.
|
||||
La validation réelle de `0-pre.4` a confirmé le chemin ARM64 `aarch64-linux-android`. Un premier smoke a observé un abort natif lors du Back/teardown WebView ; après correction du tunnel HMR dans `0-pre.4.fix.1`, un nouveau smoke ARM64 n'a pas reproduit cet abort et est allé jusqu'au détachement de la fenêtre. Le risque reste à revalider sur l'APK autonome beta et ne doit pas être masqué par une modification du scaffold `gen/android`.
|
||||
|
||||
Le host navigateur direct Snake possède désormais une gate réelle. Lorsqu'il est touché, construire d'abord l'adapter WASM et ses bindings hors dépôt, puis le frontend :
|
||||
|
||||
@@ -85,7 +85,32 @@ npm run build
|
||||
|
||||
Le smoke direct utilise ensuite `npm run dev` et `http://127.0.0.1:1434/main.html`. Pour le POC Snake feature-complete, vérifier aussi : assets `common` + `game` chargés avant le statut `Prêt`, provenance `Web/Wasm/Browser` visible et mise à jour par l'input, pause sans rattrapage lors d'un masquage d'onglet, reprise propre, resize sans tick artificiel, SimpleBar, clavier et contrôles pointer/tactiles.
|
||||
|
||||
Lorsque `0-pre.5` touche la frontière plateforme du bridge WASM, exécuter également `cargo test -p engine-v1-platform-api`, `cargo test -p game-snake-poc-wasm`, puis un smoke `cargo run -p game-snake-poc-desktop` pour confirmer la non-régression SDL3. Les frontends Tauri restent pilotés par leurs hooks Tauri et ne reprennent pas cette gate manuelle.
|
||||
Si une future tranche touche de nouveau la frontière plateforme du bridge WASM, exécuter également `cargo test -p engine-v1-platform-api`, `cargo test -p game-snake-poc-wasm`, puis un smoke `cargo run -p game-snake-poc-desktop` pour confirmer la non-régression SDL3. Les frontends Tauri restent pilotés par leurs hooks Tauri et ne reprennent pas cette gate manuelle.
|
||||
|
||||
## Gate beta du POC Snake Tauri Android
|
||||
|
||||
À l'entrée en `0.3.1-2-beta.1`, la gate ajoute la suite Cargo workspace complète et un packaging Android autonome aux audits/check/Clippy habituels :
|
||||
|
||||
```bash
|
||||
cargo test --workspace --all-targets --all-features
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64
|
||||
(cd crates/apps/game-snake-poc-tauri && npm install)
|
||||
(cd crates/apps/game-snake-poc-tauri && \
|
||||
cargo tauri android build --debug --apk --target aarch64 --target x86_64)
|
||||
```
|
||||
|
||||
Le hook Tauri `beforeBuildCommand` possède le build WASM release, `wasm-bindgen`, TypeScript et Vite ; `npm run build` n'est donc pas une gate manuelle. Le build beta vise un APK Debug contenant `arm64-v8a` et `x86_64`; aucun AAB n'est requis à ce jalon.
|
||||
|
||||
Après packaging, utiliser le chemin d'APK affiché par Tauri, vérifier son contenu ABI, puis installer le même package sur l'AVD x86_64 et l'appareil ARM64 réel :
|
||||
|
||||
```bash
|
||||
unzip -l <apk> | grep -E 'lib/(arm64-v8a|x86_64)/libgame_snake_poc_tauri_lib\.so'
|
||||
adb -s <serial> install -r <apk>
|
||||
adb -s <serial> shell am start -n com.sasedev.games.snake.tauri/.MainActivity
|
||||
```
|
||||
|
||||
Le smoke autonome vérifie Canvas, assets, WASM, input, provenance, background/foreground, reprise sans rattrapage, resize/rotation si disponible et plusieurs sorties Back. Il ne doit utiliser ni serveur Vite ni `adb reverse`.
|
||||
|
||||
## Gate beta du POC Snake Web
|
||||
|
||||
|
||||
Reference in New Issue
Block a user