Commit Graph

32 Commits

Author SHA1 Message Date
Trey t
0442eab1f8 Rebrand entire project from Feels to Reflect
Complete rename across all bundle IDs, App Groups, CloudKit containers,
StoreKit product IDs, data store filenames, URL schemes, logger subsystems,
Swift identifiers, user-facing strings (7 languages), file names, directory
names, Xcode project, schemes, assets, and documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:47:16 -06:00
Trey t
5b8a98f763 Fix feels://subscribe deep link on cold launch via app.open()
When XCUITest calls app.open(url), the app relaunches (cold launch) and
onOpenURL doesn't fire reliably. Capture the URL from launch options in
AppDelegate and check it on appear with a short delay to ensure the view
hierarchy is ready for sheet presentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:58:12 -06:00
Trey t
e0330dbc8d Replace EventLogger with typed AnalyticsManager using PostHog
Complete analytics overhaul: delete EventLogger.swift, create Analytics.swift
with typed event enum (~45 events), screen tracking, super properties
(theme, icon pack, voting layout, etc.), session replay with kill switch,
autocapture, and network telemetry. Replace all 99 call sites across 38 files
with compiler-enforced typed events in object_action naming convention.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:12:33 -06:00
Trey t
bea2d3bbc9 Update Neon colors and show color circles in theme picker
- Update NeonMoodTint to use synthwave colors matching Neon voting style
  (cyan, lime, yellow, orange, magenta)
- Replace text label with 5 color circles in theme preview Colors row
- Remove unused textColor customization code and picker views
- Add .id(moodTint) to Month/Year views for color refresh
- Clean up various unused color-related code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 00:08:01 -06:00
Trey t
440b04159e Add Apple platform features and UX improvements
- Add HealthKit State of Mind sync for mood entries
- Add Live Activity with streak display and rating time window
- Add App Shortcuts/Siri integration for voice mood logging
- Add TipKit hints for feature discovery
- Add centralized MoodLogger for consistent side effects
- Add reminder time setting in Settings with time picker
- Fix duplicate notifications when changing reminder time
- Fix Live Activity streak showing 0 when not yet rated today
- Fix slow tap response in entry detail mood selection
- Update widget timeline to refresh at rating time
- Sync widgets when reminder time changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 17:21:55 -06:00
Trey t
f822927e98 Add interactive widget voting and fix warnings/bugs
Widget Features:
- Add inline voting to timeline widget when no entry exists for today
- Show random prompt from notification strings in voting mode
- Update vote widget to use simple icon style for selection
- Make stats bar full width in voted state view
- Add Localizable.strings to widget extension target

Bug Fixes:
- Fix inverted date calculation in InsightsViewModel streak logic
- Replace force unwraps with safe optional handling in widgets
- Replace fatalError calls with graceful error handling
- Fix CSV import safety in SettingsView

Warning Fixes:
- Add @retroactive to Color and Date extension conformances
- Update deprecated onChange(of:perform:) to new syntax
- Replace deprecated applicationIconBadgeNumber with setBadgeCount
- Replace deprecated UIApplication.shared.windows API
- Add @preconcurrency for Swift 6 protocol conformances
- Add missing widget family cases to switch statement
- Remove unused variables and #warning directives

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 16:23:12 -06:00
Trey t
aaaf04f05e Migrate from Core Data to SwiftData
- Replace Core Data with SwiftData for iOS 18+
- Create MoodEntryModel as @Model class replacing MoodEntry entity
- Create SharedModelContainer for App Group container sharing
- Create DataController with CRUD extensions replacing PersistenceController
- Update all views and view models to use MoodEntryModel
- Update widget extension to use SwiftData
- Remove old Core Data files (Persistence*.swift, .xcdatamodeld)
- Add EntryType enum with all entry type cases
- Fix widget label truncation with proper spacing and text scaling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 15:08:05 -06:00
Trey t
f2565678be wip 2025-12-09 23:37:04 -06:00
Trey t
3a10b4b8d6 wip 2025-12-09 23:36:57 -06:00
Trey t
f2c510de50 Refactor StoreKit 2 subscription system and add interactive vote widget
## StoreKit 2 Refactor
- Rewrote IAPManager with clean enum-based state model (SubscriptionState)
- Added native SubscriptionStoreView for iOS 17+ purchase UI
- Subscription status now checked on every app launch
- Synced subscription status to UserDefaults for widget access
- Simplified PurchaseButtonView and IAPWarningView
- Removed unused StatusInfoView

## Interactive Vote Widget
- New FeelsVoteWidget with App Intents for mood voting
- Subscribers can vote directly from widget, shows stats after voting
- Non-subscribers see "Tap to subscribe" which opens subscription store
- Added feels:// URL scheme for deep linking

## Firebase Removal
- Commented out Firebase imports and initialization
- EventLogger now prints to console in DEBUG mode only

## Other Changes
- Added fallback for Core Data when App Group unavailable
- Added new localization strings for subscription UI
- Updated entitlements and Info.plist

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 23:07:16 -06:00
Trey t
d116d082eb fix missing images heights on month detail 2022-04-23 11:14:10 -05:00
Trey t
6fa4e2db26 change a bunch of shit to get importing / adding new vote have the right weekday 2022-04-05 22:33:12 -05:00
Trey t
dec8f2d84d bunch of random work 2022-04-03 20:20:12 -05:00
Trey t
90574ea6ad if no custom text color use defaults 2022-03-23 15:14:07 -05:00
Trey t
f3542117a7 add logging 2022-03-13 20:06:26 -05:00
Trey t
215ad5bb6d add in firebase logging 2022-03-11 10:32:12 -06:00
Trey t
612483e7f0 popup for nsfw content 2022-03-10 11:29:47 -06:00
Trey t
7692f455c8 customize text color 2022-03-06 11:25:05 -06:00
Trey t
d56e74053e hopefully fix issue where voting is filled in with missing when its time to vote 2022-03-05 11:28:29 -06:00
Trey t
d88c4e7a05 a lot of theme work 2022-02-23 00:39:20 -06:00
Trey t
769c6335d9 fix crash where homeViewTwo view model wasnt being updated 2022-02-21 22:38:07 -06:00
Trey t
0035f61204 everything changed 2022-02-20 14:33:58 -06:00
Trey t
f66caf93dd closed #78 2022-02-10 11:54:32 -06:00
Trey t
92514a5e33 closed #79 2022-02-10 10:59:19 -06:00
Trey t
0d33aabb22 take out application register for notification to maybe stop duplicate local notifications 2022-01-29 12:35:11 -06:00
Trey t
bbb476335f fake commit to say closed #42 2022-01-23 13:43:49 -06:00
Trey t
7322151595 remove notification badge when vote through notification 2022-01-22 16:16:41 -06:00
Trey t
dfe886a706 fix saved time vs header time voting
only show onboarding once
2022-01-22 14:06:33 -06:00
Trey t
01e54d9373 closed #38 2022-01-22 13:57:25 -06:00
Trey t
d0842d14d7 closed #34 2022-01-19 11:47:25 -06:00
Trey t
7c2de764b4 work around widgets ... not sure if they work 2022-01-15 18:05:48 -06:00
Trey t
64dd1855ac WIP - a lot of uncommitted work 2022-01-15 12:03:31 -06:00