Commit Graph

8 Commits

Author SHA1 Message Date
richarjiang
8e9af19c88 feat: 首页支持宣传语 2026-03-16 08:44:11 +08:00
richarjiang
36f10954cf feat: add token usage tracking and leaderboard
- Add token_usage table with composite unique index for claw_id + date
- Add API endpoints: POST /token, GET /token/leaderboard, GET /token/stats
- Add TokenLeaderboard component with daily/total period toggle
- Add CLI commands: `token` and `stats` for reporting and viewing usage
- Add Redis caching for leaderboard with 1-minute TTL
- Add shared utilities: authenticateRequest, getTodayDateString
- Use UPSERT pattern for atomic token updates
- Add i18n translations (en/zh) for new UI elements
2026-03-15 15:17:10 +08:00
richarjiang
8d094ad5cc feat: 添加 2D/3D 地图切换与坐标偏移功能
- 新增 WorldMap 组件,支持 2D 世界地图视图
- 主页添加 2D/3D 视图切换按钮
- 实现确定性坐标偏移算法,分散同城用户位置
- 更新 heatmap 和 register API 使用坐标偏移
2026-03-15 14:19:36 +08:00
richarjiang
48ac785290 feat: 更新地图标点图标为龙虾 2026-03-14 19:04:09 +08:00
richarjiang
6c2a45b257 feat(页面): 添加区域探索与国家边界功能 2026-03-13 16:25:35 +08:00
richarjiang
e79d721615 feat: 用 react-map-gl + MapLibre 替换 react-simple-maps 实现 2D 地图
- 替换 react-simple-maps/d3-geo/topojson-client 为 react-map-gl + maplibre-gl
- 使用 CARTO dark-matter 免费暗色瓦片,自带国家/城市名标注
- 基于 locale 动态切换地图标注语言(name:zh / name_en)
- MapLibre 原生 heatmap + circle 双层渲染替代 SVG 热力图
- 提取 MapPopup 组件,配合 react-map-gl Popup 实现点击弹窗
- continent page 改为 dynamic import (ssr: false)
- dev 模式去掉 Turbopack 以兼容 maplibre-gl
- 删除 heatmap-layer.tsx 和 react-simple-maps 类型声明
2026-03-13 14:46:23 +08:00
richarjiang
9e30771180 重构:将 "lobster" 重命名为 "claw" 并添加国际化支持 (i18n) 2026-03-13 12:07:28 +08:00
richarjiang
fa4c458eda init 2026-03-13 11:00:01 +08:00