Fix boundary bugs, route side effects through MoodLogger, add data listeners
- Fix ExtensionDataProvider <= boundary to < in date queries (prevented cross-day leaks) - Replace force-unwraps with guards and add error logging in DataControllerGET and ExtensionDataProvider - Route DayViewViewModel update/delete through MoodLogger.shared (was duplicating side effects) - Add data listeners to InsightsViewModel and YearViewModel for cross-tab refresh - Add HealthKitManager.deleteMood(for:) for single-date cleanup - Add SharedModelContainer.isUsingInMemoryFallback flag with critical logging - Add analytics events: entryDeleted, allDataCleared, duplicatesRemoved, storageFallbackActivated Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -377,6 +377,9 @@ extension AnalyticsManager {
|
||||
case photoAdded
|
||||
case photoDeleted
|
||||
case missingEntriesFilled(count: Int)
|
||||
case entryDeleted(mood: Int)
|
||||
case allDataCleared
|
||||
case duplicatesRemoved(count: Int)
|
||||
|
||||
// MARK: Customization
|
||||
case themeChanged(themeId: String)
|
||||
@@ -448,6 +451,9 @@ extension AnalyticsManager {
|
||||
// MARK: Sharing
|
||||
case shareTemplateViewed(template: String)
|
||||
|
||||
// MARK: Error
|
||||
case storageFallbackActivated
|
||||
|
||||
// MARK: Legal
|
||||
case eulaViewed
|
||||
case privacyPolicyViewed
|
||||
@@ -468,6 +474,12 @@ extension AnalyticsManager {
|
||||
return ("photo_deleted", nil)
|
||||
case .missingEntriesFilled(let count):
|
||||
return ("missing_entries_filled", ["count": count])
|
||||
case .entryDeleted(let mood):
|
||||
return ("entry_deleted", ["mood": mood])
|
||||
case .allDataCleared:
|
||||
return ("all_data_cleared", nil)
|
||||
case .duplicatesRemoved(let count):
|
||||
return ("duplicates_removed", ["count": count])
|
||||
|
||||
// Customization
|
||||
case .themeChanged(let id):
|
||||
@@ -591,6 +603,10 @@ extension AnalyticsManager {
|
||||
case .shareTemplateViewed(let template):
|
||||
return ("share_template_viewed", ["template": template])
|
||||
|
||||
// Error
|
||||
case .storageFallbackActivated:
|
||||
return ("storage_fallback_activated", nil)
|
||||
|
||||
// Legal
|
||||
case .eulaViewed:
|
||||
return ("eula_viewed", nil)
|
||||
|
||||
Reference in New Issue
Block a user