feat(my-journey): daily streaks + streak-milestone feedback (fast-follow, deferred from #330) #335

Closed
opened 2026-07-02 05:40:07 +00:00 by spikerj · 1 comment
Owner

Deferred out of the #330 v1 per the spike recommendation. Streaks need a new backend field and a whole pressure loop that warrants its own product call (and may conflict with a low-pressure kids' tone), so they ship as a fast-follow once the base visualization lands.

Scope (when adopted)

  • Backend: last-activity-day per user + daily rollover to compute current/longest streak. New field on the user progress doc + a small daily job (or lazy compute on read).
  • Frontend: streak flame in the My Journey header (node model already reserves the slot), streak-milestone celebration moment reusing the JourneyAudioService + animation infra.
  • Decide the pressure model: freeze/repair tokens vs none; recommend a gentle, non-punitive default for the younger audience.
  • i18n en/es, tests.

Depends on: the My Journey frontend ticket (base infra). Product decision required before starting: is a streak pressure loop desired at all?

Deferred out of the #330 v1 per the spike recommendation. Streaks need a new backend field and a whole pressure loop that warrants its own product call (and may conflict with a low-pressure kids' tone), so they ship as a fast-follow once the base visualization lands. **Scope (when adopted)** - Backend: last-activity-day per user + daily rollover to compute current/longest streak. New field on the user progress doc + a small daily job (or lazy compute on read). - Frontend: streak flame in the My Journey header (node model already reserves the slot), streak-milestone celebration moment reusing the `JourneyAudioService` + animation infra. - Decide the pressure model: freeze/repair tokens vs none; recommend a gentle, non-punitive default for the younger audience. - i18n en/es, tests. **Depends on:** the My Journey frontend ticket (base infra). Product decision required before starting: is a streak pressure loop desired at all?
Author
Owner

Folded into v1 per the #330 decision — streaks are now part of the frontend build (#333) with backend fields in #334. Closing; scope tracked there.

Folded into v1 per the #330 decision — streaks are now part of the frontend build (#333) with backend fields in #334. Closing; scope tracked there.
Sign in to join this conversation.