fix(web): regenerate stale WASM artifacts against current master #92

Merged
funman300 merged 1 commits from fix/regenerate-web-wasm into master 2026-06-22 18:56:32 +00:00
Owner

Problem

Rhys reported the web version of the game was not working.

Root cause: the committed solitaire_server/web/pkg/ artifacts were stale, not the source. They were last built 2026-06-02 (8b262af) and were never regenerated through the card_game/klondike migration. The deployed WASM was ~20 days out of sync with:

  • the migration (#82, #83, #89 all touched solitaire_wasm / solitaire_web),
  • the v4 → v5 save schema change (372b642),
  • the JS API glue#89 changed the replay move currency to KlondikeInstruction, and play.html itself changed (2cf7282).

Proof it's staleness, not a code break

  • Both solitaire_wasm and solitaire_web compile clean on wasm32-unknown-unknown.
  • After rebuilding, solitaire_wasm.js and canvas.js both changed — the deployed JS glue was calling an API the wasm no longer exposed.

Fix

Regenerated all four artifacts via build_wasm.sh (wasm-pack 0.14.0, wasm-bindgen CLI 0.2.120 matching the crate dep): canvas.* (full Bevy app) and solitaire_wasm.* (replay viewer + JS API).

Follow-ups (not in this PR)

  • CI gate: fail if pkg/ is stale relative to solitaire_core / solitaire_engine / solitaire_wasm / solitaire_web, so this can't silently rot again.
  • Runtime verification: this fixes deployment staleness; a browser/e2e run (window.__FERROUS_DEBUG__) would confirm no separate runtime bug.
  • 4 latent wasm-only unnecessary_qualification warnings in avatar_plugin (harmless, separate cleanup).

🤖 Generated with Claude Code

## Problem Rhys reported the web version of the game was not working. **Root cause: the committed `solitaire_server/web/pkg/` artifacts were stale, not the source.** They were last built 2026-06-02 (`8b262af`) and were never regenerated through the card_game/klondike migration. The deployed WASM was ~20 days out of sync with: - the migration (#82, #83, #89 all touched `solitaire_wasm` / `solitaire_web`), - the **v4 → v5 save schema** change (`372b642`), - the **JS API glue** — #89 changed the replay move currency to `KlondikeInstruction`, and `play.html` itself changed (`2cf7282`). ## Proof it's staleness, not a code break - Both `solitaire_wasm` and `solitaire_web` compile **clean** on `wasm32-unknown-unknown`. - After rebuilding, `solitaire_wasm.js` and `canvas.js` both changed — the deployed JS glue was calling an API the wasm no longer exposed. ## Fix Regenerated all four artifacts via `build_wasm.sh` (wasm-pack 0.14.0, wasm-bindgen CLI 0.2.120 matching the crate dep): `canvas.*` (full Bevy app) and `solitaire_wasm.*` (replay viewer + JS API). ## Follow-ups (not in this PR) - **CI gate:** fail if `pkg/` is stale relative to `solitaire_core` / `solitaire_engine` / `solitaire_wasm` / `solitaire_web`, so this can't silently rot again. - **Runtime verification:** this fixes deployment staleness; a browser/e2e run (`window.__FERROUS_DEBUG__`) would confirm no separate runtime bug. - 4 latent wasm-only `unnecessary_qualification` warnings in `avatar_plugin` (harmless, separate cleanup). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
funman300 added 1 commit 2026-06-22 18:55:25 +00:00
The committed `solitaire_server/web/pkg/` artifacts (canvas.* and
solitaire_wasm.*) were last built 2026-06-02 (8b262af) and predate the entire
card_game/klondike migration (#82–#90) plus the v4→v5 save-schema change. The
deployed WASM therefore no longer matched the current source, the JS API glue,
or the HTML (play.html changed in 2cf7282) — which is why the web build was
broken even though the wasm crates compile cleanly on `wasm32-unknown-unknown`.

Rebuilt all four artifacts via build_wasm.sh (wasm-pack 0.14.0,
wasm-bindgen CLI 0.2.120 matching the crate). The regenerated solitaire_wasm.js
and canvas.js glue confirm the API drift (the replay move currency became
KlondikeInstruction in #89).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
funman300 merged commit 5af69d7551 into master 2026-06-22 18:56:32 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: funman300/Ferrous-Solitaire#92