diff --git a/CHANGELOG.md b/CHANGELOG.md index 2004d22..6e31dda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to DeckyVault will be documented in this file. +## [2026.0.971] - 2026-05-09 + +### Fixed +- Submit `can't access property "id", (intermediate value).data is undefined` +- Game Card Height in view extending, not fitting actual content. + ## [2026.0.97] - 2026-05-06 ### Fixed diff --git a/app/game/[id]/game-page-client.tsx b/app/game/[id]/game-page-client.tsx index 472a4d4..cfc8928 100644 --- a/app/game/[id]/game-page-client.tsx +++ b/app/game/[id]/game-page-client.tsx @@ -462,7 +462,7 @@ export function GamePageClient({ >
{/* Cover image */} -
+
{coverImage && !imgError ? ( Adrian Bonpin + +## Added + +### Updates Page +- Updates page listing all version release notes +- Update viewer with auto-extracted chapter navigation and reading progress bar +- Markdown-based content pipeline (gray-matter + remark/rehype) +- First update post converted from existing changelog \ No newline at end of file diff --git a/content/updates/2026-05-06-v2026.0.97.md b/content/updates/2026-05-06-v2026.0.97.md new file mode 100644 index 0000000..90a0eae --- /dev/null +++ b/content/updates/2026-05-06-v2026.0.97.md @@ -0,0 +1,42 @@ +--- +title: "PWA Support, Gamepad Navigation & Sitemap Reliability" +date: "2026-05-06" +version: "2026.0.97" +summary: "PWA with offline caching, gamepad navigation hook, sitemap reliability fixes, multi-genre filtering, and shareable filter URLs." +--- + +# Hello everyone! + +This release is a big one for reliability and quality-of-life. We've added PWA support so you can install DeckyVault on your device and use it offline, gamepad navigation for controller users, and a bunch of fixes around sitemap generation and filtering that should make the experience a lot more consistent. + +As always, if you run into any issues, feel free to visit the [contact page](https://deckyvault.xyz/contact) to submit a report! + +> Adrian Bonpin + +## Fixed +- Sitemap.xml used ISR caching (`revalidate = 3600`) which poisoned the cache with empty responses on DB hiccups; switched to `force-dynamic` for per-request fresh generation +- DB errors during sitemap generation were silently caught and returned as empty arrays (no games indexed); errors now propagate to observability with structured logging +- Games with NULL `syncStatus` were excluded from sitemap due to SQL `<> 'failed'` returning NULL (not TRUE) for NULL values +- Multi-genre selection in games filter panel only applied the first selected genre; now supports comma-separated OR-matching +- FPS range filter included results from non-active devices; now scoped to the selected device filter when present + +## Added +- PWA service worker with offline caching for game pages and images (stale-while-revalidate for HTML, cache-first for Steam CDN images) +- Offline fallback page (`offline.html`) when navigating without network +- Gamepad navigation hook (D-pad/left stick focus, A/B/X/Y buttons, context-aware actions) +- Structured logging for sitemap generation metrics (games, devices, timestamps) via `console.info` JSON +- Filter state synchronized to URL query parameters for shareable/bookmarkable filtered views +- WCAG 2.1 AA touch targets (44×44px) on all games page filter controls + +## Changed +- Web manifest icons now declare explicit 192px (maskable) and 512px (any) sizes +- Viewport meta tag added with `viewport-fit=cover` and `user-scalable=no` for installed PWA feel +- Apple mobile web app meta tags added for iOS home screen support +- Loading a saved filter now auto-collapses the filter panel for visual feedback +- Sitemap generation flattened into a single function in `app/sitemap.ts` (removed delegation to `lib/sitemap/`) + +## Technical +- Removed `lib/sitemap/fetch-dynamic-entries.ts`, `lib/sitemap/build-static-entries.ts`, `lib/sitemap/validate-image-url.ts` +- Removed `app/api/revalidate-sitemap/` route (no longer needed with `force-dynamic`) +- Added `@serwist/next`, `@serwist/precaching`, `@serwist/sw`, `@serwist/strategies`, `@serwist/expiration`, `@serwist/routing`, and `serwist` dependencies +- Build script updated to use `--webpack` flag for `@serwist/next` compatibility \ No newline at end of file diff --git a/content/updates/2026-05-09-v2026.0.971.md b/content/updates/2026-05-09-v2026.0.971.md new file mode 100644 index 0000000..43605a1 --- /dev/null +++ b/content/updates/2026-05-09-v2026.0.971.md @@ -0,0 +1,18 @@ +--- +title: "Submit Bug Fix & Game Card Layout Fix" +date: "2026-05-09" +version: "2026.0.971" +summary: "Fixed submit wizard crash when creating new game versions and game card height issue in grid views." +--- + +# Hello everyone! + +A quick patch release to fix two issues that were affecting the submit flow and the games list layout. + +As always, if you run into any issues, feel free to visit the [contact page](https://deckyvault.xyz/contact) to submit a report! + +> Adrian Bonpin + +## Fixed +- Submit wizard crashed with `can't access property "id", (intermediate value).data is undefined` when creating a new game version — the frontend expected a `{ data: { id } }` wrapper but the API returns the created version object directly +- Game Card height in grid views was extending beyond actual content, causing inconsistent row alignment \ No newline at end of file