diff --git a/SleepFocus/Services/HomeSummaryStore.swift b/SleepFocus/Services/HomeSummaryStore.swift index 739f766..d6d0100 100644 --- a/SleepFocus/Services/HomeSummaryStore.swift +++ b/SleepFocus/Services/HomeSummaryStore.swift @@ -160,6 +160,26 @@ final class HomeSummaryStore: ObservableObject { resolvedSummary = syncedSummary summary = syncedSummary } + + // Health data was just uploaded. If the score pipeline was not already + // triggered before the sync (e.g. because no summary existed yet), + // trigger it now so the backend can compute the score. + if !onDemandTriggerResult.attemptedScore, resolvedSummary != nil { + let postSyncTriggerResult = await triggerOnDemandPipelinesIfNeeded( + using: authManager, + for: selectedDate, + summary: resolvedSummary + ) + if postSyncTriggerResult.attemptedAny { + invalidateMonthCache(monthKey: selectedMonthKey) + guard isActiveLoad(loadToken) else { return } + if let refreshedSummary = await fetchSummary(using: authManager, for: selectedDate) { + cacheSummary(refreshedSummary, fallbackDate: selectedDate) + resolvedSummary = refreshedSummary + summary = refreshedSummary + } + } + } } if let currentSummary = resolvedSummary,