*** Queryra – AI Semantic Search Changelog ***

2026-06-02 - version 1.4.2
* Improved: AI search documentation accuracy — refined Partner Program
  copy, broadened audience wording (sites, blogs, catalogues — not
  stores-only), and corrected technical phrasing (semantic AI search
  is indexed on your content, not "trained" on it).
* New: AI search admin links now carry tracking parameters (UTM) so
  support can attribute referral traffic per install. Sentinel value
  `pre-init` flags fresh installs in logs for easier diagnostics.
* Improved: replaced `rel="noreferrer"` with `rel="noopener"` on admin
  links so AI search referrer attribution works server-side while
  keeping security best practices intact.
* Fixed: Plugin Check warnings cleared — plugin name now matches
  between header and readme; inline JS values encoded via
  `wp_json_encode()` for safe output escaping.
* Maintenance: minor AI search copy refinements throughout — softened
  absolute marketing claims to align with WordPress.org plugin
  directory guidelines.

2026-05-25 - version 1.4.1
* New: B2BKing (B2B for WooCommerce) integration — replaces the bulk
  order form keyword search with Queryra semantic AI search. Loads only
  when B2BKing is active; core untouched.
* Security: visibility-intersect ensures products hidden by B2B group,
  category, or per-product restriction never surface through semantic
  search. Fail-closed default if the visibility set cannot be verified.
* Performance: O(1) intersect lookups scale to 100k+ products.
* UX: bulk order form rebrand when AI Search is enabled —
  search placeholder "AI search — try anything…", sort option "AI Pick"
  (replaces "Automatic"), loader text "AI is thinking — not just
  searching…", and search icon swapped to Google Material Design
  `auto_awesome` (same icon library B2BKing already uses).
* Toggle: shares the master "Enable Queryra AI Search" option — single
  instant kill-switch. When off, B2BKing native search runs as before.
* Known limitations: pagination counts may show small discrepancies
  vs Queryra ranking; sort dropdown options other than "AI Pick" are
  overridden by AI relevance during search.

2026-05-25 - version 1.4.0
* Added - Search ability registered for site automation tools and AI assistants. Other plugins and agents can discover and invoke Queryra semantic search programmatically.
* Added - Developer filter queryra_validate_api_key for external API key validation. Returns true on success, WP_Error on failure. Reuses the same test_connection() round-trip Queryra uses internally.
* Added - Defensive guard against destructive overwrites of saved configuration by external code.
* Improved - API key field uses partial masking with click-to-edit (last 4 characters visible).
* Improved - Tested up to the latest WordPress version.

2026-05-20 - version 1.3.2
* Added - AI search compatibility with Oxygen Builder 6.0 — automatic content extraction from the new _oxygen_data postmeta format (double-encoded JSON tree, OxygenElements\Text nodes). AI search now indexes pages built with Oxygen 6.0 stable alongside Classic Oxygen 4.x
* Improved - AI search page builder coverage — Oxygen Builder 6.0 joins Elementor, Breakdance, Beaver Builder, and Classic Oxygen for full AI search indexing across the most popular WordPress page builders
* Improved - AI search reliability for migrated pages — sites that upgraded from Classic Oxygen 4.x to Oxygen 6.0 are correctly indexed (both legacy and new postmeta keys are read)

2026-05-18 - version 1.3.1
* Fixed - Critical: bulk sync returned HTTP 422 on sites without custom taxonomies. The empty taxonomies field was serialized as a JSON array ([]) instead of an object ({}), failing API validation. Affected most sites (blogs and stores using only standard categories/tags). Initial import now works on all sites.

2026-05-07 - version 1.3.0
* Added - Automatic content extraction from page builders: Elementor, Breakdance, Beaver Builder, Oxygen (legacy shortcodes + modern JSON v2)
* Added - Automatic content extraction from ACF (Free + Pro) — text, textarea, wysiwyg, repeaters, groups
* Added - Automatic content extraction from Meta Box — text fields and group fields via rwmb_meta_boxes registry
* Added - Custom taxonomies — all public custom taxonomies (book_genre, material, location, etc.) now sent in new "taxonomies" API field, keyed by slug
* Added - Developer filter queryra_indexable_meta_content — extend postmeta extraction with custom field plugins (Pods, JetEngine, custom)
* Added - Developer filter queryra_indexable_taxonomies — control which custom taxonomies are indexed
* Added - Smart text filter for postmeta extraction — automatically excludes CSS values, hex colors, URLs, dates, and other technical strings
* Fixed - Search query now properly displayed in page title ("Search results for: ...") and stays in the search input on results pages — previously both were empty after AI resolved the query
* Fixed - Description duplication — auto-generated excerpts were repeating the first 30 words of content; only manual excerpts are now included (and skipped if a substring of content)
* Fixed - WooCommerce short_description duplication when it overlaps the long description
* Improved - Bulk sync prefetches all postmeta in one query per batch — dramatically faster for large sites with many custom fields

2026-05-07 - version 1.2.0
* Added - AI Discoverability: dynamic /llms.txt and /llms-full.txt for ChatGPT, Perplexity, Claude, Google AI Overviews
* Added - Static file detection — if you already have llms.txt, the admin shows a copy-paste snippet to add the Queryra AI Search section
* Added - JSON-LD structured data: SearchResultsPage schema on search pages, Service schema site-wide, both attributing search to Queryra
* Added - X-Search-Engine HTTP header on search responses
* Added - Plugin row meta links on Plugins page: Live Demo, Docs, Support, conditional "Get API Key" when no key is set
* Added - Settings tab: "Try a test search" shortcut to wizard step 4
* Added - Dismissible tip card on Settings & wizard step 4 — quick wins for telling visitors that AI search is available
* Added - Support tab: Clubs section (Sandbox + partner program) and "Need more records or searches?" link to dashboard
* Improved - Support tab: "Documentation" renamed to "Resources" for broader scope (compatibility matrix, plugin tests)
* Improved - All external admin links carry rel="noopener noreferrer" for security
* Removed - Obsolete 1.1.4 upgrade notice and AJAX handler

2026-04-20 - version 1.1.11
* Added - AI search plugin fingerprint (meta generator tag + minimal stylesheet) for WordPress ecosystem discoverability (themesinfo, WPHive, Wappalyzer, BuiltWith)
* Added - Wizard content type selection — pick which post types to send to AI search (posts, pages, WooCommerce products)
* Improved - Removed legacy non-batched import paths — AI search content import is now always batched
* Improved - Admin notice dismissal: nonce output now escaped with esc_attr() for defense-in-depth security

2026-04-09 - version 1.1.10
* Fixed - Null safety check for WooCommerce product sync operations (PHP 8.0+ compatibility)
* Fixed - Added nonce verification to admin notice dismissal for improved security
* Improved - Semantic search index stability during product deletion edge cases
* Improved - WooCommerce product search reliability for high-traffic stores

2026-04-09 - version 1.1.9
* Improved - AI search ranking optimized for WooCommerce product search relevance
* Improved - Semantic search accuracy for natural language queries and intent detection
* Updated - LLM query parser now handles multilingual semantic search queries with better accuracy
* Updated - AI search index synchronization performance for large WooCommerce catalogs
* Updated - Documentation and FAQ for WooCommerce AI search setup

2026-03-30 - version 1.1.8
* Updated - Multilingual search now supports 50+ languages out of the box — no configuration needed
* Updated - Documentation to reflect multilingual support launch

2026-03-19 - version 1.1.7
* Updated - Plugin title and short description for better WordPress.org discoverability
* Added - "Beyond semantic search" example with intent-aware price filter and brand exclusion
* Improved - Removed hardcoded pricing from all docs — single source at queryra.com/pricing

2026-03-15 - version 1.1.6
* Removed - API URL field from settings (hardcoded to default)
* Added - Instance ID display in Support tab for troubleshooting
* Improved - Status endpoint sends instance_id and plugin_type
* Improved - Partner referral tracking via site_url for partner API keys

2026-03-03 - version 1.1.5
* Added - Batched bulk import with progress bar for large sites (50K+ records)
* Added - Plan limit check before import starts
* Improved - Import reliability with automatic retry support
* Improved - Setup Wizard import now uses batched sync

2026-02-25 - version 1.1.4
* Added - Configurable cache duration (1 minute to forever)
* Added - Record type (post/page/product) and platform metadata
* Added - Search filtering by content type
* Improved - Search Analytics with top queries and zero-result queries
* Update - Cache settings UI in admin panel

2026-02-13 - version 1.1.3
* Added - Live WooCommerce demo store at woo.queryra.com
* Update - Plugin description with real product examples
* Added - New FAQ entries with demo store links

2026-02-10 - version 1.1.2
* Fixed - Search results display and pagination
* Update - AJAX live search performance improvements
* Fixed - Minor bug fixes and stability improvements

2026-02-05 - version 1.1.1
* Added - WooCommerce variations support
* Fixed - Product sync reliability improvements
* Update - Search relevance scoring

2026-02-01 - version 1.1.0
* Added - Setup Wizard for guided onboarding
* Added - Auto-sync for new products
* Added - Search analytics dashboard
* Update - Compatibility with popular themes

2026-01-29 - version 1.0.0
* Added - Initial release
* Added - AI semantic search for WooCommerce products
* Added - AJAX live search with instant results
* Added - One-click product import
* Added - Support for posts, pages, and WooCommerce products
