Session count alone says nothing about consistency, which is what makes
pelvic floor training work. Record every completion timestamp and derive
streaks from local calendar days: current streak (survives until a full
day is missed), best streak, and a 14-day dot strip on the home screen.
The done screen now shows the streak so finishing is rewarded.
- src/lib/streak.ts: pure day-key / streak logic, covered by node --test
- store: new `sessions` array, defaulted for pre-existing installs
- home: StreakCard, screen now scrolls for smaller phones
- tsconfig: TS 6 no longer auto-includes @types, so declare node types
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Guided session timer: progressive squeeze-holds (5s +1s/3 sessions, cap
30s), reverse-kegel push holds, quick flicks in/out. Local-only progress
in AsyncStorage; signed APK via Gitea Actions on the desktop runner.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>