Commit Graph
671 Commits
Author SHA1 Message Date
adrianbonpin 49800c3cc2 test: final metadata integration sweep — verify all page titles (Task 11) 2026-05-25 19:42:05 +08:00
adrianbonpin ad7c361d0d feat: add AggregateRating JSON-LD to game detail pages (Task 10) 2026-05-25 19:40:52 +08:00
adrianbonpin d4ff5a26a6 feat: add BreadcrumbList JSON-LD to game, games, and devices pages (Task 9) 2026-05-25 19:39:43 +08:00
adrianbonpin 183bdc96c0 feat: add Organization JSON-LD to homepage (Task 8) 2026-05-25 19:38:02 +08:00
adrianbonpin 6b25e5918b fix: use smartTruncate for game meta descriptions, prevent mid-word cutoff (Task 7) 2026-05-25 19:36:27 +08:00
adrianbonpin 6cd0fc6b6f fix: verify H1 uniqueness on game detail pages - no duplicate found (Task 6) 2026-05-25 19:35:12 +08:00
adrianbonpin 2976a34b46 fix: add canonical URL, preconnect hints, remove user-scalable=no (Task 5) 2026-05-25 19:33:21 +08:00
adrianbonpin a2e94ca328 fix: add metadata exports for /compare and /profile pages (Task 4) 2026-05-25 19:31:38 +08:00
adrianbonpin b14f03e2b7 fix: correct title duplication on /games and /devices pages (Task 3) 2026-05-25 19:30:19 +08:00
adrianbonpin db9a9150e8 test: add metadata integration test scaffold for SEO fixes (Task 2) 2026-05-25 19:28:43 +08:00
adrianbonpin beae61a117 feat: add SEO utility functions smartTruncate and buildBreadcrumbList (Task 1) 2026-05-25 19:26:22 +08:00
adrianbonpin 2afee33fb0 fix: update vitest config (exclude .worktrees, revert package.json test scripts to vitest) 2026-05-25 19:24:41 +08:00
adrianbonpin 86fc0c2999 fix: resolve pre-existing test failures in auth, steam, and auto-pin tests 2026-05-25 19:20:54 +08:00
adrianbonpin e44a85fe94 chore: merge dev -> prod - robust sitemap + error handling 2026-05-23 15:37:30 +08:00
adrianbonpin 8948113c0f feat: robust sitemap with error handling, missing pages, and full test coverage
- Add querySafe() wrapper with 15s timeout so DB failures don't crash the sitemap
- Add missing pages: /compare, /search, /updates/[slug] (from markdown)
- Bump game page priority to 0.8; add lastModified where available
- Expand test suite from 4 to 10 tests covering all data sources
- All 10 tests passing
2026-05-23 15:37:17 +08:00
adrianbonpin 6d3f72d6c1 chore: cleanup whitespace 2026-05-20 02:30:13 +08:00
adrianbonpin c808747b9d fix: correct sitemap test count and steamdb version extraction 2026-05-20 02:27:56 +08:00
adrianbonpin 8da0dce723 chore: bump version to 2026.2.0 with CHANGELOG and update news 2026-05-20 02:25:04 +08:00
adrianbonpin 249b8bc7e9 feat: generate slug on non-Steam game creation 2026-05-20 02:24:05 +08:00
adrianbonpin e61071007e feat: share button uses steamAppId/slug instead of UUID 2026-05-20 02:23:09 +08:00
adrianbonpin 1929572060 feat: add /app/[steamid] → /game/[steamid] ProtonDB redirect 2026-05-20 02:21:53 +08:00
adrianbonpin d8ff20f3b1 feat: extend resolveGame() with slug fallback lookup 2026-05-20 02:21:17 +08:00
adrianbonpin 61d516f1b1 feat(db): backfill slugs for existing non-Steam games 2026-05-20 02:19:42 +08:00
adrianbonpin b835ac678f feat(db): add slug column to games table 2026-05-20 02:17:15 +08:00
adrianbonpin e5f671a992 feat: add multi-strategy version fetchers, disable auto-fetch by default
- Add 4 version-fetch strategies (UpToDateCheck API, Store Page Scrape,
  Community Hub Scrape, Store API Heuristic) — no Steam API key needed
- Create orchestrator that tries all strategies, prefers named version
  over build ID
- Add test page at /test-version-fetchers for comparing strategies
- Add standalone /api/version-test endpoint (direct Steam App ID, no DB)
- Update /api/games/:id/steamdb-version to use new strategies
- Disable auto-fetch on submit page by default (NEXT_PUBLIC_VERSION_AUTO_FETCH=true to enable)
- SteamDB scraping blocked by Cloudflare; strategies preserved for later enablement
2026-05-16 20:13:23 +08:00
adrianbonpin 88a098f387 fix: enforce max screenshot limit (2) on upload area and existing remove button 2026-05-16 19:13:16 +08:00
adrianbonpin f4eab9c8e0 fix: show existing screenshots in edit mode, fix drag reorder jank, bump version to 2026.1.102 2026-05-16 18:33:56 +08:00
adrianbonpin 0ff27b613d chore: remove public community dashboard page 2026-05-16 18:10:29 +08:00
adrianbonpin 3363b9161d chore: bump version to 2026.1.0 and write changelog 2026-05-16 17:40:42 +08:00
adrianbonpin 8e88d6f759 test: add auto-pin threshold edge case tests 2026-05-16 17:37:51 +08:00
adrianbonpin 1b7600a2f6 feat: support removing screenshots during entry edit 2026-05-16 17:36:06 +08:00
adrianbonpin 99b89347d0 feat: show existing screenshots when editing entries with remove support 2026-05-16 17:33:36 +08:00
adrianbonpin 29a8ec667f fix: prevent text selection and touch interference on drag handles 2026-05-16 17:31:30 +08:00
adrianbonpin fb892265c4 fix: scope games listing performance tags to handheld devices 2026-05-16 17:29:47 +08:00
adrianbonpin 4465eb3a87 fix: scope performance tags (Raw Performer/Poor Performance) to handheld devices only 2026-05-16 17:27:24 +08:00
adrianbonpin aef9802263 feat: add Steam sale section to landing page 2026-05-16 17:24:43 +08:00
adrianbonpin 719e3f1c4a feat: add /api/dashboard/on-sale endpoint for Steam sale games 2026-05-16 17:22:08 +08:00
adrianbonpin d71cb27f54 feat: make public dashboard full-width matching game details styling 2026-05-16 17:20:38 +08:00
adrianbonpin 5fe527552b feat: add ban reason, expiry, and filter tabs to user management 2026-05-16 17:18:57 +08:00
adrianbonpin 9e98af1053 feat: add analytics page with time-series charts to manage panel 2026-05-16 17:16:51 +08:00
adrianbonpin 0450946107 feat: add admin analytics API endpoint with time-series data 2026-05-16 17:14:53 +08:00
adrianbonpin e089fb2cf7 feat: add server-side role guard to manage layout (moderator+) 2026-05-16 17:13:03 +08:00
adrianbonpin 4ec97a92ab feat: conditionally hide admin-only nav items for moderator role 2026-05-16 17:11:35 +08:00
adrianbonpin 92d16273d7 feat: gate destructive moderation endpoints to moderator+ role 2026-05-16 17:09:07 +08:00
adrianbonpin 23bbfc0317 feat: register moderator role in auth config and add guard 2026-05-16 17:06:24 +08:00
adrianbonpin 0f018b376e feat: add moderator role to permissions model 2026-05-16 17:04:27 +08:00
adrianbonpin 64b026386d feat: add 5-min in-memory cache to dashboard stats endpoint 2026-05-16 17:02:48 +08:00
adrianbonpin e7a48d4e6f feat: add performance and moderation index migration 2026-05-16 17:00:41 +08:00
adrianbonpin 3388bf42b5 feat: add database indexes for frequent query patterns 2026-05-16 16:57:23 +08:00
adrianbonpin 6737761151 docs: add OpenAPI descriptions and response schemas for all routes 2026-05-16 16:03:52 +08:00