Files
daily-notification-plugin/CHANGELOG.md
Matthew Raymer 5172c696bd docs: Update CHANGELOG and test mocks for Contract v1 migration
- 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.
2025-11-12 11:20:15 +00:00

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
    • fetchedAtfetchTime (epoch ms) - All content cache API methods now return fetchTime instead of fetchedAt
    • urlmediaUrl - Media URL field renamed to match Contract v1
    • payload (string) → structured fields - Response now includes title, body, and metadata instead of raw payload string
    • meta field removed - Replaced by structured metadata object
    • Affected Methods: getContentCache(), getContentCacheById(), getLatestContentCache(), getContentCacheHistory()
    • Migration Guide: See docs/CONTRACT_V1_BREAKING_CHANGES.md for details
    • TypeScript Interface: ContentCache interface 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.md for details
  • Cross-Platform DTOs: Data Transfer Objects for Contract v1

    • iOS: NotificationContentDTO and NotificationContentMapper
    • Android: NotificationContentDTO and NotificationContentMapper
    • Ensures consistent field names and types across platforms

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

[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 reminder
  • cancelDailyReminder(reminderId): Cancel a specific reminder
  • getScheduledReminders(): Get all scheduled reminders
  • updateDailyReminder(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