Repository navigation
Spork Android android-20260728204111
·
6 commits
to main
since this release
perf(routes): lazy-load every game screen to halve first-load JS (#32) Only ChessAttack was code-split; every other game's list + play screen was eagerly imported into the main bundle, so a visitor landing on Home downloaded all eight game engines (the Quizzes/map renderer, Wordle's word list, etc.) before seeing anything. Now each game route is lazy-loaded behind the shared LazyRoute Suspense boundary — a visitor pulls only the chunk for the game they open. - Main `index` chunk: 795 kB → 408 kB raw (249 kB → 120 kB gzip), a 52% cut to first-load JS. The heavy renderers (Quizzes Play 243 kB, Wordle 107 kB) now load on demand. - Preserves the IonRouterOutlet contract: gameRoutes() still returns an ARRAY of direct <Route> elements (the GameRoutes regression guard still passes), with a small gameRoute() helper wrapping each lazy component in LazyRoute. - Harden three flaky game e2e steps (steps/quizzle/acrostic): accumulated daily puzzles can share a topic with the static seed but have different content, so target the static seed (UUID href), not a `daily-*` one, disambiguating the strict-mode match the topic filter otherwise hit.