# 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.