You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 14, 2026. It is now read-only.
When /api/streak/increment returns an increment (vs no-op), emit a client event to show a toast/modal: “Nice! Day N streak 🔥”.
Add milestone variants at N ∈ {1, 3, 7, 30} with unique copy (e.g., badge preview).
Persist a one-shot flag per day (UserStreakToast { userId, dateShown }) so it doesn’t re-show on page reloads.
Acceptance criteria: After completing a module, user sees a single congrats message (once per day); milestone copy shows at the right counts; events fire with { userId, day }.
When /api/streak/increment returns an increment (vs no-op), emit a client event to show a toast/modal: “Nice! Day N streak 🔥”.
Add milestone variants at N ∈ {1, 3, 7, 30} with unique copy (e.g., badge preview).
Persist a one-shot flag per day (UserStreakToast { userId, dateShown }) so it doesn’t re-show on page reloads.
Analytics: streak_increment, streak_milestone_shown, streak_toast_closed.
Acceptance criteria: After completing a module, user sees a single congrats message (once per day); milestone copy shows at the right counts; events fire with { userId, day }.