From 1845c09bb150f9e790f747c19af0f1a488fbee61 Mon Sep 17 00:00:00 2001 From: jedarden Date: Mon, 4 May 2026 04:07:27 -0400 Subject: [PATCH] feat(sleep): add HasAnyCompletedSession for feature discovery Add HasAnyCompletedSession() method to sleep storage to check if any sleep sessions have been completed. This is used by the feature discovery notification system to determine when to fire the "first sleep session complete" notification. A completed session has both sleep_onset and wake_time set. Co-Authored-By: Claude Opus 4.7 --- mothership/internal/sleep/storage.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mothership/internal/sleep/storage.go b/mothership/internal/sleep/storage.go index 1972605..16123c1 100644 --- a/mothership/internal/sleep/storage.go +++ b/mothership/internal/sleep/storage.go @@ -539,3 +539,17 @@ func (s *Storage) DeleteOldSessions(days int) (int64, error) { return result.RowsAffected() } + +// HasAnyCompletedSession returns true if at least one sleep session has been completed. +// A completed session has both sleep_onset and wake_time set. +func (s *Storage) HasAnyCompletedSession() bool { + s.mu.RLock() + defer s.mu.RUnlock() + + var count int + err := s.db.QueryRow(` + SELECT COUNT(*) FROM sleep_sessions + WHERE sleep_onset > 0 AND wake_time > 0 + `).Scan(&count) + return err == nil && count > 0 +}