0.3.0-0-pre.5-fix.1
This commit is contained in:
77
deltas/0.3.0/0-pre.5.fix.1.md
Normal file
77
deltas/0.3.0/0-pre.5.fix.1.md
Normal file
@@ -0,0 +1,77 @@
|
||||
<!-- file: deltas/0.3.0/0-pre.5.fix.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.0-0-pre.5.fix.1
|
||||
|
||||
## Objectif
|
||||
|
||||
Corriger uniquement l'exposition des assets runtime du host Snake Web en développement, après validation partielle de `0-pre.5`.
|
||||
|
||||
## Défaut confirmé
|
||||
|
||||
`cargo`, WASM, `wasm-bindgen` et le build Vite passent. Sous `vite dev`, le frontend échoue néanmoins avant le démarrage du jeu lors de `fetchJson()` : les routes `common/data/runtime.json` et `game/data/game.json` ne sont pas servies comme attendu.
|
||||
|
||||
Les targets `vite-plugin-static-copy` utilisent des chemins source absolus. Le plugin conserve la structure source par défaut ; le `dest` seul ne constitue donc pas le contrat de route recherché.
|
||||
|
||||
## Correction
|
||||
|
||||
Les deux targets Vite utilisent désormais :
|
||||
|
||||
```text
|
||||
rename: { stripBase: true }
|
||||
```
|
||||
|
||||
Le contrat devient explicitement :
|
||||
|
||||
```text
|
||||
assets/common/data/runtime.json -> /common/data/runtime.json
|
||||
assets/game-snake-poc/data/game.json -> /game/data/game.json
|
||||
```
|
||||
|
||||
Ces routes doivent être identiques sous `vite dev` et dans `dist/`. Aucun asset source n'est dupliqué sous `Web/`.
|
||||
|
||||
## Garde-fou
|
||||
|
||||
`audit_distribution_layout.py` exige désormais `stripBase: true` sur les deux targets, en plus des namespaces `common/data` et `game/data`.
|
||||
|
||||
## Historique
|
||||
|
||||
`history/0.3.0/0-pre.5.md` consigne la validation partielle fournie par l'utilisateur et le défaut runtime exact.
|
||||
|
||||
## Non modifié
|
||||
|
||||
- gameplay Snake ;
|
||||
- adapter WASM/provenance ;
|
||||
- lifecycle/resize ;
|
||||
- logging frontend ;
|
||||
- SimpleBar/Canvas ;
|
||||
- runner Desktop SDL3 ;
|
||||
- ROADMAP et CHANGELOG.
|
||||
|
||||
## Validation demandée
|
||||
|
||||
Depuis la racine :
|
||||
|
||||
```bash
|
||||
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 Web deltas history
|
||||
python3 scripts/audit_distribution_layout.py
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p engine-v1-platform-api --all-targets --all-features
|
||||
cargo test -p game-snake-poc-wasm --all-targets --all-features
|
||||
cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown
|
||||
wasm-bindgen ../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm --target web --out-dir ../builds/sasedev-games/game-snake-poc-web/wasm --out-name game_snake_poc_wasm
|
||||
cargo tree -p game-snake-poc-wasm --edges normal
|
||||
(cd Web/game-snake-poc && npm install && npm run build && npm run dev)
|
||||
```
|
||||
|
||||
Smoke sur `http://127.0.0.1:1434/main.html` :
|
||||
|
||||
1. `Assets` doit passer de `chargement…` à `snake / engine-v1` ;
|
||||
2. Snake doit démarrer ;
|
||||
3. la provenance doit quitter `unknown / unknown` dès qu'une classe/device et une entrée sont observées ;
|
||||
4. revalider lifecycle/resize/SimpleBar/Canvas/contrôles ;
|
||||
5. terminer par `cargo run -p game-snake-poc-desktop` pour la non-régression SDL3.
|
||||
Reference in New Issue
Block a user