= 0.3.2 :: 2026-08-20 =
* Fixed: non-custodial checkout accepts Blink/Galoy invoices with their real 30-day expiry. Instead of rejecting an invoice whose lifetime exceeds the tracking window, the plugin accepts it and tracks it for the window, so checkout no longer fails with "Can't create the Lightning invoice".

= 0.3.0 :: 2026-08-18 =
* Fixed: non-custodial checkout now accepts Blink/Galoy invoices with 24-hour expiry instead of rejecting them as too long.
* Fixed: non-custodial orders now settle in the background. Previously settlement only happened while the customer's pay page was open, so a buyer who paid from a phone and closed the tab could have their paid order cancelled when hold-stock expired.
* Fixed: an unreachable verification endpoint no longer causes orders to be cancelled. Uncertainty leaves an order pending for review rather than expiring it.
* Fixed: the pay page's expiry deadline works. It was passed to the browser as a string, so the check never matched and the page polled indefinitely without ever showing the expiry message.
* Fixed: the pay page no longer declares a still-payable invoice expired. The client cut-off was shorter than the invoice itself.
* Fixed: changing the account type or lightning address no longer strands orders that are already in flight; each order settles against the configuration it was created with.
* Security: the invoice returned by a lightning address is now decoded and checked -- amount, payment hash, expiry and metadata binding -- instead of being trusted.
* Security: settlement verifies the payment preimage against the invoice's payment hash.
* Security: the same-domain check no longer collapses multi-part suffixes, so an address at example.co.uk no longer trusts every .co.uk host.
* Security: HTTPS is required for callback and verification URLs, not only for the initial lookup.
* Security: carrier-grade NAT, IPv4-mapped IPv6 and NAT64 addresses are rejected, and requests are pinned to the addresses that were validated.
* Security: settlement-critical order data is stored as protected meta, so it cannot be edited from the order screen.
* Security: the settlement polling endpoint rejects orders that are not non-custodial Blink orders.
* Changed: the polling endpoint serves a cached status and enforces per-IP, per-domain and site-wide request budgets, so many open tabs no longer multiply outbound traffic.
* Changed: the pay page backs off between checks, pauses while the tab is hidden, and offers a manual retry instead of failing silently.
* Changed: an order edited after its invoice was created is held for review rather than completed automatically.
* Fixed: a hung Blink API no longer blocks checkout indefinitely; the API client has request timeouts.
* Fixed: GraphQL errors report their actual message instead of a class-not-found error.
* Added: unit, integration, JavaScript and end-to-end test suites, with a 100% line and branch coverage gate in CI.

= 0.2.2 :: 2026-07-10 =
* Security: validate LNURL callback/verify URLs (same domain + no private/loopback IPs) and disable redirects to prevent SSRF
* Honor the server-advertised LUD-12 commentAllowed limit when creating non-custodial invoices
* Recreate expired non-custodial invoices on checkout retry instead of reusing an unpayable one
* Rate limit the public settlement-poll AJAX endpoint
* Add an absolute client-side polling timeout on the pay page
* Validate the account type setting against the allowed values

= 0.2.1 :: 2026-07-10 =
* Fix duplicate custom rows (Webhook Url, Setup status) on the Blink settings page
* Light visual cleanup of the non-custodial on-site pay page
* Clarify that the custodial Blink dashboard callback endpoint must be enabled

= 0.2.0 :: 2026-07-09 =
* Add support for non-custodial Blink accounts via lightning address (LNURL-pay + LUD-21 verify)
* Add "Account Type" setting to choose between custodial (API key) and non-custodial (lightning address)
* Render Lightning invoice with QR code on an on-site pay page for non-custodial orders
* Detect settlement for non-custodial orders by polling the LUD-21 verify endpoint

= 0.1.3 :: 2024-11-29 =
* Update PHP min version

= 0.1.2 :: 2024-11-13 =
* Update Blink Logo
* Add warning note about API key scopes
* Fix feedback notification close
* Rename stablesats to USD

= 0.1.1 :: 2024-10-17 =
* Minor content updates.

= 0.1.0 :: 2024-06-01 =
* Beta release for testing and feedback
