@riverpod Future<int> streak(Ref ref) async { final ds = ref.watch(supabaseDatasourceProvider); final dates = await ds.getSessionDates(); return StreakCalculator.currentStreak(dates); }