1.1.3 — 29 October 2026
* Authorize private previews before disabling page caching.
* Validate and allowlist request/context and campaign configuration fields before extension hooks.

= 0.3.7 =
* Rename Free to CampaignBars Announcement Manager with the matching directory slug and text domain.
* Retain existing campaigns, reports and integration interfaces during the documented package migration.
* Add legacy-package activation safeguards and migration guidance.

= 0.3.6 =
* Load the full public interface only when needed, with cache-safe discovery, signed page-language context and fresh consent settings.
* Shorten the plugin header description to the recommended length.

= 0.3.5 =
* Set the publisher author URL to plugins.shop.

= 0.3.4 =
* Clarify the plugin title, Free campaign workflow, selection behavior and edition boundaries.
* Reorganize setup, diagnostics, API and privacy documentation; no feature changes.

= 0.3.3 =
* Document APIs, external-service requests, consent, retention and removal.
* Clarify contributor metadata, licensing and readable-source information.
* Clarify privacy guidance and update-service disclosure.

Campaign Bars release history

= 0.3.3 =
* Document own-site APIs, consent integrations, optional external services, data flows and deletion limits.
* Add contributor metadata, bundled license text and source/build information.
* Clarify consent-provider and scheduled-retention wording in the privacy guidance.

= 0.3.2 =
* Free: use core language-pack loading and the WordPress posts API during uninstall.
* Document required custom-table atomicity/cache exceptions and checker false positives at their exact call sites.
* Defer public scripts while preserving consent and add-on dependency order.

= 0.3.1 =

* Reject malformed settings and campaign values before changing saved data.
* Contextual demonstrations and translated history labels.


= 0.3.0 =
* Prevent stale draft, publication, restore and settings writes with atomic revision checks.
* Add saved history, recoverable trash, safe resume, emergency pause and private real-page draft preview.
* Improve templates, publish review, page selection, measurement summaries and unsaved-state feedback.
* Preserve storefront focus across refreshes, bound layout offsets and clarify dismissal behavior.
* Migrate campaign state into a private atomic table; preserve legacy records for recovery, not downgrade synchronization.

= 0.2.0 =
* Add merchant visibility diagnostics and guided consent connection with a protected test tab.
* Translate editor and visitor JavaScript using WordPress wp-i18n; include complete PHP/JavaScript POT extraction.
* Retain the 0.1.1 save, cache, countdown and experiment lifecycle fixes.

= 0.1.1 =
* Correct countdown timing and bounded expiry refresh; preserve edits made during saving.
* Keep the public loader present before campaign publication and while campaigns are paused.

= 0.1.0 =
* Initial release: quick editor, published/draft isolation, campaigns, targeting, schedules, local aggregate reports, and read-only Pro discovery.

