Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 2.63 KB

File metadata and controls

50 lines (41 loc) · 2.63 KB

Changelog

[Unreleased]

Added

  • Auth auto-attach: NotificationServiceProvider.boot() hooks Auth.stateNotifier to auto-initialize push on login and cleanup on logout
  • New push config keys: auto_attach_on_auth (default true), external_id_prefix (default 'user_'), auto_request_permission (default true)
  • Dedup via lastUserId prevents re-initialization on profile refresh or team switch

Fixed

  • Serialized auth listener queue prevents overlapping async runs on rapid auth state changes
  • Idempotent listener registration via static guard prevents duplicate listeners on hot restart or repeated boot() calls
  • Deterministic event-queue pump in tests replaces wall-clock Future.delayed for faster, reliable test execution

[0.0.1-alpha.1] - 2026-03-25

✨ Core Features

  • Multi-channel notifications: Database (in-app), Push (OneSignal), Mail (contract)
  • Notify facade: Static API for sending, fetching, polling, preferences
  • NotificationManager: Singleton dispatcher with channel/driver orchestration
  • NotificationPoller: Timer-based background polling with pause/resume/stop
  • User preferences: Global channel toggles + per-type channel preferences
  • Optimistic updates: markAsRead, markAllAsRead, delete with API rollback

🔔 Push Notifications

  • OneSignalDriver: iOS/Android push via onesignal_flutter ^5.4.0
  • OneSignalWebDriver: Web push via JS interop with conditional imports
  • PushPromptDialog: Soft prompt widget before OS permission request
  • Push subscription: Permission state tracking, opt-in/opt-out

🔧 CLI Tools

  • install: Interactive wizard — config, pubspec, platform files, OneSignal setup
  • configure: Show/update notification settings
  • doctor: Health check with exit codes
  • test: Send test notifications (dry-run, database, push, mail)
  • channels: List channel status
  • uninstall: Remove plugin integration
  • publish: Copy config stub to consumer project

🏗️ Architecture

  • Contract-first design: Notification, NotificationChannel, Notifiable abstractions
  • Service Provider: Two-phase bootstrap (register + boot) with IoC bindings
  • Driver abstraction: Swappable push providers (OneSignal, FCM, etc.)
  • Config-driven: All settings via Magic ConfigRepository

📚 Documentation

  • README: Concise pub.dev-ready format with badges, features table, quick start
  • doc/ folder: Comprehensive docs — installation, configuration, channels, drivers, preferences, CLI, architecture, Laravel backend
  • CLAUDE.md: Project guidance for AI-assisted development
  • CHANGELOG.md: Emoji-categorized changelog