= 1.1.0 =

* New - Easy Digital Downloads (EDD) integration for order, subscription, and license management
* New - Native Stripe Subscription support for automated recurring billing with proper customer consent
* New - Stripe webhook endpoint with configurable secret for subscription lifecycle events
* New - EDD renewal orders — renewal transactions are recorded in both Licenzo and EDD
* New - Customer portal downloads now serve EDD native download files when no Licenzo release exists
* New - Admin settings for Stripe auto-renewal toggle, webhook URL, and webhook secret
* New - Rate limiting uses relational identity (license key, auth token, webhook provider) instead of IP addresses
* Fix - Dunning service reads admin-configured retry count and interval from settings
* Fix - EDD Recurring Payments addon detected to prevent double subscription handling
* Fix - Currency drift guard on subscription renewals
* Fix - Stripe requires_action treated as distinct state, not payment failure
* Fix - Single-cycle policy enforced for non-Stripe EDD gateways
* Fix - Notification system fully wired — all 14 notification types have settings, templates, and listeners
* Fix - WooOrderService notification dispatch uses correct payload format
* Fix - Customer lifetime value displays correctly on subscription and license detail pages
* Fix - Customer portal download authentication works with both pretty and non-pretty permalinks
* Security - Path traversal vulnerability fixed in data import chunked assembly
* Security - Rate limiting hardened with per-route named policies and route-template bucket keys
* Security - Trusted proxy-aware IP resolution foundation
* Security - Removed internal audit references and error_log calls from shipped code

= 1.0.0 =

* Initial release
