= 4.7.8 =
* Restricted public employee responses to public fields; excluded contact details, internal permissions and PIN verification data.
* Fixed Any Staff availability and showed duration ranges when eligible professionals have different service times.
* Matched starting prices across the Service Menu, discovery, booking, and waitlist using the lowest primary service option.
* Kept snow, Halloween bats and 🎃, and Emerald leaves visible while scrolling long booking pages.
* Improved booking details, including required phone numbers, Any Staff selection, summary actions, and selected options in confirmation emails.
* Fixed same-day waitlist signup and checked availability for every selected service.
* Improved customer emails, mobile appointment summaries, and first-booking setup guidance.
* Corrected booking times shown in the Staff Portal.

= 4.7.6 =
* Signing out of the Staff Portal now ends the session on the server, not just in the browser. Previously the sign-out button only cleared local data, leaving the staff token usable until it expired on its own; if the sign-out request fails the portal now stays signed in and says so rather than implying it worked.
* Fixed the installable offline app never registering: the Service Worker scripts are served through a rewrite rule, so WordPress redirected them to a trailing slash and the browser refused them. Both the booking and staff workers now load, and the error they logged on every page is gone.
* The calendar's booking popover now re-checks which way it should open while the day grid scrolls, instead of keeping the direction it was given when it opened.
* Stopped shipping three Pro-only admin screens that no Free site could reach.
* Added a guided first-run flow for Business, Team, Services, real staff availability, and the Booking Page, with a dashboard checklist for anything skipped.
* Fixed Review Request emails so `{service_name}` is populated from the linked service, added a real-booking preview, and replaced the overly promotional Google CTA with a calm invitation to share honest feedback.
* Removed stray asterisks from review settings and email buttons, and stopped filtering Google review invitations by an internal rating so every invited client receives the same optional feedback path.
* Made internal star-rating emails opt-in, prevented them from being sent alongside the direct Google review request, fixed their settings save path, and added their service details and delivery outcomes.
* Replaced the short in-memory delivery history with an additive database-backed delivery ledger, migrating retained records and adding Sent / Failed filters plus 25 / 50 / 100 row pagination.
* Added scoped color modes: Customer Booking Widget supports Follow system, Light, and Dark; Yatoon Admin and Staff Portal support Light and Dark.
* Added a shared semantic color-scheme token layer without duplicating the existing Beauty, Clean, and Luxury theme styles.
* Updated the booking progress Current state to use each selected theme's primary, border, and Light/Dark/Follow-system surface tokens instead of a fixed fill; completed steps remain green.
* Fixed Theme Preview persistence so Save Theme always saves the theme currently being previewed and the matching seasonal effect.
* Restored Custom as an explicit storefront choice: named themes now control their complete component palette, while Custom applies the merchant's saved colors and per-button styling without deleting those settings.
* Added the Custom Theme Library: Brand & Colors edits become a pending Custom theme, then can be named, saved, applied, renamed, or deleted. Free stores one Custom theme; Pro stores up to five.
* Made Custom Theme Library management discoverable beside Brand & Colors: saved themes now have explicit Use, Edit, Rename, and Delete actions, and a visible pending-save prompt appears after palette changes are saved.
* Loaded the Custom Theme Library controller on the Brand & Colors menu itself, so its top-of-page prompt and save, use, edit, rename, and delete actions work on the screen where palette changes are made.
* Moved the Custom Theme Library into the actual Brand & Button Settings screen, made Brand saves mark a pending Custom theme through its Settings API path, and made that screen available in Free with the one-theme limit.
* Added saved Custom themes by name to Front-end style and Theme Preview. Choosing one applies its complete saved snapshot; later visual edits clear the active snapshot and require an explicit update or new saved theme.
* Fixed named Custom themes sharing the last globally saved palette. Save or Update now captures the current Brand controls as an independent sanitized snapshot, so every saved theme restores its own appearance.
* Clarified the Custom Theme Library workflow: Edit this theme loads its saved controls, Apply theme activates a saved theme, and Save changes to selected theme stores edits explicitly.
* Removed the redundant Custom-theme selector. Editing a named theme now locks that exact theme as the save target, loads its stored controls immediately, and sends the live form snapshot as JSON so saved themes cannot be confused with one another.
* Simplified Custom Theme Library actions to one Use and edit this theme control, which activates the selected theme, loads its values, and locks it as the only save target.
* Seasonal effect controls now appear only for their matching theme: Festive Red Snowfall, Halloween Bats and Pumpkins, or Emerald Sparkles. Restored the optional Halloween pumpkins and gave all seasonal effects gentle free-direction drift and rotation while preserving reduced-motion support.
* Added the Modern booking theme with structured cards, contemporary spacing, teal actions, refined focus states, and full Light/Dark compatibility.
* Added a scoped Theme Preview to Booking Experience settings with Beauty, Clean, Luxury, and Modern specimens, plus a nearby Save Theme action that persists the selected theme and its matching seasonal effect; Preview controls only expose Snowfall for Festive Red and Bats for Halloween.
* Added the Festive Red booking theme with Light/Dark/Follow system support and an optional low-density, reduced-motion-safe Seasonal Snowfall effect scoped to the booking widget and Theme Preview.
* Organized Core and Seasonal themes in settings and added the polished Halloween theme with optional reduced-motion-safe bat decoration in the widget and Theme Preview.
* Improved Festive Red Snowfall contrast and stacking so the optional effect remains visible above widget surfaces without intercepting interaction.
* Kept booking data, APIs, and permissions compatible; the only new database object is the additive notification delivery ledger.

= 4.7.5 =
* Added a Delivery activity view with Sent / Failed filters across the retained WordPress email outcomes, explicit retry feedback, and a notification-only retry action that avoids racing an in-progress worker.
* Improved Front Desk performance for busy days with server-backed customer, service, status, and professional filters that remain compatible with incremental Load more results.
* Added import conflict reporting for duplicate, ambiguous, and incomplete rows, with preview-safe results and bounded sample details before records are changed.
* Added deeper salon reporting metrics including repeat-client, retention, rebooking, cancellation, no-show, completion, average-ticket, booked-hour, commission, contribution, and forward-revenue views.
* Made multi-location and shared-resource scheduling consistent across calendar, Front Desk, availability, booking, and customer workflows.
* Added location-aware waitlist storage, filtering, exports, claim links, and scheduled availability checks. The waitlist migration is represented by schema manifest revision 16; the internal YATOON_DB_VERSION remains 4.7.1.
* Updated release metadata and Dashboard generated assets for 4.7.5.

= 4.7.4 =
* Added a Daily Staff Time Grid with one shared local-time axis across employee columns, precise appointment placement and duration, overlap lanes, break and unavailable backgrounds, shared-resource visibility, and a current-time line. Desktop moves continue through existing availability and server-side reschedule validation; mobile keeps a single-employee grid with Move / Reschedule fallback.
* Made appointment cards quicker to inspect: hover-capable desktop pointers show the existing quick preview with a short handoff delay, while desktop clicks, touch taps, and keyboard activation open the existing full appointment details modal. Move / Reschedule remains in the card action menu, and calendar source, minified, RTL, and manifest assets were rebuilt.
= 4.7.3 =
* Restored the customer-facing AI Chat as a shared Free and Pro feature. Both packages now load one canonical Concierge class and six shared traits; customer chat remains available in Free when an administrator connects a provider and enables it.
* Kept customers inside AI Concierge when final contact validation rejects a phone number, email address, or customer name. The editable contact form now reopens with the entered details preserved.
* Fixed typed chat messages being accepted before the AI consent box was checked. The consent gate now covers every typed message before it is added to the conversation.
* Improved multi-person chat booking so shared services, guest names, selected options, prices, durations, and professionals remain correct through review and confirmation.
* Improved the mobile chat control, service and option selection, running visit summary, and recovery when a customer changes a service, professional, date, or time.
* Added clearer local booking workflows for mobile staff rescheduling, temporary breaks, shared-resource checks, and capability-based Yatoon roles.
* Completed the 4.7.3 release metadata and asset-manifest updates, and removed obsolete Concierge build artifacts from both release packages.

= 4.7.2 =
* Added the customer-facing AI Chat to Free and Pro as an opt-in feature. Customers can describe what they want, review real services and availability, and continue through the existing booking flow.
* Hardened AI chat input, consent handling, sensitive-data screening, bounded requests, multilingual responses, and provider rate limits.
* Improved customer self-service, responsive booking layouts, availability checks, notifications, and local booking reliability.
