Add AI-powered mental wellness features: Reflection Companion, Pattern Tags, Weekly Digest
Three new Foundation Models features to deepen user engagement with mental wellness: 1. AI Reflection Companion — personalized feedback after completing guided reflections, referencing the user's actual words with personality-pack-adapted tone 2. Mood Pattern Tags — auto-extracts theme tags (work, family, stress, etc.) from notes and reflections, displayed as colored pills on entries 3. Weekly Emotional Digest — BGTask-scheduled Sunday digest with headline, summary, highlight, and intention; shown as card in Insights tab with notification All features: on-device (zero cost), premium-gated, iOS 26+ with graceful degradation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,8 @@ struct InsightsView: View {
|
||||
@EnvironmentObject var iapManager: IAPManager
|
||||
@State private var showSubscriptionStore = false
|
||||
@State private var selectedTab: InsightsTab = .insights
|
||||
@State private var weeklyDigest: WeeklyDigest?
|
||||
@State private var showDigest = true
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
@@ -94,15 +96,34 @@ struct InsightsView: View {
|
||||
.onAppear {
|
||||
AnalyticsManager.shared.trackScreen(.insights)
|
||||
viewModel.generateInsights()
|
||||
loadWeeklyDigest()
|
||||
}
|
||||
.padding(.top)
|
||||
}
|
||||
|
||||
// MARK: - Insights Content
|
||||
|
||||
private func loadWeeklyDigest() {
|
||||
if #available(iOS 26, *), !iapManager.shouldShowPaywall {
|
||||
if let digest = FoundationModelsDigestService.shared.loadLatestDigest(),
|
||||
digest.isFromCurrentWeek,
|
||||
!WeeklyDigest.isDismissed(for: digest) {
|
||||
weeklyDigest = digest
|
||||
showDigest = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var insightsContent: some View {
|
||||
ScrollView {
|
||||
VStack(spacing: 20) {
|
||||
// Weekly Digest Card
|
||||
if showDigest, let digest = weeklyDigest {
|
||||
WeeklyDigestCardView(digest: digest) {
|
||||
showDigest = false
|
||||
}
|
||||
}
|
||||
|
||||
// This Month Section
|
||||
InsightsSectionView(
|
||||
title: "This Month",
|
||||
|
||||
Reference in New Issue
Block a user