feat: add Firebase Firestore engine telemetry#14
Closed
Conversation
Add per-engine timing and trace upload to Firestore for remote quality baselining. Each dashboard refresh records computed scores, confidence levels, and durations — never raw HealthKit values — tied to a SHA256- hashed Apple Sign-In user ID. - Add Firebase SDK (FirebaseFirestore) to iOS target via SPM - Create PipelineTrace model with per-engine sub-structs - Create EngineTelemetryService singleton for Firestore uploads - Create FirestoreAnalyticsProvider for general analytics events - Instrument DashboardViewModel.refresh() with per-engine timing - Add telemetry consent toggle in Settings (always on in DEBUG) - Initialize Firebase and telemetry service at app startup
…l docs - Add launch free year: all users get full Coach access for 1 year from first sign-in with no subscription required - Add LaunchCongratsView shown once after first sign-in - Update Settings subscription section to show free year status with days remaining instead of upgrade button - Add Firestore telemetry integration tests that upload mock health data through all 9 engines and read back to validate - Add privacy policy and terms of service covering HealthKit, Firebase telemetry, push notifications, and solo dev protections - Add GoogleService-Info.plist to .gitignore
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PipelineTracewith per-engine scores, confidence levels, and timing (never raw HealthKit values)users/{sha256(appleUserId)}/traces/{autoId}for per-user queryingFirestoreAnalyticsProviderto the existingAnalyticsProviderprotocol for general event trackingNew files
iOS/Models/PipelineTrace.swiftiOS/Services/EngineTelemetryService.swiftiOS/Services/FirestoreAnalyticsProvider.swiftModified files
project.ymliOS/ThumpiOSApp.swiftiOS/ViewModels/DashboardViewModel.swiftiOS/Views/SettingsView.swiftTest plan
GoogleService-Info.plistxcodegen generatesucceeds