Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Download tar.gz
The .npmrc file with legacy-peer-deps=true was not being copied into the
Docker build stage, causing npm ci to fail on the vite-plugin-pwa peer
dependency conflict with vite@8.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When streak freezes bridge a gap, extend the streak by 1 for today's
activity (previously the streak stayed flat, losing a day). Also handle
duplicate column errors in migration runner so ALTER TABLE migrations
don't panic on server restart.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add streak freeze mechanic: users earn 1 streak freeze for every 7-day
streak milestone. Freezes are consumed to preserve streaks when users
miss days. If insufficient freezes exist, the streak resets.
Backend: new migration for streak_freezes column, updated streak logic
in progress route, updated stats responses to include streak_freezes.
Frontend: updated UserStats type, StreakBanner shows freeze count.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>