Files
games/deltas/0.3.0/0-pre.5.fix.1.md

2.8 KiB

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 :

rename: { stripBase: true }

Le contrat devient explicitement :

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 :

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.