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?
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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)
JourneyAudioService+ animation infra.Depends on: the My Journey frontend ticket (base infra). Product decision required before starting: is a streak pressure loop desired at all?
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.