magic_notifications 0.0.1
magic_notifications: ^0.0.1 copied to clipboard
Multi-channel notification system for Magic Framework. Supports database (in-app), push (OneSignal), and mail channels.
Changelog #
[Unreleased] #
Changed #
magicconstraint bumped to^0.0.4. Aligns with the magic 0.0.4 release (which requiresfluttersdk_wind ^1.2.0for the design-first component/recipe layer). The previous^0.0.3excluded magic 0.0.4 under pub's0.0.zcaret semantics, which would have made a shared resolution withmagic_starter(now onmagic ^0.0.4) unsolvable.
0.0.1 - 2026-06-24 #
Breaking Changes #
- Removed
bin/magic_notifications.dartentrypoint: CLI commands now surface via host app's artisan binary (dart run <app>:artisan notifications:<cmd>), not as a standalonedart run magic_notifications <cmd>. Update your scripts and CI workflows accordingly. - Removed
magic_clidependency: Install now usesfluttersdk_artisan's manifest-driven model, not magic_cli's imperative Kernel.
Changed #
- Install now manifest-driven:
install.yamldeclares the static slice (provider injection only); dynamic logic (UUID validation, platform conditionals, placeholder-rendered config, arbitrary file writes) lives inInstallCommand's fluent override. - CLI architecture: Commands contributed via
MagicNotificationsArtisanProviderregistered in host'sartisan.providersconfig.
Added #
- MCP tools:
notifications_doctorandnotifications_channelsare now read-only tools available to AI agents via MCP.
📚 Documentation #
- README: Rewrite to match Magic ecosystem format
- doc/ folder: Add comprehensive documentation
- CLAUDE.md: Add project guidance for AI-assisted development
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