Files
HealthLog/src/app/api
Marc-André BombeckandClaude Opus 4.7 c41f9a4307 feat(achievements): evaluators for new achievements (with discovery rules)
Wires the v1.4.18 expansion metrics into the gamification route.

- Fetches `MoodEntry` rows alongside the existing measurement /
  intake / passkey / audit fetches so the mood badges have data.
- Extends the audit-log query with `doctor-report.export` and
  `settings.locale.update` (the new hidden Easter-egg triggers).
- Pushes the raw rows through `buildExpansionMetricValues` —
  mood streak / improvement, weight/BP/pulse counts, consistent-month,
  entry day-streak, weekend warrior, and the hidden trigger counts.
- Computes `EarnabilityFlags` from the same numbers and applies
  `applyDiscoveryFilter` to the evaluated achievement list. Locked
  public badges that the user has *no path* to earn yet are filtered
  out; hidden Easter-eggs and already-unlocked badges always pass.
- Recomputes the headline summary (`unlockedCount`, `totalCount`,
  `earnedPoints`, `totalPoints`, `nextAchievement`) from the visible
  set so the dashboard counters match the rendered list. The
  `nextAchievement` selector skips hidden cards so we never tease
  the user with a "next goal: ?" suggestion.

The iOS format mock had to grow a `moodEntry.findMany` mock; that's
a one-line pure-test change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 10:34:32 +02:00
..
2026-03-10 20:14:33 +01:00
2026-03-10 20:14:33 +01:00