🎉 Major Release - Hook-Based Debug System
This release introduces a major upgrade to the debugging experience with an extensible hook-based system, eliminating the risk of debug notifications appearing in production apps while providing better task lifecycle visibility.
🚨 Breaking Changes
Debug System Changes
isInDebugMode
parameter is deprecated inWorkmanager().initialize()
- Parameter still accepted but will be removed in future version
- Replace with hook-based debug system using
WorkmanagerDebug.setCurrent()
- iOS minimum deployment target increased to 14.0
- Update your iOS project's deployment target to 14.0+
- Required for notification debug handlers (iOS 14+ notification permissions)
registerPeriodicTask
now usesExistingPeriodicWorkPolicy
- Replace
ExistingWorkPolicy
parameter withExistingPeriodicWorkPolicy
- Replace
✨ New Features
Hook-Based Debug System
NotificationDebugHandler
- Shows task status as notifications with configurable channelsLoggingDebugHandler
- Writes task events to system log- Eliminates production risks - Debug notifications only appear when explicitly enabled by developers
- Configurable notification channels and grouping for better organization on Android
Enhanced Task Lifecycle Tracking
TaskStatus.SCHEDULED
- Tasks are now tracked when first scheduledTaskStatus.RESCHEDULED
- Better visibility into task retry behavior- Improved notification flow: Started → Rescheduled → Retrying → Success
🐛 Bug Fixes
- Fixed periodic tasks running at wrong frequency when re-registered (#622)
- Changed default policy from
KEEP
toUPDATE
UPDATE
ensures new task configurations replace existing ones
- Changed default policy from
- Fixed crash when inputData contains null values (thanks @Dr-wgy)
- Fixed Android retry detection using
runAttemptCount
to properly identify retrying tasks - Fixed crash when background task callback is null (thanks @jonathanduke, @Muneeza-PT)
📈 Improvements
- Updated androidx.work from 2.9.0 to 2.10.2 for better stability
- Cleaner notification icons using modern symbols (
▶️ ✅ ❌ 🔄 ⏹️ 📅) - Better error handling - Removed duplicate exception notifications for normal task failures
- Example app improvements with proper package naming and AndroidManifest structure
🙏 Contributors
Special thanks to @Dr-wgy, @jonathanduke, @Muneeza-PT, and all contributors who helped identify and resolve critical issues!