= 2.2.7 =

* IMPROVED: Worker now runs as a continuous loop, draining the queue completely before exiting
* IMPROVED: Statistics are synced after each batch (not only at the end)
* IMPROVED: Worker output includes worker ID on each line for clearer parallel logs
* FIXED: Uneven work distribution between parallel workers

= 2.2.6 =

* CRITICAL FIX: Worker now suppresses plugin header warnings in MultiSite environments
* CRITICAL FIX: Fixed Newsletter base class dependencies not loading in DOING_CRON context
* CRITICAL FIX: Worker now manually initializes plugin when newsletter_loaded hook doesn't fire
* CRITICAL FIX: Fixed MultiSite subdirectory site detection - worker now correctly loads site from --url path
* CRITICAL FIX: Removed WP_CLI constant - caused fatal errors with multisite-clone-duplicator and similar plugins
* FIXED: "headers already sent" warnings from Redirection plugin and other plugins
* IMPROVED: Output buffering prevents header warnings from breaking worker execution
* IMPROVED: Worker loads NewsletterAddon and NewsletterMailerAddon before plugin
* IMPROVED: Worker calls Plugin::instance_init() manually for proper initialization
* IMPROVED: REQUEST_URI now parsed from URL path for correct MultiSite site selection

= 2.2.5 =

* CRITICAL FIX: Worker now loads plugin manually in DOING_CRON context
* FIXED: "Newsletter SMTP plugin is not active" error in worker script
* IMPROVED: Worker compatibility with all WordPress environments including MultiSite

= 2.2.4 =

* CRITICAL FIX: Speed calculation now uses actual NEWSLETTER_CRON_INTERVAL value
* FIXED: Batch_size was being divided by 5 due to incorrect cron interval assumption
* IMPROVED: Plugin now dynamically calculates speed based on actual Newsletter cron interval
* IMPROVED: Supports any cron interval (60s, 300s, etc.) without hardcoded assumptions

= 2.2.3 =

* CRITICAL FIX: Overridden get_emails_per_run() to bypass Newsletter's internal calculation
* FIXED: Newsletter was calculating batch = speed / 12, resulting in only 8-16 emails per execution
* FIXED: Plugin now directly returns configured batch_size for proper queue loading

= 2.2.2 =

* FIXED: Newsletter now correctly respects configured batch_size when enqueuing emails
* FIXED: Emails are now enqueued all at once to database instead of gradually
* IMPROVED: Added public $batch property that Newsletter reads directly
* IMPROVED: Added get_batch_size() method for Newsletter compatibility

= 2.2.1 =

* NEW: MultiSite detection in settings page with tailored worker commands
* NEW: Worker script now supports --url parameter for MultiSite environments
* IMPROVED: Settings page automatically displays installation-specific worker setup instructions
* IMPROVED: Worker documentation with MultiSite usage examples
* IMPROVED: README with dedicated MultiSite Installations section

= 2.2.0 =

**Major Update: Queue-Based Architecture**

* NEW: Database-backed email queue for persistent, reliable email delivery.
* NEW: External CLI worker script for asynchronous email processing.
* NEW: Queue Status widget showing real-time statistics (pending, processing, sent, failed).
* NEW: Recent Campaigns section with key metrics in settings page.
* NEW: Email Queue admin page to view all queued and sent emails.
* NEW: Statistics admin page with campaign performance metrics.
* NEW: Parallel worker support for high-volume sending (10+ workers simultaneously).
* NEW: Automatic retry with exponential backoff (up to 3 attempts: 5min → 15min → 30min).
* NEW: Campaign statistics tracking (start time, duration, speed, success rate).
* CHANGED: Emails are now queued to database instead of sent immediately.
* CHANGED: Settings page reorganized with Queue Status, Recent Campaigns, and Worker Configuration sections.
* CHANGED: Campaign statistics now grouped by unique Newsletter ID instead of campaign name.
* REMOVED: max_per_connection setting (no longer needed with worker architecture).
* REMOVED: Direct PHPMailer usage (replaced with wp_mail() in workers).
* FIXED: Duplicate campaign statistics for campaigns with same name but different IDs.
* FIXED: Worker command documentation (corrected parallel worker syntax).
* BREAKING: Manual worker setup required - emails no longer send automatically.
* BREAKING: System cron or process supervisor required for production use.
* Technical: New database tables for queue and statistics with automatic creation on activation.
* Technical: Microsecond precision timestamps for accurate performance metrics.
* Security: CLI-only worker script with SQL injection prevention and capability checks.

= 2.1.0 =

* Changed uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin.
* This ensures Newsletter configuration is preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled.
* Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin.

= 2.0.1 =

* Removed Network requirement from plugin headers to allow single-site activation.

= 2.0.0 =

* Updated compatibility with SMTP (by ROBOTSTXT) plugin 2.0.0.
* Enhanced integration with core SMTP plugin security improvements.
* Improved error handling and validation.
* Code quality improvements.

= 1.0.0 =

* Initial release with SMTPKeepAlive support for efficient SMTP batch sending.
* Amazon SES API integration for optimized delivery.
* Automatic configuration from ROBOTSTXT SMTP plugin.
* Dynamic speed calculation from SMTP rate limits (up to 32,400 emails/hour).
* Batch processing with configurable batch size (up to 2,610 emails per chunk).
* Support for custom batch sizes per provider type.
* Max emails per connection configuration to prevent timeouts.
* Integration with ROBOTSTXT SMTP rate limiting system.
* Automatic FROM address configuration from ROBOTSTXT SMTP.
* HELO hostname configuration for multisite compatibility.
* Comprehensive error logging to Newsletter system.
* Automatic detection of SMTP vs Amazon SES mode.
* Resilient error handling - continues sending even if individual recipients fail.
* WP-CLI compatibility for cron execution.
* Uninstall script to clean database on plugin deletion.
* Performance: 20-30x faster bulk email sending compared to standard wp_mail().
* Performance: Sends 22 emails in ~7 seconds using SMTPKeepAlive.
