Commit Graph
69 Commits
Author SHA1 Message Date
tiennm99 e3fb09c4d9 chore: remove dependabot version-update config 2026-07-25 14:15:31 +07:00
tiennm99 f614ce9057 chore(deps): bump dependencies and remediate js-yaml/postcss advisories
Bump the minor-and-patch dependency group (react 19.2.7, radix-ui,
react-hook-form 7.81.0, tailwindcss 4.3.3, and others), pin eslint to
the Next-compatible 9.x range since eslint 10 breaks next lint, and add
pnpm overrides forcing js-yaml >=4.2.0 and postcss >=8.5.10 to clear
open Dependabot alerts.
2026-07-17 18:05:42 +07:00
dependabot[bot] 836c89ee7f chore(deps-dev): bump eslint from 9.39.4 to 10.4.0 (#23)
Bumps [eslint](https://github.com/eslint/eslint) from 9.39.4 to 10.4.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v10.4.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.4.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-23 18:02:35 +07:00
dependabot[bot] 5b5e8be188 chore(deps): bump next from 15.5.15 to 15.5.18 (#18)
Bumps [next](https://github.com/vercel/next.js) from 15.5.15 to 15.5.18.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.15...v15.5.18)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.18
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-23 18:01:04 +07:00
tiennm99 45b2f5a0a6 chore: drop inapplicable dependabot ecosystems (#27) 2026-05-23 11:09:04 +07:00
tiennm99 44253a6f4f chore: add dependabot config (#19) 2026-05-23 10:49:02 +07:00
tiennm99 1613a44b8e chore(node): set Node 24 as default via engines.node 2026-05-13 17:12:35 +07:00
tiennm99 130d13e0cf fix(pnpm): allow native build scripts for pnpm 11 strictDepBuilds
Set allowBuilds.sharp and allowBuilds.unrs-resolver to true in
pnpm-workspace.yaml so pnpm 11 frozen-lockfile installs succeed on Vercel.
2026-05-13 16:44:16 +07:00
tiennm99 dfb74f1ad1 chore: migrate from npm to pnpm 2026-05-13 10:16:36 +07:00
tiennm99 17b1b46e0c docs: reflect Upstash REST migration, Mapillary dart-throw, cron removal 2026-05-10 03:03:15 +07:00
tiennm99 b54e13ea5f chore: remove decorative cron job and its vercel.json config 2026-05-10 02:43:45 +07:00
tiennm99 10cb776ecc chore(plans): remove completed migration & mapillary plans 2026-05-10 02:33:01 +07:00
tiennm99 1e16bd8d42 chore(storage): drop redis dep and migration script post-Upstash cutover
The Upstash REST migration is verified in production; node-redis is no longer
needed and the one-shot migration script has done its job.

- Remove `redis` from package.json
- Delete scripts/migrate-upstash.js (recoverable from commit 53ee795)
- Add cleanup plan; close out migration plan Phase 3
2026-05-10 02:13:12 +07:00
tiennm99 c435a618ac fix(mapillary): bump retries 10 -> 20 to better cover HN pano-sparse blocks 2026-05-10 01:46:19 +07:00
tiennm99 f12fef855d fix(mapillary): port viguessr random-point + per-city delta strategy
Replaces adaptive shrink/grow bbox loop with viguessr's proven approach:
random point inside city bbox → fixed-size sub-bbox of side 2*delta → re-roll
position on empty/error. Small fixed bbox keeps Mapillary query cost under
their 'reduce data' cap; dart-throw eventually lands on a pano-rich window.

- src/lib/game.js: add per-city mapillaryDelta (HN=0.003, others=0.005)
  and export cityDeltas alongside existing cityBboxes
- src/lib/mapillary.js: rewrite fetchMapillaryImages(bbox, delta) with
  10-attempt position-only retry; revert to thumb_original_url; limit=3
- src/app/api/new-game/route.js: pass cityDeltas[cityCode] to the fetcher

Source: https://github.com/luuvanduc1999/viguessr (assets/js/game.js)
2026-05-10 01:38:48 +07:00
tiennm99 a3a0667774 fix(mapillary): adaptive bbox - shrink on 500, grow on empty across 15 retries 2026-05-10 01:12:55 +07:00
tiennm99 3d954cbbdc fix(mapillary): bump bbox area to 0.002 sq deg (~5km) keeping limit=1 2026-05-10 01:04:04 +07:00
tiennm99 9e91be0572 fix(mapillary): limit=1 + smaller bbox; trim is_pano field (filter handles it) 2026-05-10 00:52:53 +07:00
tiennm99 5c4bf4d609 fix(mapillary): bump sub-bbox area to 0.001 sq deg (~3km) for better pano coverage 2026-05-10 00:46:24 +07:00
tiennm99 e47b7fe28b fix(mapillary): always sub-sample small bbox + retry on transient errors 2026-05-10 00:40:47 +07:00
tiennm99 963175886f fix(mapillary): keep is_pano=true filter (panoramic only required) 2026-05-10 00:33:13 +07:00
tiennm99 9618e3c260 fix(mapillary): drop is_pano filter, lower bbox area + limit to dodge Mapillary 500 2026-05-10 00:29:50 +07:00
tiennm99 34959449c7 fix(mapillary): use thumb_2048_url to avoid Mapillary 500 'reduce data' error 2026-05-10 00:25:48 +07:00
tiennm99 5a416a2962 debug: log Mapillary error body and redacted URL 2026-05-10 00:19:48 +07:00
tiennm99 5fe770121e docs(plans): add Upstash migration plan with KEY_PREFIX
Three-phase plan: adapter refactor, data migration, cutover/cleanup.
2026-05-10 00:00:57 +07:00
tiennm99 53ee7957e7 refactor(storage): migrate to Upstash REST SDK with KEY_PREFIX
Replace node-redis with @upstash/redis REST client and route all keys through
a centralized adapter that prepends KEY_PREFIX (default 'vngeoguessr:'). The
new Upstash DB can now be safely shared with other Vercel projects without
key collisions.

- src/lib/upstash.js: new adapter with getJson/putJson/del + zAdd/zRange/
  zScore/zRank/zRevRank/zRemRangeByRank helpers; reads UPSTASH_REDIS_REST_URL
  or KV_REST_API_URL aliases
- src/lib/session.js, src/lib/leaderboard.js: use the adapter; public APIs
  unchanged so api routes stay untouched
- src/lib/redis.js: removed
- scripts/migrate-upstash.js: one-shot copy from old TCP DB to new REST DB,
  prepending the prefix; idempotent, with --dry-run flag
- docs/tech-stack.md: reflect the new SDK and prefix model
2026-05-10 00:00:47 +07:00
dependabot[bot] f0f19508c4 chore(deps): bump next from 15.5.14 to 15.5.15 (#16)
Bumps [next](https://github.com/vercel/next.js) from 15.5.14 to 15.5.15.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.14...v15.5.15)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.15
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:33:17 +07:00
dependabot[bot] b462c7b2db chore(deps): bump uuid from 11.1.0 to 14.0.0 (#17)
Bumps [uuid](https://github.com/uuidjs/uuid) from 11.1.0 to 14.0.0.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v11.1.0...v14.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 14.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 13:33:14 +07:00
dependabot[bot] 70e96ddd66 chore(deps): bump minimatch (#10)
Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

Updates `minimatch` from 9.0.5 to 9.0.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 17:13:27 +07:00
dependabot[bot] 9a2432dcb8 chore(deps-dev): bump tar from 7.4.3 to 7.5.11 (#12)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.4.3 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 17:13:23 +07:00
dependabot[bot] 0d32ef520f chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 (#13)
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 17:13:20 +07:00
dependabot[bot] 99e2ec9c6a chore(deps): bump picomatch (#15)
Bumps  and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 17:13:17 +07:00
dependabot[bot] af2455fc1c chore(deps): bump next from 15.5.9 to 15.5.14 (#14)
Bumps [next](https://github.com/vercel/next.js) from 15.5.9 to 15.5.14.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.9...v15.5.14)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.14
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 17:13:09 +07:00
tiennm99 99d0ab6d56 feat(ui): replace gradient glassmorphism with soft clean design
Swap dark animated gradient background for light solid bg, glassmorphism
cards for clean white cards, and remove pulse/glow animations. Keep
Vietnamese red as accent color.
2026-04-04 10:12:14 +07:00
tiennm99 9279439f8c add claude settings with Vercel plugin enabled 2026-04-04 09:20:59 +07:00
tiennm99 f58832796a remove settings.local.json from git tracking 2026-04-04 09:18:04 +07:00
tiennm99 5c2064dfca fix(mapillary): subdivide large bboxes to fit API area limit
Mapillary API rejects bboxes exceeding 0.01 sq degrees with HTTP 500.
City bboxes (e.g. TPHCM=0.016) exceeded this limit. Now picks random
sub-bboxes within the city area and retries up to 5 times to find coverage.
2026-04-04 09:10:20 +07:00
tiennm99 9bee409f52 feat(ui): Vietnamese-themed redesign with glassmorphism and improved components
- Add Vietnamese-themed CSS with gradient backgrounds, animations, and brand color variables
- Redesign homepage with gradient hero, glassmorphism cards, and leaderboard component
- Improve game page loading fallback with spinner
- Enhance GameClient with compact header, polished result modal, and retry logic
- Extract LeaderboardList as reusable component
- Make DonateQRModal responsive instead of hardcoded dimensions
- Polish UsernameModal visuals
2026-04-04 00:23:41 +07:00
tiennm99 95dfe57913 Update package-lock.json 2026-01-22 15:47:28 +07:00
Tien Nguyen Minh ecadfceffd Merge pull request #4 from tiennm99/dependabot/npm_and_yarn/next-15.5.9
chore(deps): bump next from 15.5.2 to 15.5.9
2026-01-09 10:20:17 +07:00
dependabot[bot] 3c72e179a0 chore(deps): bump next from 15.5.2 to 15.5.9
Bumps [next](https://github.com/vercel/next.js) from 15.5.2 to 15.5.9.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.2...v15.5.9)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 22:59:41 +00:00
tiennm99 f276e73c8a Revert "feat(schedule): change to run every hour"
This reverts commit d807504b6c.
2025-11-26 19:43:23 +07:00
tiennm99 d807504b6c feat(schedule): change to run every hour 2025-11-26 19:42:28 +07:00
Tien Nguyen Minh acbb7d030e Merge pull request #2 from tiennm99/dependabot/npm_and_yarn/js-yaml-4.1.1
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
2025-11-26 19:40:43 +07:00
dependabot[bot] 776dcc2160 chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-16 14:11:06 +00:00
tiennm99 be06f69005 feat(cron): add vercel cron job 2025-10-08 20:39:29 +07:00
Tien Nguyen Minh d3c3c30f1e Merge pull request #1 from vngeoguessr/dependabot/npm_and_yarn/next-15.5.2
chore(deps): bump next from 15.4.6 to 15.5.2
2025-10-08 20:29:15 +07:00
dependabot[bot] 55c86546d2 chore(deps): bump next from 15.4.6 to 15.5.2
Bumps [next](https://github.com/vercel/next.js) from 15.4.6 to 15.5.2.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.4.6...v15.5.2)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 14:53:33 +00:00
tiennm99 d1bb98d6c5 feat: extend mapillary limit and add debug log 2025-08-18 22:48:58 +07:00
tiennm99 22a51cf4f7 feat: skip not reload 2025-08-18 22:27:14 +07:00