Commit Graph
240 Commits
Author SHA1 Message Date
adrianbonpin ec5ee7fb18 feat: add Cloudflare Turnstile captcha to auth flow
- Add captcha plugin to Better Auth config (cloudflare-turnstile provider)
- Create reusable TurnstileWidget component with script injection
- Integrate Turnstile into login, signup, and forgot-password forms
- Pass x-captcha-response header on protected endpoints
- Add TURNSTILE_SECRET_KEY and NEXT_PUBLIC_TURNSTILE_SITE_KEY to env
2026-06-26 21:50:45 +08:00
adrianbonpin 893f6356c6 refactor: remove all rate limiting across the application (Task 11) 2026-05-28 00:24:33 +08:00
adrianbonpin ea4907cf4b fix: resolve TypeScript errors in domain-block-api test (Task 8) 2026-05-28 00:21:04 +08:00
adrianbonpin 99d6572a3d chore: bump version to 2026.2.2, add changelog and update news (Task 7) 2026-05-28 00:18:20 +08:00
adrianbonpin 542b855555 test: add check-email regression guard for deckyvault.xyz login (Task 4) 2026-05-28 00:13:10 +08:00
adrianbonpin aa39fda696 feat: add server-side deckyvault.xyz domain block middleware (Task 3) 2026-05-28 00:12:17 +08:00
adrianbonpin c81f0defb2 feat: add deckyvault.xyz domain block to signupSchema (Task 2) 2026-05-28 00:07:55 +08:00
adrianbonpin 60f25b08f6 feat: add isDeckyVaultEmail domain validation helper (Task 1) 2026-05-28 00:06:16 +08:00
adrianbonpin eb9a185818 test: add rate limiter integration tests (Task 16) 2026-05-27 03:12:47 +08:00
adrianbonpin 8e9b16349c fix: update API version and restrict set-password to JSON body (Task 7) 2026-05-27 02:52:09 +08:00
adrianbonpin f059b00f4b refactor: consolidate check-email into Elysia rate limiter (Task 6) 2026-05-27 02:50:55 +08:00
adrianbonpin 079df570c5 test: add auth guard tests (Task 4) 2026-05-27 02:48:46 +08:00
adrianbonpin 34e66de8b3 test: add password strength tests (Task 2) 2026-05-27 02:42:34 +08:00
adrianbonpin d9be0510cc test: add validation schema tests (Task 1) 2026-05-27 02:41:17 +08:00
adrianbonpin 1ed90bb222 feat: extract sitemap utilities to lib/sitemap-utils.ts (Task 1) 2026-05-25 21:16:17 +08:00
adrianbonpin beae61a117 feat: add SEO utility functions smartTruncate and buildBreadcrumbList (Task 1) 2026-05-25 19:26:22 +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 c808747b9d fix: correct sitemap test count and steamdb version extraction 2026-05-20 02:27:56 +08:00
adrianbonpin 249b8bc7e9 feat: generate slug on non-Steam game creation 2026-05-20 02:24:05 +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 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 4465eb3a87 fix: scope performance tags (Raw Performer/Poor Performance) to handheld devices only 2026-05-16 17:27:24 +08:00
adrianbonpin 719e3f1c4a feat: add /api/dashboard/on-sale endpoint for Steam sale games 2026-05-16 17:22:08 +08:00
adrianbonpin 0450946107 feat: add admin analytics API endpoint with time-series data 2026-05-16 17:14:53 +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 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
adrianbonpin c22c1842d0 feat: add GET /api/mobile/benchmark/:entryId and GET /api/mobile/dashboard 2026-05-16 16:00:10 +08:00
adrianbonpin fda5c4d60e feat: add GET /api/mobile/search endpoint (DB-only, performance tags) 2026-05-16 15:57:28 +08:00
adrianbonpin 33f5aa8ec6 feat: add GET /api/mobile/game/:gameId consolidated endpoint 2026-05-16 15:55:22 +08:00
adrianbonpin 1ad216b9ff fix(api): fix Response.clone body consumed error on /api/openapi
Add embedSpec: true to openapi config to prevent cached Response
body from being consumed on subsequent requests. Also add
games-performance routes export and mobile-callback route.
2026-05-16 05:33:20 +08:00
adrianbonpin 1e546ca007 feat(api): add /recent-benchmarks endpoint and avg_fps to most-tested 2026-05-15 01:35:06 +08:00
adrianbonpin 45d4570665 chore: bump version to 2026.0.101, update changelog and update news 2026-05-15 01:07:42 +08:00
adrianbonpin 1ba6335ea1 feat(steamdb): register steamdb-version route in app.ts read group 2026-05-15 00:57:10 +08:00
adrianbonpin 9f8a92206c feat(steamdb): export steamdbVersionRoutes from barrel index 2026-05-15 00:56:19 +08:00
adrianbonpin 5404d52bfe feat(steamdb): create API endpoint GET /api/games/:gameId/steamdb-version 2026-05-15 00:55:30 +08:00
adrianbonpin 3eb4a49151 feat(steamdb): add unit tests for SteamDB HTML parser (5 tests) 2026-05-15 00:54:28 +08:00
adrianbonpin cdc4ed7889 feat(steamdb): create HTML scraper to extract version and build ID from SteamDB 2026-05-15 00:53:03 +08:00
adrianbonpin 7e6bab9bad feat(steamdb): create in-memory cache module with 6h TTL and cooldown tracking 2026-05-15 00:52:02 +08:00
adrianbonpin 75c38341c4 feat(security): add submission validation hardening (cooldown, FPS bounds, settings limits, notes cap) 2026-05-15 00:50:23 +08:00