Files
games/deltas/0.3.1/0-pre.1.md
2026-09-20 18:16:32 +02:00

147 lines
5.8 KiB
Markdown

<!-- file: deltas/0.3.1/0-pre.1.md -->
<!-- version: 1 -->
# Delta 0.3.1-0-pre.1
## Base
Base autoritaire : archive téléchargée depuis le tag `v0.3.0` et fournie pour la reprise.
L'archive a été testée et inspectée avant modification. Sa version workspace est `0.3.0`. Elle ne contient pas `.git`, conformément au contrat des archives taggées ; aucun état Git inaccessible n'est inventé.
## Objet
Ouvrir `0.3.1` par son gate obligatoire de cadrage : audit de baseline, revue complète des règles, inventaire de réutilisation Web/WASM, référence Tauri existante, exigences Tauri Android, sizing et planification.
Aucun scaffold `game-snake-poc-tauri`, aucun frontend Tauri Snake et aucun changement de gameplay n'est introduit dans cette tranche.
## Version
La version workspace passe de :
```text
0.3.0
```
à :
```text
0.3.1-0-pre.1
```
Les versions npm des produits existants ne changent pas : cette tranche n'est pas une release de leurs frontends et `VER-TAURI-003`/`VER-TAURI-004` interdisent une synchronisation npm cérémonielle à chaque prerelease Cargo.
## Audit de baseline
Avant modification :
```text
unzip -t : no errors
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
games.sasedev workspace audit: clean
Markdown table audit: clean (5 table(s), 197 file(s))
Distribution layout audit: clean (31 required path(s), 1 forbidden path(s) absent)
```
L'archive ne contient aucun lockfile interdit, `node_modules/`, `dist/`, `target/` ou binding WASM généré.
Le détail est conservé dans `docs/studies/024-V0_3_1_TAURI_ANDROID_SNAKE_AUDIT.md`.
## Corrections documentaires et normatives
Cette tranche :
- ferme l'index du plan `0.3.0` et ouvre le plan actif `0.3.1` ;
- ajoute l'étude de cadrage et le plan vivant `0.3.1` ;
- distingue explicitement les commandes Tauri Desktop des commandes Tauri Android ;
- ajoute `cargo tauri android init`, `cargo tauri android dev` et `cargo tauri android build` à la matrice normative ;
- corrige le prompt de reprise pour utiliser les commandes Android de Tauri au lieu des commandes Desktop ;
- clarifie la différence entre la famille conceptuelle Mobile et le contrat V1 concret `PlatformFamily::Android` ;
- distingue une sortie applicative Tauri soumise à `EngineGame::quit_requested` du Back système Android, qui reste une navigation système ;
- documente la provenance attendue `Android / Wasm / TauriWebView`.
## Réutilisation retenue
Le second host doit :
- conserver `game-snake-poc` comme gameplay unique ;
- réutiliser `game-snake-poc-wasm` plutôt que créer un second adapter ;
- généraliser seulement la provenance de host actuellement figée sur Web/Browser ;
- réutiliser sélectivement Canvas/input/assets/shell du host Web ;
- adapter lifecycle et tracing au WebView Tauri Android ;
- suivre l'organisation Tauri `lib.rs` façade + `tauri.rs` assemblage + modules propriétaires ;
- ne pas reprendre l'orchestrateur Python historique du POC Reflex.
## Référence KSP
L'archive KSP demandée est visible dans la bibliothèque, mais son export binaire vers l'environnement de génération a été refusé par le service de bibliothèque. Aucun audit intégral fictif de cette archive n'est donc déclaré.
Les extraits indexés accessibles confirment néanmoins une organisation Desk avec `tauri.rs` pour l'assemblage/lifecycle et des modules propriétaires séparés tels que `app_state.rs`, `route_runtime.rs` et `frontend_logging.rs`. Les règles locales games.sasedev restent normatives.
## Forecast
```text
0-pre.1 audit / règles / requirements / environnement / plan
0-pre.2 scaffold Tauri Android + pipeline natif + bridge Snake WASM minimal
0-pre.3 Canvas / input / assets / shell
0-pre.4 lifecycle / provenance / tracing / Back + smoke mobile
0-pre.5 conditionnel : extraction commune réellement justifiée
2-beta.1 validation large + packaging Android
2-beta.2 consolidation documentaire conditionnelle
3-rc.1 candidate gelée
0.3.1 release mécanique
```
## Validations exécutées dans l'environnement de génération
Après constitution de l'état livré, exécuter :
```bash
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 Web deltas history
python3 scripts/audit_distribution_layout.py
```
Aucun Cargo build/test/smoke final n'est attribué au générateur.
## Validation utilisateur demandée
Le manifest workspace change de version et les règles de commandes/validation sont modifiées. La gate utilisateur est :
```bash
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 Web deltas history
python3 scripts/audit_distribution_layout.py
cargo fmt --all
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
```
Aucun test workspace complet n'est imposé par `pre.1` : aucun code, comportement ni graphe de dépendances n'est modifié. Il reste réservé à un jalon planifié ou à une portée transverse non bornable.
Fournir également l'inventaire d'environnement qui conditionne `0-pre.2` :
```bash
rustc --version
cargo --version
cargo tauri --version
rustup target list --installed
node --version
npm --version
wasm-bindgen --version
java -version
printf 'JAVA_HOME=%s\nANDROID_HOME=%s\nNDK_HOME=%s\n' "$JAVA_HOME" "$ANDROID_HOME" "$NDK_HOME"
adb version
adb devices -l
emulator -list-avds
```
Cette seconde série est un inventaire de prérequis, pas une gate déclarée réussie à l'avance.
## Suite après validation
Si la gate est propre et le cadrage accepté, passer à `0.3.1-0-pre.2` pour créer le host Tauri Android minimal. Toute absence d'outil indispensable ou incohérence de règle découverte par la gate produit d'abord un `0-pre.1.fix.N` borné.