78 lines
2.8 KiB
Markdown
78 lines
2.8 KiB
Markdown
<!-- 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.
|