Commit Graph

  • 142d83372b build(deps): upgrade @vercel/analytics and @vercel/speed-insights to v2 main tiennm99 2026-10-03 13:16:29 +07:00
  • 409d8a2e7b build(deps): upgrade vitest to v5 tiennm99 2026-10-03 13:15:34 +07:00
  • 6aff8db05d fix(deps): update dependencies to latest compatible versions tiennm99 2026-10-03 12:41:57 +07:00
  • 04efbf097c ci: run the leaderboard backup at Monday midnight Vietnam time tiennm99 2026-10-02 13:49:28 +07:00
  • ceedf5dde9 feat(scripts): restore the leaderboards from a backup tiennm99 2026-10-02 13:12:52 +07:00
  • 2df7fe3700 ci: move the workflow actions to their Node 24 majors tiennm99 2026-10-02 13:12:52 +07:00
  • f8e82894e4 docs: record the second review round and refresh the reviewer memory tiennm99 2026-09-29 20:13:07 +07:00
  • 9016c95c61 fix(ui): show the partial-write notice, fix contrast and small round bugs tiennm99 2026-09-29 20:13:07 +07:00
  • 35999a809d fix(api): give every store call a deadline, harden the small things tiennm99 2026-09-29 20:13:07 +07:00
  • 6ee23207d8 fix(daily): re-pick the day only on proof the image is gone tiennm99 2026-09-29 20:13:07 +07:00
  • cca6018572 chore: update reviewer agent memory tiennm99 2026-09-28 15:01:41 +07:00
  • b8b4ffbbcb docs: record fresh session ids, the daily pick rules and the new components tiennm99 2026-09-28 15:01:41 +07:00
  • 4d25a82448 chore(ci): raise the test hook timeout, fail an empty backup tiennm99 2026-09-28 15:01:41 +07:00
  • db8d799798 fix(client): remember refused storage writes, clear the pin between rounds tiennm99 2026-09-28 15:01:41 +07:00
  • 04925cf789 fix(api): keep the daily pick through upstream blips, mint every session id tiennm99 2026-09-28 15:01:41 +07:00
  • 11bfa59377 docs: codify the conventions the code follows, drop the unused tabs dependency tiennm99 2026-09-21 16:25:53 +07:00
  • 9f663af460 refactor(ui): extract the game header, tag place names, make the expanded map a dialog tiennm99 2026-09-21 16:23:27 +07:00
  • 30cfe63e5f refactor(client): read browser preferences through one store hook tiennm99 2026-09-21 16:19:58 +07:00
  • 6099f1135a refactor(api): typed draw errors, honest statuses, and a slimmer guess envelope tiennm99 2026-09-21 16:09:15 +07:00
  • 2bd5e4fbf2 refactor(scripts): one env loader, the region config as data, tests for district assignment tiennm99 2026-09-21 16:21:14 +07:00
  • 2297971851 docs(plans): record the whole-project review and refactor plan tiennm99 2026-09-21 15:48:39 +07:00
  • 77654d2889 fix: close the review findings on the dev implementation tiennm99 2026-09-21 00:35:06 +07:00
  • addf2c0f2e docs(plans): record the review of the dev implementation tiennm99 2026-09-21 00:25:04 +07:00
  • 064c1733b6 chore(ci): run the gates on every push and back the boards up weekly tiennm99 2026-09-20 23:31:28 +07:00
  • 6dbe2e01c8 feat(regions): show province and district names in Vietnamese tiennm99 2026-09-20 23:28:50 +07:00
  • 8450b75bce feat(daily): one panorama a day, the same for everyone, with a streak tiennm99 2026-09-20 23:23:02 +07:00
  • e649259518 feat(game): explain a miss, share a round, and keep the phone header in reach tiennm99 2026-09-20 23:02:05 +07:00
  • 3314da1358 fix(api): validate every input, close the debug routes in production, keep every score total tiennm99 2026-09-20 23:02:05 +07:00
  • c2d0d3f59e docs(plans): record the brainstorm review round and revised sequence tiennm99 2026-09-20 22:37:29 +07:00
  • 59be3024a7 docs(plans): record the improvement brainstorm reports and synthesis tiennm99 2026-09-20 22:21:04 +07:00
  • 5406b38a5c docs(plans): record the audio plan, research and review tiennm99 2026-09-09 11:14:58 +07:00
  • bf4b3ae465 docs: describe the audio layer tiennm99 2026-09-09 11:14:57 +07:00
  • 4d10f0a879 feat(audio): play sound effects and background music tiennm99 2026-09-09 11:14:47 +07:00
  • 89f7a81d2d docs(plans): record the pre-merge review evidence tiennm99 2026-09-06 20:22:54 +07:00
  • 8987506dcb fix(404): give the app-wide not-found its own title tiennm99 2026-09-06 20:05:11 +07:00
  • 76e72c0b00 docs: record the URL rules, the 404 surfaces and the e2e harness tiennm99 2026-09-06 19:51:26 +07:00
  • d5c97fab5c test(e2e): cover the URL contract, and compile game routes before the race tiennm99 2026-09-06 19:51:16 +07:00
  • f116fec36f fix(layout): stop the theme script erroring where React renders it client-side tiennm99 2026-09-06 19:51:05 +07:00
  • bc32de22b9 fix(404): raise the explanation's contrast, name the exit, follow the OS tiennm99 2026-09-06 19:50:56 +07:00
  • 1a989b02ee feat(game): give every region page its own title and description tiennm99 2026-09-06 19:50:45 +07:00
  • 45cb389d9d fix(regions): reject a slug that only uppercases into a region code tiennm99 2026-09-06 19:50:29 +07:00
  • 6d7cb30e5e fix(404): give every not-found route a way out, in the right theme tiennm99 2026-09-06 16:50:15 +07:00
  • ae0cc3d798 docs(plans): record the region-path migration and the analytics constraint tiennm99 2026-09-06 16:38:32 +07:00
  • 711ef863a6 feat(game): put the region in the URL path tiennm99 2026-09-06 16:37:43 +07:00
  • 90ebed728a fix(debug): draw the region a coverage switch asked for tiennm99 2026-09-04 16:47:39 +07:00
  • d1332cd689 feat(regions): open four more provinces for play tiennm99 2026-09-04 15:20:13 +07:00
  • 6251ea5f4b feat(footer): link the build sha to its commit page tiennm99 2026-09-04 11:59:48 +07:00
  • 7862bcec9d feat(game): stop repeating a player's recent locations tiennm99 2026-09-03 15:18:01 +07:00
  • 86eff7364d chore: add .env.example template tiennm99 2026-09-03 15:17:42 +07:00
  • eb4f272817 feat(ui): paint the key art behind every page tiennm99 2026-09-03 12:19:44 +07:00
  • b15d199565 feat(scoring): score every region on one distance ladder tiennm99 2026-09-03 11:46:17 +07:00
  • be448b3d97 fix(layout): size the game action bar with grid tracks tiennm99 2026-09-02 15:43:44 +07:00
  • 23c55bdb75 chore(plans): add the game screen layout review reports tiennm99 2026-09-02 09:53:22 +07:00
  • 1aa15f8969 docs: record the layering ladder and fixed-surface rules tiennm99 2026-09-02 09:53:22 +07:00
  • a3b3d9970e fix(credits): add the OpenMapTiles credit Geoapify requires tiennm99 2026-09-02 09:53:22 +07:00
  • 26dd5f384e refactor(debug): float the coverage inspector over a full-width map tiennm99 2026-09-02 09:53:22 +07:00
  • 23ee9d47ff fix(layout): put game chrome in flow and contain third-party z-index tiennm99 2026-09-02 09:53:06 +07:00
  • 1efd2b3a8e fix(layout): keep the credit footer out of the game surface tiennm99 2026-09-02 01:58:01 +07:00
  • 67b9195d63 feat(username): prompt for a name on landing tiennm99 2026-09-02 01:57:43 +07:00
  • 3e6bff83da feat(ui): add maker credit beside the build stamp tiennm99 2026-09-01 18:00:38 +07:00
  • 7212b67feb chore: remove leaderboard migration scripts and close plan tiennm99 2026-09-01 17:26:21 +07:00
  • 0ce56737f3 chore(plans): add execution plan and review reports tiennm99 2026-09-01 17:17:22 +07:00
  • 3cc77e2869 docs: update styling tokens, username flow, and structure tiennm99 2026-09-01 17:17:16 +07:00
  • eebe1b7d6f refactor(api): drop expired session cityCode fallbacks tiennm99 2026-09-01 17:17:11 +07:00
  • bf67ae655d refactor(ui): semantic color tokens and Lucide icon unification tiennm99 2026-09-01 17:17:06 +07:00
  • 0b8b60a2ab feat(ui): game onboarding and result dialog clarity tiennm99 2026-09-01 17:17:00 +07:00
  • 0876a9db2d feat(ui): username flow rework tiennm99 2026-09-01 17:16:53 +07:00
  • 0f167192ef chore(journal): session journal for licensing compliance work tiennm99 2026-09-01 16:16:45 +07:00
  • afee4b981f fix(maps): complete tile attribution requirements tiennm99 2026-09-01 16:16:37 +07:00
  • d7d6effbd0 chore(plans): document licensing research and tile-provider migration tiennm99 2026-09-01 09:43:32 +07:00
  • a5c9ef5876 feat(maps): centralize tile provider with Geoapify support tiennm99 2026-09-01 09:43:19 +07:00
  • bbe5987a9b feat(credits): add Mapillary attribution overlay and credits page tiennm99 2026-09-01 09:43:07 +07:00
  • 649247b3a1 fix(home): tune wrench debug button hover and layout tiennm99 2026-09-01 00:11:50 +07:00
  • 289986695a refactor(debug): reorganize debug pages with shared shell and nav tiennm99 2026-09-01 00:11:41 +07:00
  • 2b57bf9526 feat(footer): add build-stamp footer with commit SHA tiennm99 2026-09-01 00:11:29 +07:00
  • fe3a89b3a8 chore(memory): update code-reviewer agent notes on scoring and quality gates tiennm99 2026-08-31 22:09:04 +07:00
  • 71e77eae00 chore(plans): add plan, journals, and review reports for UI/UX quick wins tiennm99 2026-08-31 22:08:41 +07:00
  • 9516599948 fix(maps): use regional scoring ladder for leaderboard distance tint tiennm99 2026-08-31 22:08:26 +07:00
  • 81765f4878 feat(home): add last-region persistence and continue button tiennm99 2026-08-31 22:08:10 +07:00
  • 7123cdde76 fix(game): split loading states, add inline error retry, improve round handling tiennm99 2026-08-31 22:07:56 +07:00
  • 434409443c feat(scoring): add region-relative scoring ladder and per-level board crediting tiennm99 2026-08-31 22:07:41 +07:00
  • 38fd5af60e style(debug): move the debug page onto the app design tokens tiennm99 2026-08-31 10:15:49 +07:00
  • 9f1cd69029 chore: agent memory notes tiennm99 2026-08-31 09:44:13 +07:00
  • 1be57831a0 test(e2e): add Playwright smoke lane with stubbed APIs tiennm99 2026-08-31 09:44:13 +07:00
  • e308638dbe chore(deps): upgrade to Next 16 and refresh dependencies tiennm99 2026-08-31 09:44:13 +07:00
  • 6569f095c9 feat(game): serve panorama index from Neon Postgres tiennm99 2026-08-31 09:44:03 +07:00
  • da7a715478 chore(plans): archive completed plans and stale reports tiennm99 2026-08-30 21:48:12 +07:00
  • 75c77e9ab9 docs(plans): journal entry for guess map search tiennm99 2026-08-30 21:42:44 +07:00
  • 2768c0176a feat(game): add district and street search to the guess map tiennm99 2026-08-30 21:42:09 +07:00
  • 5518676170 chore: session plan and agent memory tiennm99 2026-08-30 20:52:41 +07:00
  • bed486c742 docs: refresh README and docs for the region tree and pipeline scripts tiennm99 2026-08-30 20:52:36 +07:00
  • 997695659b build: add data pipeline scripts and migrate lint to eslint tiennm99 2026-08-30 20:52:32 +07:00
  • 3a965b7ede refactor(scripts): share data paths and barrel emitter across generators tiennm99 2026-08-30 20:52:28 +07:00
  • fd64e9239b test(regions): guard every client module against server-only imports tiennm99 2026-08-30 20:52:24 +07:00
  • 10c828776b refactor(ui): extract round result, guess map, and leaderboard components tiennm99 2026-08-30 20:52:20 +07:00
  • 9133a3efc2 refactor(lib): split game.js into scoring and username modules tiennm99 2026-08-30 20:52:15 +07:00
  • 3177e70e67 fix(api): stop sending the panorama id to the client tiennm99 2026-08-30 20:52:11 +07:00
  • c9a35dca9a docs: describe the region tree, and finish the coverage page migration tiennm99 2026-08-30 19:46:13 +07:00
  • d72df56200 feat(ui): navigate the region tree instead of a flat city list tiennm99 2026-08-30 18:53:30 +07:00
  • 00a8f8b627 feat(api): score a guess against the district it was actually in tiennm99 2026-08-30 18:06:55 +07:00