sync-data.yml now writes static/champions.json. This is the edit that had to
land with the deletion of public/: the workflow reports success regardless of
which path it writes, so a miss would have left the weekly sync green while
the live game 404'd on data load.
deploy.yml publishes build/ and passes BASE_PATH. Adds ci.yml, which runs
test, lint, and build on pull_request and pushes to main -- the repo had no
PR-triggered workflow before, so 'green before merge' was previously
unenforceable.
Deletes app/, components/, lib/, public/, next.config.mjs and
postcss.config.mjs, drops the Next and React dependencies, and swaps ESLint
onto eslint-plugin-svelte. sharp and unrs-resolver left pnpm's allowBuilds
because both arrived with Next and pnpm why now reports no dependents.
Add svelte.config.js (adapter-static, BASE_PATH-driven base), vite.config.js
(Tailwind v4 Vite plugin ahead of sveltekit), the src/ shell, and static/
holding a copy of champions.json plus .nojekyll.
Declares "type": "module" so Vite can load the .js config files; Next.js was
only unaffected because all its configs use .mjs. jsconfig keeps the @/* alias
so pnpm next:build stays runnable for side-by-side comparison during the port.
Next.js scripts move to next:* and both toolchains build from this commit.
Cover classic-mode comparison rules, game-engine state machine and
localStorage persistence, and champion-data search/seeding/loading with
Vitest. Storage keys are asserted literally so returning players' saved
games and stats cannot silently break.
Node environment with a hand-rolled localStorage stub; fixtures are four
hand-written champions so the weekly data sync cannot destabilise the
suite.
- bump actions/checkout to v7 and actions/setup-node to v7
- bump next to 16.2.10, react and react-dom to 19.2.7
- bump eslint-config-next to 16.2.10, tailwindcss and
@tailwindcss/postcss to 4.3.3, eslint to 9.39.5
- override @babel/core, js-yaml, and postcss to patched versions
- move pnpm build allowlist to pnpm-workspace.yaml
- Replace vanilla HTML/CSS/JS with Next.js App Router + React components
- Game logic (champion-data, game-engine, classic-mode) moved to lib/
- UI split into modular components (game-board, champion-search, guess-grid, etc.)
- Add Tailwind CSS v4 with CSS variables for theming
- Immutable state updates, fetch deduplication, next/image for CDN images
- champions.json moved from assets/ to public/