Matthew Raymer
a070ec9f0b
feat(ios): complete remaining Phase 2 enhancements
...
Implement CoreData history and clarify fetcher parameter usage.
Changes:
- DailyNotificationBackgroundTasks: Implement CoreData history recording
- recordHistory(): Now uses PersistenceController and History.create()
- Records kind and outcome to CoreData History entity
- Removed TODO, fully implemented
- DailyNotificationPlugin: Clarify fetcher parameter
- Updated comment: fetcher parameter is unused
- fetchScheduler handles prefetch scheduling (already implemented)
- DailyNotificationReactivationManager: Clarify fetcher parameter
- Updated comment: fetcher parameter is unused
- fetchScheduler handles prefetch scheduling (already implemented)
Phase 2 Progress: 6 of 8 enhancements complete
- ✅ Rolling window maintenance
- ✅ TTL validation
- ✅ Database statistics
- ✅ Metrics recording
- ✅ CoreData history (this commit)
- ✅ Fetcher instances clarified (this commit)
- ⏳ NotificationContent properties (deliveryStatus, lastDeliveryAttempt) - requires model changes
Verification:
- TypeScript typecheck: PASS
- Tests: PASS (115 tests, 8 test suites)
- No linter errors
2025-12-24 07:32:43 +00:00
Server
5844b92e18
feat(ios): implement Phase 1 permission methods and fix build issues
...
Implement checkPermissionStatus() and requestNotificationPermissions()
methods for iOS plugin, matching Android functionality. Fix compilation
errors across plugin files and add comprehensive build/test infrastructure.
Key Changes:
- Add checkPermissionStatus() and requestNotificationPermissions() methods
- Fix 13+ categories of Swift compilation errors (type conversions, logger
API, access control, async/await, etc.)
- Create DailyNotificationScheduler, DailyNotificationStorage,
DailyNotificationStateActor, and DailyNotificationErrorCodes components
- Fix CoreData initialization to handle missing model gracefully for Phase 1
- Add iOS test app build script with simulator auto-detection
- Update directive with lessons learned from build and permission work
Build Status: ✅ BUILD SUCCEEDED
Test App: ✅ Ready for iOS Simulator testing
Files Modified:
- doc/directives/0003-iOS-Android-Parity-Directive.md (lessons learned)
- ios/Plugin/DailyNotificationPlugin.swift (Phase 1 methods)
- ios/Plugin/DailyNotificationModel.swift (CoreData fix)
- 11+ other plugin files (compilation fixes)
Files Added:
- ios/Plugin/DailyNotificationScheduler.swift
- ios/Plugin/DailyNotificationStorage.swift
- ios/Plugin/DailyNotificationStateActor.swift
- ios/Plugin/DailyNotificationErrorCodes.swift
- scripts/build-ios-test-app.sh
- scripts/setup-ios-test-app.sh
- test-apps/ios-test-app/ (full test app)
- Multiple Phase 1 documentation files
2025-11-13 05:14:24 -08:00
Matthew Raymer
a71fb2fd67
feat(ios)!: implement iOS parity with BGTaskScheduler + UNUserNotificationCenter
...
- Add complete iOS plugin implementation with BGTaskScheduler integration
- Implement Core Data model mirroring Android SQLite schema (ContentCache, Schedule, Callback, History)
- Add background task handlers for content fetch and notification delivery
- Implement TTL-at-fire logic with Core Data persistence
- Add callback management with HTTP and local callback support
- Include comprehensive error handling and structured logging
- Add Info.plist configuration for background tasks and permissions
- Support for dual scheduling with BGAppRefreshTask and BGProcessingTask
BREAKING CHANGE: iOS implementation requires iOS 13.0+ and background task permissions
2025-09-22 09:39:54 +00:00