jessy-david-dev
2dc57915be
fix(multi): don't override screen if a new room was joined during session restore
2026-04-15 18:47:54 +02:00
jessy-david-dev
1dcd45930c
fix(lobby): optimistic toggle for search allowed, fixes display always showing blocked
2026-04-15 18:34:02 +02:00
jessy-david-dev
4e03876338
fix(lobby): use local state for rounds selector instead of server state
2026-04-15 18:27:51 +02:00
jessy-david-dev
afe1dfd2d7
refactor(sse): improve error handling and connection cleanup
2026-04-14 16:32:32 +02:00
jessy-david-dev
90b14919c5
feat(multiplayer): replace polling with server-sent events and redis pub/sub
2026-04-14 16:00:09 +02:00
jessy-david-dev
7ecf268191
feat(leaderboard): add separate rankings for daily and blitz modes
2026-04-14 15:40:44 +02:00
jessy-david-dev
b889f3fd10
ui(solo): align topbar design with multiplayer game screen
2026-04-13 17:17:47 +02:00
jessy-david-dev
a2e1ac1c93
feat(profile): add pagination for game history (10 games per page)
2026-04-13 17:07:27 +02:00
jessy-david-dev
4614b087c3
fix: use inline svg for linkedin missing from simple-icons v16
2026-04-13 16:58:06 +02:00
jessy-david-dev
e61ea79e68
chore: replace inline SVG icons with simple-icons package
2026-04-13 16:57:22 +02:00
jessy-david-dev
190722838f
feat: add badge system with 10 achievement tiers
2026-04-13 16:47:47 +02:00
jessy-david-dev
a9821623de
fix(admin): render activity chart bars with proper height calculation
2026-04-13 16:18:11 +02:00
jessy-david-dev
c497fa1f33
ui: center target article in topbar
2026-04-13 16:02:47 +02:00
jessy-david-dev
ddf24e5714
feat(multi): display time for each player in round results
2026-04-13 15:59:34 +02:00
jessy-david-dev
7423bfc389
ui: make target article badge more visible in game topbar
2026-04-13 15:45:39 +02:00
jessy-david-dev
2a3dd6be56
fix: sync totalRounds changes to server, filter geographic admin articles, validate user exists before saving game
2026-04-13 15:42:00 +02:00
jessy-david-dev
79d90b75c4
fix(multi): use startGame for next round button in waiting phase
2026-04-13 00:20:17 +02:00
jessy-david-dev
fe703f5f8f
security: block devtools and context menu when search is disabled
2026-04-13 00:04:44 +02:00
jessy-david-dev
12031b7507
fix(article): keep references and related sections visible in wikipedia display
2026-04-13 00:01:33 +02:00
jessy-david-dev
169f71c67d
fix(multi): sync game mode changes to server in lobby
2026-04-12 23:59:40 +02:00
jessy-david-dev
064ddda23a
fix(multi): keep game screen during waiting phase for next round
2026-04-12 19:58:09 +02:00
jessy-david-dev
05e5cb04b9
fix(multi): redirect to lobby after next round and reset game; keep article detail links visible
2026-04-12 16:33:18 +02:00
jessy-david-dev
5627a4bb30
feat(multi): award points based on both clicks and time
2026-04-11 23:08:09 +02:00
jessy-david-dev
b1fcbbdb04
feat(multi): add configurable time limit per round with countdown display
2026-04-11 22:41:40 +02:00
jessy-david-dev
54c4400393
feat(multi): add go back button with extra click penalty
2026-04-11 22:30:47 +02:00
jessy-david-dev
d268905f2d
style: apply prettier formatting across codebase
2026-04-11 22:25:34 +02:00
jessy-david-dev
b76fbf8789
fix(multi): stay on game screen between rounds instead of redirecting to lobby
2026-04-11 22:19:25 +02:00
jessy-david-dev
1aad4d74a9
fix(multi): disable player prune during playing phase to prevent kick on long reads
2026-04-11 22:13:51 +02:00
jessy-david-dev
1153f574a4
fix(multi): prevent player kick on slow load and background tab throttling
2026-04-11 22:12:39 +02:00
jessy-david-dev
6be8db9145
fix(multi): hide next round button when all rounds are completed
2026-04-11 22:10:04 +02:00
jessy-david-dev
c3152058ce
feat(multi): display player paths in round results screen
2026-04-11 22:08:56 +02:00
jessy-david-dev
d4bb21da5d
style(lobby): format game mode labels and search toggle
2026-04-11 22:03:00 +02:00
jessy-david-dev
ede083f881
fix(multi): restrict search and game settings to room host only
2026-04-11 22:02:06 +02:00
jessy-david-dev
0401cdffe6
feat(multi): add game mode selection and surrender button for all_finish mode
2026-04-11 21:58:35 +02:00
jessy-david-dev
552bb17c15
feat(rooms): migrate multiplayer room storage from memory to PostgreSQL
2026-04-11 17:37:56 +02:00
jessy-david-dev
e6aa0badac
fix(types): add @types/pg for TypeScript build
2026-04-11 15:58:32 +02:00
jessy-david-dev
589e379dc3
fix(daily): remove invalid phase comparison causing TS build error
2026-04-11 15:57:35 +02:00
jessy-david-dev
fd99425269
fix(deploy): require Node 22.12+, remove better-sqlite3 remnants
2026-04-11 15:55:17 +02:00
jessy-david-dev
0fdf9dd32e
fix(deploy): add packages field to pnpm-workspace.yaml
2026-04-11 15:53:55 +02:00
jessy-david-dev
875a299cd4
chore(db): migrate from SQLite to PostgreSQL
...
- Change Prisma provider from sqlite to postgresql
- Replace better-sqlite3 adapter with @prisma/adapter-pg
- Update prisma.config.ts and lib/prisma.ts for PostgreSQL
- Add DATABASE_URL to .env.local
- Regenerate Prisma client for PostgreSQL
- Recreate migrations for PostgreSQL database
2026-04-11 15:50:44 +02:00
jessy-david-dev
5cd32c37e0
chore(linting): remove unused eslint-disable directives
2026-04-11 15:41:35 +02:00
jessy-david-dev
d5a66c2dac
chore(api): add explicit type casting for request payloads
2026-04-11 15:20:29 +02:00
jessy-david-dev
7d1b236b46
feat(profiles): add public player profiles with clickable leaderboard entries
...
- Create /api/users/[id] endpoint for public player stats
- Add PublicProfileScreen component with stats by mode
- Make leaderboard entries clickable to view player profiles
- Fix .gitignore to exclude .claude/ and *.db files
2026-04-11 15:17:56 +02:00
jessy-david-dev
2a382a24eb
chore: remove db files from tracking and add *.db to .gitignore
2026-04-11 15:11:03 +02:00
jessy-david-dev
8ff64b3470
feat(admin): add admin panel with user management, daily puzzle CRUD, and activity graph
...
- Add admin page at /admin (restricted to ADMIN_EMAIL via proxy)
- Implement user ban/unban and deletion
- Add daily puzzle creation, modification, deletion
- Include 14-day activity chart with hover details
- Add User.banned field to schema and migrate database
- Block banned users from logging in
- Add ADMIN_EMAIL to .env.local configuration
- Update Prisma client after schema changes
2026-04-11 15:10:08 +02:00
jessy-david-dev
5d8f7eae45
refactor(home): rename todayEmoji to totalEmoji
2026-04-11 13:47:49 +02:00
jessy-david-dev
e9f39c572d
feat(game): add configurable rounds per room
2026-04-11 13:47:05 +02:00
jessy-david-dev
d245232497
fix(api): improve security and performance in leaderboard and rooms
2026-04-11 13:37:50 +02:00
jessy-david-dev
f62ce65858
feat: add robots.txt, sitemap, and JSON-LD structured data
2026-04-11 13:30:45 +02:00
jessy-david-dev
2db89a85ad
chore: update footer link styling for legal pages
2026-04-11 13:24:57 +02:00