Skip to content

Releases

Moztopia Notifications 0.9.0 — Whisper

Choose a tag to compare

@mozrin mozrin released this 09 Nov 02:48
Immutable release. Only release title and notes can be modified.
f290538

Whisper is the first named release of moztopia/notifications. It formalizes the package implemented in the 0.0.2 integration checkpoint. Notification runtime behavior and database schema are unchanged from that checkpoint.

Release changes

  • Introduce this root changelog as the source for release notes.
  • Set the package source version to 0.9.0.
  • Update public Composer installation and security-policy wording to reflect published numeric versions.

Package capabilities

  • Android FCM and direct iOS APNs delivery through the established Laravel notification channels.
  • One logical notification/history record per recipient and an independent queued delivery lifecycle per eligible device.
  • UUIDv7 device/message/delivery identities, polymorphic UUID recipients, encrypted tokens, scoped keyed fingerprints and generation-safe rotation/removal/reassignment.
  • Application/recipient event idempotency, retained deduplication metadata, current preferences and cancellation-aware history deletion.
  • Native Laravel database-notification read/unread behavior in moztopia_notification_history.
  • Laravel queues, bounded retries/backoff/TTL, safe provider error classification, invalid-token cleanup and recovery after enqueue outages.
  • Public wiki, Flutter integration contract, agent integration guide and separate real-device smoke procedure.
  • Public contribution templates, private vulnerability reporting, sponsorship and repository governance.

Requirements and installation

Laravel 12 or 13, PHP 8.4.27+ or 8.5.12+, UUID recipient models and a shared transactional database connection. Production integrations need their own transport credentials, durable Laravel queue, workers and scheduler.

composer require moztopia/notifications:0.9.0
php artisan vendor:publish --tag=moztopia-notifications-config
php artisan vendor:publish --tag=moztopia-notifications-migrations
php artisan migrate

The package is available through public Packagist; no private GitHub authentication or custom Composer repository is required. See the installation guide and agent guide.

Upgrade from 0.0.2

composer require moztopia/notifications:0.9.0

No additional schema migration or configuration-key change is introduced by Whisper. Preserve the already applied initial migration and existing data; do not republish it under a new timestamp or reset the database. Restart long-running queue workers through the consuming application's normal process.

Validation and limits

  • Provider-mocked Pest coverage includes 47 tests and 200 assertions across Laravel 12/13 and PHP 8.4/8.5, including an independent-connection SQLite concurrency check. Composer validation, Pint and installation/provider-discovery checks are documented in the testing guide.
  • Real Android/iOS receipt, display and tap handling remain unverified. Run the consuming application's device smoke tests before claiming successful production delivery.
  • Actual consuming database engines, durable queue drivers and Flutter client integration require environment-specific verification; SQLite/provider mocks do not prove those integrations.
  • Provider acceptance is not a device receipt. Exactly-once device delivery is not guaranteed after ambiguous network/commit failures; use stable IDs and client deduplication.
  • Calls for devices of the same recipient are serialized through database coordination. Fingerprint-key rotation requires coordinated maintenance. Receipt acknowledgments are deferred.