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
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
c17ce403dd
docs: mark all plan tasks as complete in implementation plan
2026-05-15 01:39:45 +08:00
adrianbonpin
58c2e81366
docs: update changelog and update news with landing page section changes and performance badges
2026-05-15 01:37:57 +08:00
adrianbonpin
4ace385a6e
feat(landing): add recently added benchmarks section, reorder sections, add PlayabilityBadge and performance tags to cards
2026-05-15 01:37:06 +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
23700b00ae
feat(landing): trending, new releases, most tested/reported sections with peek hero layout
2026-05-15 01:05:55 +08:00
adrianbonpin
dbb0caa7e7
feat(steamdb): integrate version auto-fetch into submit wizard UI
2026-05-15 01:02:13 +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
adrianbonpin
d0b69892ea
feat(security): add input sanitization to strip script tags and javascript: URLs from comments
2026-05-15 00:48:27 +08:00
adrianbonpin
470e374656
feat(security): add comment anti-spam (content length cap, duplicate detection, hourly limit)
2026-05-15 00:47:33 +08:00
adrianbonpin
b895e8714d
feat(security): apply tiered rate limits with scoped .group() blocks in app.ts
2026-05-15 00:45:12 +08:00
adrianbonpin
e908880834
feat(security): extend rateLimit to support named categories with 5 tiers
2026-05-15 00:39:35 +08:00
adrianbonpin
0cda534825
docs: implementation plan for landing page, SteamDB, security, and changelog
2026-05-14 23:55:21 +08:00
adrianbonpin
b2139fd444
docs: architectural spec for landing page, SteamDB integration, API security, and changelog
2026-05-14 23:08:43 +08:00
adrianbonpin
fbfc43832e
feat: add OpenAPI support and in-process cron scheduler
...
- Install @elysia/openapi to auto-generate API docs at /api/openapi
- Install @elysia/cron for in-process scheduled jobs (orphan detection at 2am, storage cleanup at 3am)
- Add Scalar UI docs with 14 tag groups and Bearer JWT security scheme
- Add route-level detail annotations (tags, summaries) to all 30+ route files
- Upgrade crud-builder to accept optional tags config
- Keep HTTP cron endpoint as manual/admin fallback
2026-05-14 21:43:33 +08:00
adrianbonpin
20f010cef1
feat: Update to nextjs 16.2.4
2026-05-11 13:10:26 +08:00
adrianbonpin
f11c8343d4
refactor: overhaul settings editor, review step, and preset detail modal
...
- Refactored settings-editor.tsx with improved structure
- Refactored review-step.tsx for better readability
- Refactored preset-detail-modal.tsx
- Minor fix in game-page-client.tsx
2026-05-10 16:38:27 +08:00
adrianbonpin
9b1e428bc7
feat: YouTube preview in review step, phase-aware submit button (Task 7)
2026-05-10 15:37:42 +08:00
adrianbonpin
9dc7013fbf
feat: atomic FormData submit, back button on review, submit phase state (Task 6)
2026-05-10 15:36:05 +08:00
adrianbonpin
6f64f1d89a
feat: convert PATCH /:id/edit to multipart with atomic screenshot replacement (Task 5)
2026-05-10 15:32:09 +08:00
adrianbonpin
285213acdc
feat: convert POST /submit to multipart with atomic screenshot processing and R2 cleanup (Task 4)
2026-05-10 15:27:35 +08:00
adrianbonpin
3e50b0f6bb
refactor: rename Community Presets to Performance Entries in game page UI (Task 3)
2026-05-10 15:21:51 +08:00
adrianbonpin
6211683c70
feat: refactor preset modal — tabbed layout, metadata groups, screenshot lightbox, remove v prefix (Task 2.1)
2026-05-10 15:20:14 +08:00
adrianbonpin
303971424d
feat: create ScreenshotLightbox component with zoom/pan and navigation (Task 1.1)
2026-05-10 15:11:33 +08:00
adrianbonpin
3e94033c83
chore: bump version to 2026.0.100, write CHANGELOG and update news (Tasks 7.1-7.3)
2026-05-10 05:24:51 +08:00
adrianbonpin
1145ba6f51
feat: add version, anti-cheat, and verified date to preset detail modal (Tasks 6.1-6.7)
2026-05-10 05:22:53 +08:00
adrianbonpin
5875595219
feat: enrich game cards with bestFps, raw/poor performer badges, and battery estimates (Tasks 5.1-5.6)
2026-05-10 05:17:55 +08:00
adrianbonpin
c704f35f51
feat: add computed battery estimate to ReviewStep via hardware wattHours + tdpWatts (Tasks 4.1-4.3)
2026-05-10 05:11:46 +08:00
adrianbonpin
6d906f0bbf
feat: remove estimatedBatteryMin references from 11 files (Tasks 3.1-3.14)
2026-05-10 05:07:25 +08:00
adrianbonpin
aa4509ede8
feat: wire screenshot upload into wizard inline submit flow, remove post-submit interstitial (Tasks 2.2-2.4)
2026-05-10 04:59:48 +08:00
adrianbonpin
7560cca4e6
feat: add screenshot upload UI to ReviewStep (Task 2.1)
2026-05-10 04:57:02 +08:00
adrianbonpin
3a9ac815e5
feat: drop estimated_battery_min column — Phase 1 migration (Tasks 1.1-1.3)
2026-05-10 04:52:44 +08:00
adrianbonpin
bcf2d540b8
chore: format components, switch to CDN hostname, and improve error handling in game stats
...
- Format long lines and union types in game page, preset modal, games page, and filter drawer
- Replace **.r2.dev with cdn.deckyvault.xyz in next.config image hostnames
- Replace sql ANY with drizzle inArray for hardware query in game stats
- Add try/catch error handler in game stats route
- Add post.md to .gitignore
2026-05-10 04:15:38 +08:00
adrianbonpin
f02408c0c7
fix(lint): resolve react-hooks/set-state-in-effect in storage and suggestions clients
2026-05-10 02:02:01 +08:00
adrianbonpin
c9adf80d88
refactor(manage): use shared ConfirmDialog in benchmarks page
2026-05-10 01:55:37 +08:00
adrianbonpin
18299fbb8d
refactor(manage): use shared ConfirmDialog in comments page
2026-05-10 01:53:13 +08:00