INNER CODE UNIT · TypeScript
updateStreak
vibeeval/vibecosystem · hooks/src/achievement-tracker.ts:113
function updateStreak(state: AchievementState): void {
if (!state.lastActive) {
state.streak = 1;
state.lastActive = TODAY;
return;
}
if (state.lastActive === TODAY) return; // already counted today
const last = new Date(state.lastActive);
const now = new Date(TODAY);
const diffDays = Math.round((now.getTime() - last.getTime()) / 86400000);
state.streak = diffDays === 1 ? state.streak + 1 : 1;
state.lastActive = TODAY;
}
const ACHIEVEMENT_NAMES: Record<string, string> = {
'first-blood': 'First Blood',