=== Circumflex Booking development changelog ===

== 1.0.2 ==

* Sanitize administrative request values when they are acquired and protect the pattern with a regression test.
* Confirm that every shipped feature is available without a license key or payment.
* Prepare WordPress.org language-pack delivery by excluding generated locale files from the release ZIP while retaining the translation template.
* Label the distinct top-level administration menu "CF Booking" while retaining the full product name elsewhere.

== 1.0.1 ==

* Clarify that MySQL 8.0 and MariaDB 10.11 are the tested and supported production baseline, not a database-version activation check.
* Report older database versions as a warning while keeping the plugin active.

== 1.0.0 ==

* First stable release of the customer booking, availability, manual approval, administration, and secure self-service workflows.
* Include responsive email notifications, configurable site identity, reminders, privacy tools, anti-spam controls, and Norwegian translation.
* Support shortcode, dynamic Gutenberg block, and optional Elementor embedding on WordPress 6.8+ with PHP 8.3+.

== 1.0.0-rc.9 ==

* Add a configurable email-header identity with safe WordPress site-title and hostname fallbacks instead of the plugin product name.
* Separate business cancellation from customer self-cancellation so each customer email has accurate terminology and its own editable template.
* Export the new setting in configuration format 2 while retaining backward-compatible format 1 imports.

== 1.0.0-rc.8 ==

* Clarify booking and cancellation deadline labels and contextual help without changing minute-based storage or configuration contracts.
* Prepare the public source, unique plugin URL, WordPress.org metadata, privacy disclosures, screenshots, and reproducible build instructions.
* Preserve the bundled Norwegian translation while keeping all source strings ready for WordPress language packs.

== 1.0.0-rc.7 ==

* Show minimum booking notice and cancellation deadline in decimal hours while preserving the existing minute-based storage and configuration contracts.
* Replace the editable service sort number with a complete drag-and-drop service order and accessible move-button fallback.
* Append new services predictably and protect complete reordering with capability, nonce, row locking, optimistic concurrency, audit, and cache invalidation.

== 1.0.0-rc.6 ==

* Give all twelve customer and internal notifications one responsive, accessible HTML design using the site identity and configured booking color.
* Preserve safe editable text templates and include their exact rendered content as PHPMailer's plain-text alternative.
* Add a sandboxed visual preview, plain-text preview, multipart test send, and complete all twelve event choices in administration.

== 1.0.0-rc.5 ==

* Dispatch the bounded notification worker through a signed, non-blocking same-site endpoint so email does not wait behind unrelated WP-Cron work.
* Keep the request-unique cron event and five-minute worker as durable fallbacks, clearing only the matching event after a successful direct start.
* Record the worker source in the PII-free heartbeat and test that the direct loopback completes while WordPress' shared cron lock is held.

== 1.0.0-rc.4 ==

* Refresh WordPress' request-local cron option caches at shutdown before deciding whether a consumed immediate event must be re-armed.
* Schedule the request event even when loopback cron is disabled, retaining server cron and the five-minute recovery worker.
* Extend the isolated regression with a stale autoloaded cron-cache reproduction.

== 1.0.0-rc.3 ==

* Give each enqueue request a non-sensitive unique cron argument so a notification cannot coalesce with another request's in-flight single event.
* Re-arm the request-owned event at shutdown if another loopback consumed it before the newly committed row became visible.
* Add a process-isolated regression for cross-request event ownership and shutdown re-arming.

== 1.0.0-rc.2 ==

* Trigger immediately due notification work through a non-blocking WordPress cron loopback while retaining the five-minute recovery worker.
* Preserve customer-receipt and internal-submission notices when a booking is reviewed before the first queue run, with stable event ordering.
* Clarify the internal notification template as a historical received event.

== 1.0.0-rc.1 ==

* Add a six-case WordPress/PHP/MySQL/MariaDB compatibility gate, deterministic release packaging, checksums, and a dependency/license/source trace.
* Add upgrade, backup/restore, concurrency, DST, realistic-volume performance, and full current-platform regression gates.
* Extend browser accessibility through contact, review, and optional Turnstile submission, and isolate pressed-state colors from theme overrides.

== 0.11.0-beta.1 ==

* Add WordPress privacy export/erasure, bounded automatic anonymization, retention controls, and privacy Site Health monitoring.
* Add optional fail-closed Cloudflare Turnstile, filtered CSV with spreadsheet-formula protection, and versioned configuration preview/import/export.
* Add scoped dashboard distributions, local diagnostics without personal data, queue pause, global customer-token revocation, and explicit permanent-uninstall cleanup.

== 0.10.0-beta.1 ==

* Add one shared renderer behind the shortcode, a dynamic Block API v3 Gutenberg block, and a conditionally registered Elementor widget.
* Add accessible adaptive color pairs, keyboard focus management, non-color states, and calendar/list date views.
* Improve theme isolation, responsive layouts, reduced-motion and forced-color behavior, plus handle-specific JavaScript translations.

== 0.9.0-alpha.1 ==

* Add private purpose-bound customer links for side-effect-free booking viewing, self-service cancellation, and one pending time-change proposal.
* Add customer change availability that keeps the original reservation while a proposed slot is held for manual approval.
* Add administration approval/rejection, customer and internal notifications, same-origin mutation protection, token rotation, and isolated end-to-end coverage.

== 0.8.0-alpha.1 ==

* Add editable plain-text notification templates, strict placeholders, synthetic previews, and test email delivery.
* Add a bounded idempotent email queue with five-minute cron processing, explicit retry policy, unknown-delivery protection, administration, and Site Health diagnostics.
* Add configurable version-bound reminders that are cancelled and rescheduled when relevant booking state changes.

== 0.7.0-alpha.1 ==

* Add bounded day, week, and month administration calendars plus server-side booking filters and stable pagination.
* Add explicit desktop drag-and-drop confirmation with mobile/keyboard fallback, object scope, optimistic concurrency, and fresh conflict checks.
* Add scoped operational dashboard counters, upcoming bookings, and quick links for blocks and extra availability.

== 0.6.0-alpha.1 ==

* Add an object-scoped booking list and detail view with explicit approval, rejection, cancellation, completion, and no-show actions.
* Add confirmed manual bookings, safe schedule changes, service/practitioner changes, and five-minute duration overrides with mandatory conflict checks.
* Add separately authorized internal notes, explicit audited terminal-status correction, optimistic concurrency, and transactional customer events.

== 0.5.0-alpha.1 ==

* Add a responsive, translatable `[circumflex_booking]` customer flow with conditional practitioner choice.
* Add gray unavailable times, strict public REST contracts, atomic pending bookings, service snapshots, and reservations.
* Add protected anti-spam counters, pending limits, honeypot and form-timing controls, readable references, and transactional outbox events.

== 0.4.0-alpha.1 ==

* Add weekly schedules, closures, extra-open dates, manual blocks, and a generated-time debugger.
* Add DST-aware slot generation, multi-service buffers, booking windows, and cached public availability.
* Add deterministic first-available allocation with stable transactional locking and schema version 3.

== 0.3.0-alpha.1 ==

* Add native, responsive administration for services, practitioners, and global booking settings.
* Add least-privilege Booking Manager and Practitioner roles with versioned capabilities.
* Add inherited service defaults, optimistic edit protection, transactional audit events, and schema version 2.

== 0.2.0-alpha.1 ==

* Add versioned InnoDB schema, integrity inspection, guarded reset, and data-preserving lifecycle behavior.
* Add transaction, resource-lock, reservation, status, time, service aggregation, and secure token primitives.
* Add database and domain test coverage, including real concurrent reservation verification.

== 0.1.0-alpha.1 ==

* Add the plugin bootstrap, requirement checks, Norwegian language pack, and admin status page.
* Add local build, test, and quality tooling.
