- Add Contract v1 breaking changes to CHANGELOG.md - Document field name changes (fetchedAt→fetchTime, url→mediaUrl) - Update test mocks in www/index.html and ios/App/App/public/index.html - Mocks now return Contract v1 format (fetchTime, title, body, ttlSeconds) BREAKING CHANGE: API responses now use Contract v1 field names. See docs/CONTRACT_V1_BREAKING_CHANGES.md for migration guide.
6.5 KiB
6.5 KiB
Changelog
All notable changes to the Daily Notification Plugin will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Breaking Changes
- Contract v1 Migration: API responses now use Contract v1 field names
fetchedAt→fetchTime(epoch ms) - All content cache API methods now returnfetchTimeinstead offetchedAturl→mediaUrl- Media URL field renamed to match Contract v1payload(string) → structured fields - Response now includestitle,body, andmetadatainstead of rawpayloadstringmetafield removed - Replaced by structuredmetadataobject- Affected Methods:
getContentCache(),getContentCacheById(),getLatestContentCache(),getContentCacheHistory() - Migration Guide: See
docs/CONTRACT_V1_BREAKING_CHANGES.mdfor details - TypeScript Interface:
ContentCacheinterface updated to match Contract v1 (legacy fields marked as deprecated)
Added
-
Contract v1 Freeze: Contract v1 directive and validation system
- Contract v1 defined and frozen (
contracts/NotificationContract.v1.ts) - Contract validation script (
./scripts/check-contract.sh) - Pre-commit hook for contract validation (optional)
- DTOs and mappers for iOS and Android to ensure Contract v1 compliance
- See
docs/0017-Daily-Notification-Contract-Freeze.mdfor details
- Contract v1 defined and frozen (
-
Cross-Platform DTOs: Data Transfer Objects for Contract v1
- iOS:
NotificationContentDTOandNotificationContentMapper - Android:
NotificationContentDTOandNotificationContentMapper - Ensures consistent field names and types across platforms
- iOS:
Changed
- API Response Format: All content cache methods now return Contract v1 format
- Structured response with
title,body,fetchTime,mediaUrl,ttlSeconds, etc. - Legacy fields (
fetchedAt,payload,meta) deprecated but may be present for backward compatibility
- Structured response with
[2.1.0] - 2025-01-02
Added
- Static Daily Reminders: New functionality for simple daily notifications without network content
- Cross-Platform Reminder API: Consistent reminder management across Android, iOS, and Web
- Reminder Management: Full CRUD operations for reminder scheduling and management
- Offline Reminder Support: Reminders work completely offline without content caching
- Rich Reminder Customization: Support for custom titles, bodies, sounds, vibration, and priorities
- Persistent Reminder Storage: Reminders survive app restarts and device reboots
New Methods
scheduleDailyReminder(options): Schedule a simple daily remindercancelDailyReminder(reminderId): Cancel a specific remindergetScheduledReminders(): Get all scheduled remindersupdateDailyReminder(reminderId, options): Update an existing reminder
Features
- No Network Dependency: Static reminders work completely offline
- Simple Time Format: Easy HH:mm time format (e.g., "09:00")
- Priority Levels: Support for low, normal, and high priority notifications
- Repeat Options: Configurable daily repetition
- Platform Integration: Native notification channels and categories
- Test App Integration: Complete test app support for reminder functionality
Documentation
- Updated README.md with static reminder examples and API reference
- Added comprehensive usage examples in USAGE.md
- Created detailed example file:
examples/static-daily-reminders.ts - Enhanced test apps with reminder management UI
[1.0.0] - 2024-03-20
Added
- Initial release of the Daily Notification Plugin
- Basic notification scheduling functionality
- Support for multiple notification schedules
- Timezone-aware scheduling
- Offline support with content caching
- Retry logic with exponential backoff
- Custom notification content handlers
- Event-based notification handling
- Comprehensive settings management
- TypeScript support with full type definitions
Features
- Schedule daily notifications at specific times
- Support for multiple notification schedules
- Timezone-aware scheduling
- Offline support with content caching
- Retry logic with exponential backoff
- Custom notification content handlers
- Event-based notification handling
- Comprehensive settings management
Security
- HTTPS-only network requests
- Content validation before display
- Secure storage of sensitive data
- Permission-based access control
- No sensitive data in logs
Documentation
- Comprehensive API documentation
- Usage examples for basic and advanced scenarios
- Enterprise-level implementation examples
- Security best practices
- Platform-specific implementation details
Testing
- Unit tests for core functionality
- Integration tests for platform features
- Advanced scenario tests
- Enterprise feature tests
- Security validation tests
[0.9.0] - 2024-03-15
Added
- Beta release with core functionality
- Basic notification scheduling
- Simple content handling
- Basic event system
Changed
- Improved error handling
- Enhanced type definitions
- Better documentation
Fixed
- Initial bug fixes and improvements
- TypeScript type issues
- Documentation clarity
[0.8.0] - 2024-03-10
Added
- Alpha release with basic features
- Initial plugin structure
- Basic TypeScript interfaces
- Simple notification scheduling
Changed
- Early development improvements
- Initial documentation
- Basic test setup
Fixed
- Early bug fixes
- Initial type issues
- Basic documentation
[Unreleased]
Added
- Enterprise features
- Notification queue system
- A/B testing support
- Advanced analytics tracking
- User preferences management
- Content personalization
- Rate limiting
- Additional test scenarios
- More example implementations
- Enhanced documentation
Changed
- Improved error handling
- Enhanced type definitions
- Better documentation structure
- More comprehensive examples
Fixed
- TypeScript type issues
- Documentation clarity
- Test coverage gaps
- Example code improvements
Security
- Enhanced security measures
- Additional validation
- Improved error handling
- Better logging practices
Documentation
- Added enterprise usage examples
- Enhanced API documentation
- Improved security guidelines
- Better troubleshooting guides
Testing
- Added enterprise scenario tests
- Enhanced test coverage
- Improved test organization
- Better test documentation