Commit Graph

3 Commits

Author SHA1 Message Date
Matthew Raymer
de6331aabd feat(android): implement Phase 1.2 TTL-at-fire enforcement
- Add DailyNotificationTTLEnforcer with freshness validation logic
- Add TTL validation to scheduling path before arming notifications
- Implement skip rule: if (T - fetchedAt) > ttlSeconds → skip arming
- Add TTL violation logging with TTL_VIOLATION code
- Add comprehensive unit tests for TTL enforcement
- Add TTL enforcer integration to DailyNotificationPlugin
- Add phase1-2-ttl-enforcement.ts usage examples

This implements the critical Phase 1.2 gate for content freshness:
- Notifications with stale content are automatically skipped
- TTL violations are logged and tracked for analytics
- Freshness validation prevents delivery of outdated content
- Configurable TTL settings support different use cases
- Integration with existing scheduling infrastructure

Files: 5 changed, 878 insertions(+)
2025-09-08 09:58:15 +00:00
Matthew Raymer
489dd4ac28 feat(android): implement Phase 1.1 SQLite database sharing with WAL mode
- Add DailyNotificationDatabase.java with three-table schema and WAL configuration
- Add DailyNotificationMigration.java for SharedPreferences to SQLite migration
- Add DailyNotificationDatabaseTest.java with comprehensive unit tests
- Add ConfigureOptions interface with dbPath, storage mode, and TTL settings
- Add configure() method to DailyNotificationPlugin interface
- Update Android plugin with SQLite integration and automatic migration
- Update web implementations to implement new configure() method
- Add phase1-sqlite-usage.ts example demonstrating shared storage configuration

This implements the critical Phase 1.1 gate for shared SQLite storage:
- App and plugin can open the same SQLite file with WAL mode
- Automatic migration from SharedPreferences preserves existing data
- Schema version checking prevents compatibility issues
- Concurrent reads during background writes enabled
- Configuration API supports both shared and tiered storage modes

Files: 8 changed, 1204 insertions(+)
2025-09-08 09:49:08 +00:00
Matthew Raymer
71e0f297ff refactor: improve build configuration and code organization
- Add build scripts for Android and iOS platforms
- Remove duplicate web implementation (src/web.ts)
- Add proper TypeScript configuration
- Add module documentation to index.ts
- Clean up package.json scripts

This commit improves the project structure and build process by:
1. Adding dedicated build scripts for native platforms
2. Removing redundant web implementation
3. Adding proper TypeScript configuration with strict mode
4. Improving code documentation
5. Organizing package.json scripts

The changes maintain backward compatibility while improving
the development experience and code quality.
2025-03-25 13:13:55 +00:00