INNER CODE UNIT · TypeScript
saveState
vibeeval/vibecosystem · hooks/src/achievement-tracker.ts:107
function saveState(state: AchievementState): void {
const dir = join(homedir(), '.claude');
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
writeFileSync(ACHIEVEMENTS_PATH, JSON.stringify(state, null, 2));
}
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);