Go to file
Wang Zhuoxuan c36d828df9
All checks were successful
CI/CD Pipeline / Unit Tests (push) Successful in 30s
CI/CD Pipeline / Build & Deploy Test (push) Has been skipped
CI/CD Pipeline / Build & Deploy Production (push) Successful in 1m19s
feat: narrow gamification to first-version MVP scope
行为按 docs/GAMIFICATION_DESIGN.md(duoqi-flutter/docs/GAMIFICATION_REQUIREMENTS_CHANGE.md)对齐:

- 新增 src/utils/time.ts 北京时间工具,统一替换散落的 UTC 日期/周边界计算
- challenge-service:未完成 session 续答(同 nodeId 复用 pending/in_progress),每日次数按 session 幂等扣减(条件 UPDATE 抢 daily_attempt_consumed_at 锁),移除高奖励 multiplier 和答对时发 first_knowledge_card
- 新增 knowledge-card-service 和 POST /challenges/knowledge-cards/:cardId/view:用户打开/收下卡片时在单事务内发 review_explanation (3 XP) 和 first_knowledge_card (15 XP),fallback 卡走独立幂等 namespace
- tracks-service:mapNodeStatus 只返回 current/done
- hearts-service:删除 Pro/ProPlus 免扣分支和新用户 1 心保护,RestoreMethod 收窄为 'ad' | 'wait'
- xp-service / leaderboard-service / streak-service / ad-recovery-service / progress-summary-service:时区切北京;排行榜同分按 last_xp_at 升序,weeklySettlement 不再发前 3 名金币;streak milestone 返回空
- /shop/purchase、/inventory/items/use、/subscription/verify 返回 NOT_AVAILABLE_IN_MVP
- schema 加 challenge_sessions.daily_attempt_consumed_at(迁移 0007)
- 接口文档 docs/api-reference.md 同步 12 项 MVP 行为变化
- 测试:新增 utils/time 和 tracks node-status 测试;hearts/streak/leaderboard 测试按新行为更新;challenge-service 13 个 MVP 之外(Plus/高奖励/first_knowledge_card 答对触发)测试 it.skip 待重写 mock 队列

typecheck / lint / test (146 passed, 13 skipped) 全部通过。
2026-06-16 18:05:04 +08:00
.gitea/workflows perf: 移除 CI 和 Docker 中的独立 typecheck 步骤,降低内存占用 2026-06-03 11:17:34 +08:00
content feat: implement Phase 1b core features and Phase 1c commercialization 2026-04-09 00:12:12 +08:00
db feat: narrow gamification to first-version MVP scope 2026-06-16 18:05:04 +08:00
docs feat: narrow gamification to first-version MVP scope 2026-06-16 18:05:04 +08:00
scripts refactor: 统一使用 Docker Compose V2 命令语法 2026-04-17 00:31:49 +08:00
src feat: narrow gamification to first-version MVP scope 2026-06-16 18:05:04 +08:00
.dockerignore feat: 添加 CI/CD 部署方案(Gitea + Docker + 双分支工作流) 2026-04-16 12:44:14 +08:00
.env.example feat: 实现阿里云短信验证码登录 2026-06-01 23:53:49 +08:00
.env.prod.example refactor: 移除阿里云融合认证集成,保留基础设施以备后续使用 2026-06-01 10:18:15 +08:00
.gitignore Add AGENTS.md and ignore coverage 2026-05-04 22:02:01 +08:00
AGENTS.md Add AGENTS.md and ignore coverage 2026-05-04 22:02:01 +08:00
bun.lock feat: 实现阿里云短信验证码登录 2026-06-01 23:53:49 +08:00
CLAUDE.md refactor: 移除阿里云融合认证集成,保留基础设施以备后续使用 2026-06-01 10:18:15 +08:00
dev-spec.md docs: sync project progress across CLAUDE.md and dev-spec.md 2026-04-09 12:02:43 +08:00
docker-compose.prod.yml fix: health 路由路径修正为 /health 2026-04-18 04:13:59 +08:00
docker-compose.yml feat: 添加 CI/CD 部署方案(Gitea + Docker + 双分支工作流) 2026-04-16 12:44:14 +08:00
Dockerfile perf: 移除 CI 和 Docker 中的独立 typecheck 步骤,降低内存占用 2026-06-03 11:17:34 +08:00
drizzle.config.ts 修复游戏化测试与奖励边界 2026-05-17 00:22:55 +08:00
eslint.config.js Add Flutter app-facing API routes 2026-05-04 01:24:23 +08:00
package.json feat: 实现阿里云短信验证码登录 2026-06-01 23:53:49 +08:00
tsconfig.json perf: 移除 tsconfig 中不必要的 declaration 和 declarationMap 降低 CI 内存占用 2026-05-28 23:48:48 +08:00
vitest.config.ts feat: implement Phase 1b core features and Phase 1c commercialization 2026-04-09 00:12:12 +08:00