Version 5.54.2

August 7, 2026

Fixed

  • queue: clear stale index cache before rebuild (64877aa)

Version 5.54.1

August 7, 2026

Fixed

  • widgets: correct split heading highlights (1d9ef72)

Version 5.54.0

August 6, 2026

Added

  • analytics: enforce Pro gating while preserving data controls (09ceeb8)
  • editions: add Standard and Pro foundation (f031b09)
  • editions: gate cache warming behind Pro (c1237d4)
  • editions: gate pending sync console behind Pro (5c57e64)
  • editions: gate Pro-only widget settings and style presets (0bba678)
  • editions: gate query rules and promotions behind Pro (f1278c9)
  • editions: wire Standard and Pro feature availability (949c247)
  • expose available indices (c5c9567)
  • helpers: add presentHitOptions method for hit option normalization (d7daa52)
  • indexing: validate config indices and surface readiness findings (aa4c862)
  • templates: package search playground examples (6c98e36)

Fixed

  • align autocomplete language filtering and analytics query casing (bf31a35)
  • align config loading, search side effects, and validation feedback (6b8bc9c)
  • align indexing failure and observability contracts (ec2e355)
  • align install schema, recurring job status, and package metadata (7796438)
  • align permission-aware CP navigation (225597c)
  • align Postman with public API contracts (b4db055)
  • align settings and widget validation redisplay variables (f4078a3)
  • align table actions and permission order (e285675)
  • align widget style usage with effective configs (02c99fa)
  • analytics: align scope and presentation (47325a2)
  • analytics: clear rule and promotion tracking data (21838e6)
  • analytics: honor skipAnalytics for multi-index redirects (aa65520)
  • analytics: select trending query casing by frequency (9883641)
  • analytics: show request failures (eaa740f)
  • api: simplify Postman collection (716ef9d)
  • apply aggregate pagination once (15dd173)
  • autocomplete: normalize regional languages for local terms (d07e462)
  • backends: correct hosted pagination (e93d738)
  • batch search hot paths and harden cache freshness (b8d0bfe)
  • centralize index reference safety and configuration error recovery (30942e7)
  • correct @since tags against release history (b4dc75d)
  • correct @since version for getDocumentsByElementIds method (d675a0a)
  • correct index counts, promotion targets, and UI rendering (9b4483d)
  • correct search indexing, backend results, and UI consistency (d41ddb5)
  • correct settings persistence, widget validation, and config output (df800b6)
  • correct split index health and format document counts (775ccf6)
  • cp: present comparable index counts (b1072a9)
  • dashboard: align card permissions (205a9dd)
  • editions: complete downgrade lifecycle safeguards (a1621ca)
  • editions: hide Pro surfaces in Standard and preserve widget saves (9477d77)
  • editions: hide pro-only search test surfaces in standard (e95eaca)
  • enforce authoritative resource persistence (0570df5)
  • enforce autocomplete cache and limit contracts (40012f4)
  • enforce File storage I/O truth (b9bafe8)
  • enforce hosted index lifecycle truth (0e6c14a)
  • enforce index maintenance capabilities (df87c26)
  • enforce native Redis connection contracts (f85ec6b)
  • enforce search cache failure and invalidation contracts (1373219)
  • enforce Typesense import result truth (4180808)
  • gate debug metadata and validate cache keys (99471ee)
  • gql: remove 'uri' field from SearchHitType definitions (a93f24e)
  • harden backend access and default lifecycle (78dd131)
  • harden config, section splitting, analytics, and autocomplete (3696d22)
  • harden destructive index and storage maintenance (ba92b5e)
  • harden local index storage and test resolution (25dd207)
  • harden Search Manager public API contracts (02c6d6b)
  • harden Search Manager salt generation (f1239b7)
  • harden search scoring, JavaScript escaping, and debug metadata (7f5d6ac)
  • hide Sync Count for unsupported backends (707ea6c)
  • indexing: exclude nested entries from standalone search documents (0c1e24e)
  • indexing: fail closed before clearing rebuilt indices (ac25f66)
  • indexing: isolate invalid config index items (654892a)
  • indexing: preserve config closure criteria during rebuilds (0836c09)
  • indexing: report rebuild failures and counts accurately (fe6251f)
  • make analytics source attribution deterministic (22f9ba6)
  • migrations: support fresh MySQL installs (9687d83)
  • normalize public search query semantics (036e0ca)
  • preserve local batch failure truth (60c1426)
  • preserve validation errors in conditional fields (0f9caa2)
  • promotions: align application truth (ef89b4b)
  • reconcile site and provider index lifecycles (8735b21)
  • remove dead search paths and bound docs source caching (97292e5)
  • remove unused linkMode parameter from error summary (c0e6e67)
  • require base 5.37 and logging library 5.18 (3839d50)
  • restore pending sync retry wakeups (043e048)
  • scope analytics lifecycle operations (6dafe23)
  • secure credential persistence failure logs (e436d52)
  • show only actionable storage options (dc5ee32)
  • sync: reconcile document counts before deferred continuation (e14d6cc)
  • test-tool: add explicit noopener to new-tab links (210be0e)
  • unify bulk mutation contracts (4b8e4f0)
  • widgets: harden modal behavior and build parity (65c3774)
  • widgets: stabilize initial focus verification (ab3e7e8)
  • widgets: stabilize production builds (f99ce58)

Changed

  • batch hosted search deletions (dc96476)

Miscellaneous Chores

Version 5.53.2

July 18, 2026

Fixed

  • backends: ensure query_by and query_by_weights match for Typesense (f7b8aaf)
  • highlighter: paint prefix extensions at word starts (17ce151)
  • highlighter: respect field-scoped query terms (e3720e0)
  • search: enforce field scopes across filtering and highlighting (1f7ec71)
  • search: enforce typo budgets on fuzzy candidates (f386f41)
  • search: reject ultra-short fuzzy candidates (87f8b80)
  • templates: include plugin credit in snippets settings template (fe3eff5)

Version 5.53.1

July 18, 2026

Fixed

  • analytics: normalize SQL query syntax in action identity expression and zero outcome condition (33784ab)
  • analytics: normalize SQL query syntax in analytics calculations (411cdcf)
  • analytics: normalize SQL query syntax in analytics summary calculations (af94e05)
  • analytics: normalize SQL query syntax in device and browser breakdowns (170d6b6)
  • analytics: normalize SQL query syntax in performance metrics (f503feb)
  • analytics: normalize SQL query syntax in search query metrics (853f942)
  • jobs: normalize SQL query syntax in CacheWarmJob for searchCount (517d79d)
  • require PostgreSQL-compatible shared dependencies (f283d91)
  • storage: normalize SQL query syntax in actionClearStorage (3aa8704)
  • storage: normalize SQL query syntax in actionClearStorage (34b8c75)
  • storage: normalize SQL query syntax in storeDocument frequency calc (cdaecb1)
  • sync: normalize SQL query syntax in upsertRows method (7a0b5c3)

Version 5.53.0

July 17, 2026

Added

  • add batch processing for section and category boosts in QueryRuleService (d0447f6)
  • add PostgreSQL storage (a432c14)
  • add TwigSearchOptionsHelper for search limit normalization (61a37df)
  • analytics: add date-bounded logic for popular query caching (46a395f)
  • analytics: require JSON acceptance for analytics endpoints (eab5379)
  • api-keys: add stable handles for widget key selection (95b3297)
  • commerce: add shared Commerce element type helper (93419ac)
  • commerce: support commerce promotion and rule targets (c1490d9)
  • controllers: require JSON acceptance for delete and clear actions (f821fd4)
  • cp: add duplicate actions for search objects (36b97c9)
  • dependencies: add style usage check before deleting widget styles (3fd5700)
  • deps: add DependencyService for backend usage management (a562dd9)
  • gql: add search manager queries (f4f9d0e)
  • gql: restore GraphQL cache setting after search queries (dea6bbd)
  • i18n: add internationalization strings for analytics dashboard (2e6e7b9)
  • i18n: add new translation keys across multiple locales (9ff439a)
  • i18n: add new translations and strings for search manager (7d29de2)
  • i18n: add setup-related translations across multiple locales (9d92893)
  • i18n: add translations for analytics tooltips and intent labels (fc5adc2)
  • i18n: add translations for pending sync status badge labels (9e2794d)
  • i18n: rename promotion keys across multiple locales (1ce81ee)
  • i18n: update behavior labels for widget settings (2f4de77)
  • indices: add Commerce index transformer support (2956e18)
  • indices: expose Commerce element types (e545a61)
  • jobs: add claim token handling in BatchSyncJob (c3ad2ab)
  • jobs: avoid custom field hydration in status sync queries (7a7d627)
  • results: add hierarchical layout support in results widget (fc27565)
  • search-manager: restructure settings pages and navigation (3202f78)
  • search-manager: unify search and autocomplete on a shared term-resolution core (16332e4)
  • search: add attribute change handling for theme and state preservation (18fea08)
  • search: add autocomplete term selection functionality (a093d0b)
  • search: add document-key storage operations (3717312)
  • search: add hierarchy and path context to search hits (cbdb56c)
  • search: add language matching logic for document filtering (fdc32c7)
  • search: add leading snippet fallback for empty headings (59a7692)
  • search: add native catch-all index creation (b93b1de)
  • search: add native search replacement settings and coverage report (c9d38d7)
  • search: add query length validation and limit normalization (bd4ae1f)
  • search: add retrievable fields for public hits (70943fe)
  • search: add section metadata rendering for search results (94c3231)
  • search: add SourceDoc section-split indexing (043fb48)
  • search: add support for term boosting in search queries (02d8361)
  • search: drop public elementType hit key (98ccebb)
  • search: enhance search functionality with hit presentation options (42a29d5)
  • search: expose indexed field values and normalize hit metadata contract (2402f8d)
  • search: finalize public asset hit contract (ba63669)
  • search: implement cleanup of orphaned term n-grams after indexing (7869145)
  • search: normalize language handling across services (90161c4)
  • search: normalize tracking site ID and add validation logic (151529b)
  • search: replace KEYS with SCAN for non-blocking key retrieval (66ecfc8)
  • search: split AutoTransformer section records (fcea0ac)
  • search: split stored search record projections (6ff0fc8)
  • setup: add setup checklist and service for readiness verification (5cc6206)
  • setup: include full name in setup completion message include (e30265a)
  • snippets: add settings for search-result snippets configuration (bab621a)
  • tests: add GraphQL search and autocomplete tests with site handling (3620219)
  • tests: add trafficType handling in analytics session dedup test (2707996)
  • widget: add promotion display modes with themable debug panel (14d5755)
  • widget: overhaul style system with icon, footer, and chrome controls (f2397b7)
  • widget: remove line clamping, titles and snippets wrap naturally (15da1c9)
  • widget: validate API key format in widget configuration (584b4e4)

Fixed

  • analytics: harden robustness boundaries (98aefb7)
  • analytics: include all sources in unique query counts (05f884e)
  • analytics: remove orphan analytics endpoints (1fa4947)
  • analytics: resolve effective site ID for export queries (590d526)
  • analytics: sanitize analytics parameters to prevent injection (aa51903)
  • analytics: sanitize backend entry counts and move tab flags to controller (bf3ea28)
  • analytics: stop defaulting unknown geo data to Dubai (c875ffa)
  • api-keys: align widget key handle UX (1f6546f)
  • api-keys: block deleting keys used by widgets (85d2ff1)
  • api-keys: reject server keys on public widget endpoints (c319d78)
  • api: harden rate limiting and geo defaults (fd63a01)
  • autocomplete: dedupe merged results and honor backend proxy suggestions (04b316d)
  • autocomplete: prefix filtering storage path (c5122be)
  • backends: escape storage path display (a02e0fd)
  • backends: harden external filter merging (5752c1d)
  • backends: split external backend API keys (5646824)
  • cache: normalize analytics identity for popular queries (0b16bd6)
  • controllers: improve error handling in Backends and Indices controllers (08cf011)
  • deletes: standardize bulk delete guards (1f0499a)
  • dependency: enhance usage retrieval with permission checks and kind mapping (08f2a65)
  • frontend: harden widget and test-tool rendering (787d1d2)
  • i18n: complete search-manager coverage sweep (b1ca924)
  • i18n: correct error messages in controllers for JSON responses (d757bbc)
  • i18n: correct label casing for manage settings button (e0220f6)
  • i18n: correct label translation for backend settings (d0a2664)
  • i18n: correct referrer pattern validation message format (9629d66)
  • i18n: correct status label translations in pending syncs table (e7401ff)
  • i18n: correct Swedish translation for browser engine (2ffc81d)
  • i18n: correct translations across multiple locales (a725dec)
  • i18n: correct translations across multiple locales (b810d7f)
  • i18n: correct translations across multiple locales (4a925b0)
  • i18n: correct translations for "Developer resources" across locales (2b7e6ed)
  • i18n: correct validation messages and descriptions in WidgetConfig (39708b0)
  • i18n: correct validation messages in WidgetStyle model (a3fba1f)
  • i18n: escape dynamic inner HTML values in search test tool (b7bad47)
  • i18n: localize analytics and test tool labels (94a8aae)
  • i18n: translate query length labels (548baea)
  • i18n: update analytics settings instructions for clarity (e5a9a5f)
  • indexing: gate adapter sync behind auto-index (f9481e8)
  • indexing: guard batch sync lifecycle consistency (7a9345e)
  • indexing: limit URL-less skip to entries (fc7c742)
  • indexing: reduce indexing and enrichment round trips (e6de81b)
  • indexing: report document creation inside index lock (594d429)
  • indexing: use canonical availability for rebuild counts (079f201)
  • indices: harden SearchIndex malformed data loading (008a5de)
  • models: normalize audit date and analytics schema fixes (8a2aad2)
  • promotions: preserve site context for all-sites promoted results (fcf081e)
  • promotions: resolve Commerce Variant live status (0bf4c9b)
  • queue: complete rebuild progress reporting (97aeb30)
  • redis: replace blocking KEYS command with SCAN for key retrieval (f7f51b3)
  • remove Redis blocking key scans (0b46f87)
  • robustness: tighten controller and job error handling (15d1f01)
  • search-manager: clear stale index storage on index changes (c797877)
  • search-manager: reject malformed GraphQL filters (cc1bd5a)
  • search-manager: reject oversized indexHandles fan-out (17b0615)
  • search: add main snippet fallback (c221da0)
  • search: align autocomplete compound ranking (15f625a)
  • search: apply dark widget style aliases (ec55da5)
  • search: auto-queue rebuilds after config and enable changes (1881cfc)
  • search: auto-queue rebuilds after index identity changes (fe2ec49)
  • search: auto-queue rebuilds after index shape changes (27140e6)
  • search: clean docs snippet sources (6d492ba)
  • search: clean indexed hit metadata contract (7700933)
  • search: clean up batch seven audit findings (91ff6b7)
  • search: clear cached index instances in AbstractSearchEngineBackend (2626c80)
  • search: close audit finding 330 (210d9af)
  • search: close audit findings 323-326 (95711a5)
  • search: close audit findings 327-329 (4076643)
  • search: close post-refactor audit regressions (7d486b5)
  • search: correct element info retrieval in search results (45edb70)
  • search: correct local type filtering and tracking source caps (0dc0064)
  • search: enhance regex patterns for better term matching (71fe4d5)
  • search: exclude non-searchable custom fields from the index (088cacb)
  • search: gate CP exception messages (89e8f82)
  • search: harden analytics metadata and translate residual CP labels (9a0dc7d)
  • search: harden highlight tags and backend resolution (988c48a)
  • search: harden modal widget surface (dc8a392)
  • search: isolate index stats in tests (dbd4eea)
  • search: keep Control Panel search native (cc475d8)
  • search: localize DB model validation labels (8923859)
  • search: maintain native index for manual adapter indexing (9d8a72f)
  • search: make exact match boost phrase aware (914a7b5)
  • search: normalize hit identity and provider filters (d66240a)
  • search: normalize search hit document types (625055c)
  • search: normalize Unicode whitespace in query identity (7a92d3c)
  • search: preserve promotion site mapping and escape prefix queries (5ff0626)
  • search: purge orphaned storage and clear caches on settings save (fd74176)
  • search: remove popular-only cache gate (19c699c)
  • search: remove vestigial queueEnabled setting (54ac66e)
  • search: repair native multi-site search adapter (87d33c2)
  • search: repair native replacement fallback coverage (794c31a)
  • search: resolve index handle parsing and validation logic (6ccadf4)
  • search: restore exact-match boosts after stop-word filtering (a75f9e1)
  • search: reuse promotions and translated rule descriptions (f2a00ff)
  • search: scope native coverage UI to meaningful states (15003d6)
  • search: scope orphan document cleanup by element (5206e3a)
  • search: slim CP test result cards (01750a4)
  • search: support filename-like dotted queries (bdc6d86)
  • search: support selected multi-site search scope (2a0478d)
  • searchwidget: sync keyboard and mouse navigation on item hover (d3db18d)
  • security: harden public search surfaces (7542adf)
  • security: harden widget highlight markup (cd9e1bf)
  • security: neutralize executable URL schemes and close audit batch (b695b8e)
  • security: neutralize executable URL schemes in public search hits (1efefaa)
  • security: validate query rule redirects with base helper (c251a48)
  • settings: require JSON accept header for analytics cleanup (ce6686c)
  • settings: validate highlightClass as plain CSS class tokens (3b9c68a)
  • storage: avoid logging Redis secrets (0c028ac)
  • storage: exclude language metadata from terms (9211539)
  • storage: handle invalid file backend storage paths gracefully (8527dd6)
  • storage: index File and Redis lookup paths (8e8afd8)
  • storage: lock file backend shared index updates (f8d2cbe)
  • storage: make Redis compound indexes atomic (c60efb1)
  • storage: preserve Unicode file-backend terms (cb7df35)
  • storage: serialize deletes and atomic stats (21523d7)
  • storage: use shared lock for file reads in FileStorage (bee3f76)
  • sync: batch status sync element queries (5e83877)
  • sync: clear caches and reduce repeated index lookups (78d576a)
  • sync: consolidate queued element indexing (5bdb1c5)
  • sync: remove unnecessary dirty row checks in PendingSyncRepository (aab0274)
  • test-tool: hydrate Commerce promotion targets correctly (7d6fc96)
  • validate backend settings regardless of enabled state (805d727)
  • widget: derive debug styling from theme tokens (df809c0)
  • widget: relabel history section from Recent searches to Recently viewed (e3b6405)
  • widget: render SourceDoc section hits as grouped results (2ea47b3)
  • widgets: align API key selection with widget scope (1075167)
  • widgets: harden config deletion and API key validation (928dcd5)

Security

  • analytics: escape HTML in analytics dashboard to prevent XSS (009166d)

Changed

  • dashboard: count records in database (a415895)
  • query-rules: batch legacy category boost lookup (c62f46f)
  • search: batch all-sites element lookups (dbca4ed)
  • search: batch local filter and analytics lookups (3be872a)
  • search: batch test tool element lookups (0d2a3a0)
  • search: reduce analytics and local backend query load (023cac5)
  • search: reuse query rule matches (5be5bc7)
  • sync: batch pending sync element loading (4bed5f5)

Version 5.52.0

June 18, 2026

Added

  • align analytics traffic metadata (33b9f24)
  • analytics: add site column and reorder analytics export fields (4e23cb4)
  • bulk-actions: replace button group with bulk status and actions menus (11a803b)
  • controllers: add validation for unknown index handles in API key creation (3dd7574)
  • helpers: add RedisConnectionHelper for consistent Redis settings resolution (7b76b9c)
  • jobs: add pluginHandle parameter to DateFormatHelper calls (2fb6ea8)
  • pending-syncs: implement AJAX auto-refresh for pending syncs table (766d30e)
  • queue: schedule status sync and analytics cleanup jobs (377414b)
  • redis: integrate RedisConnectionHelper for effective Redis settings resolution (7d4a8b9)
  • styles: add bulk enable and disable actions for widget styles (52783c0)

Fixed

  • align source metadata order in view sidebars (66f957b)
  • i18n: correct translations in Portuguese and Swedish (99334bf)
  • render pending sync refreshes inline (4568033)

Version 5.51.1

June 15, 2026

Fixed

  • i18n: correct Portuguese translation for cache warming message (6cca8a5)
  • i18n: correct translation for API Keys to Claves API (fba145a)
  • i18n: remove language notes for Arabic and Japanese translations (7c028c1)

Version 5.51.0

June 11, 2026

Added

  • analytics: add performance time classification for average query times (c03c754)

Version 5.50.0

June 11, 2026

Added

  • add indexId handling for clear cache action (b0d94ad)

Version 5.49.0

June 11, 2026

Added

  • add loading spinner and status message for clear storage action (161c5e4)

Fixed

  • analytics: ensure executionTime is null-safe in analytics export (06bc9de)

Version 5.48.2

June 11, 2026

Fixed

  • i18n: align filter casing and terminology (91776a0)
  • search: keep metadata unchanged for missing-document deletes (0e1ee1e)
  • widget: ignore stale search responses without aborting requests (dded753)
  • widget: improve search request handling and promoted badge styling (5ee3dc7)

Version 5.48.1

June 9, 2026

Fixed

  • ensure metadata increment does not drop below minimum value (f2518a7)
  • i18n: correct API key phrasing in German, French, and Italian translations (2205bd7)
  • i18n: correct phrasing in cache clearing confirmation messages (56af083)
  • search: update document metadata on deletion if terms exist (5817e13)

Changed

  • search: batch BM25 title-term lookups to fix per-document N+1 (b42e3d4)
  • search: batch element hydration in enrichResults (5911c7e)
  • search: batch fuzzy-fallback candidate doc lookups and reuse in scoring (436aab5)

Version 5.48.0

June 7, 2026

Added

  • add Postman collection download to settings test page (7bd83ef)

Fixed

  • plugin credit in edit templates (5820234)

Version 5.47.0

June 7, 2026

Added

  • add act-static-analysis script for CI integration (93e632e)
  • add backend management permissions and navigation (01b300f)
  • add dateCreated and dateUpdated properties to SearchIndex model (f0061a1)
  • add handle option for scoped rebuild and clear operations (bb9c403)
  • add ID and source display for index details (10b6232)
  • add ID display for index details and enhance source representation (1a858df)
  • add ID display for promotions in edit view (8af6768)
  • add ID display for query rules in edit view (786e42e)
  • add method to return file backend storage path display (2c4039f)
  • add navigation link for managing settings (444239a)
  • add plugin credit component to edit templates (0a1ed1c)
  • add plugin handle to device detection configuration (92db65c)
  • add save and continue editing functionality in API keys form (db4009b)
  • add storage path display for file backend settings (1a39a33)
  • analytics: add API key attribution breakdown for analytics data (a241a63)
  • analytics: format local analytics datetime for API/export payloads (051f4cd)
  • analytics: sync visible tab based on active tab selection (6c7fee6)
  • api: enforce API key validation and referrer restrictions (d7b6f99)
  • api: enforce per-key request rate limit for API keys (18e0aa1)
  • api: require API key for public search, autocomplete, and tracking endpoints (7793ac1)
  • cli: add HelpController for cli command assistance (6798c87)
  • edit: add ID display for backend and improve source representation (bd9b0bf)
  • expand default date range options for analytics (205d024)
  • helpers: add FileBackendStoragePathHelper for storage path management (715c3f9)
  • i18n: add API access and key requirement translations (930545f)
  • i18n: add new translation keys for user notifications (cdb8cfe)
  • i18n: add new translation keys for user settings (7adbe06)
  • i18n: add new translation keys for various actions across locales (43984a6)
  • i18n: add new translations strings (2aeead2)
  • i18n: add new validation messages for storage paths (f37c2ee)
  • i18n: add required field messages for Redis cache configuration (93015d5)
  • i18n: add translation for phone synonyms placeholder (25b0eaa)
  • i18n: add translations for quick operator test buttons and table headers (da3b8ae)
  • i18n: add unique handle validation message in multiple languages (4a1c88c)
  • i18n: add user-facing error messages for not found resources (854a456)
  • i18n: rename 'Max hits per page' to 'Max hits' and 'Rate limit (requests per minute)' to 'Rate limit' across multiple languages (fec0d53)
  • jobs: refresh index counts after batch sync drain completion (1100d82)
  • jobs: schedule initial run time for sync and cleanup jobs (38ee150)
  • search: add error handling and display for search failures (0ebe587)
  • search: add siteIdFilter method to scope results by site (88dc7f2)
  • search: add siteIdFilter method to scope results by site (dfabd0f)
  • search: add siteIdFilter method to scope search results by site (90cf703)
  • settings: add link to analytics settings in device detection caching message (232ea44)
  • settings: add require API Key setting for public endpoints (bfa1a4b)
  • settings: add requireApiKey setting for API key enforcement (fe68697)
  • storage: replace base path resolution with FileBackendStoragePathHelper (4456f9b)
  • tests: add ApiKeyAnalyticsAttributionTest for analytics key tracking (81903d2)
  • tests: add build verification tests for SearchModalWidget (30b5e07)
  • tests: add tests for API key attribution in search analytics (35f3d25)
  • validate unique handle for database-backed search indices (953d8e3)
  • widget: add ID and type display for widget configurations (315fd69)

Fixed

  • clear search cache for promotions based on index handle (c0dd894)
  • controllers: ensure unique handle assignment for backends, indices, and widgets (a1832b5)
  • escape HTML in Highlighter to prevent XSS vulnerabilities (ca8fa4a)
  • handle JSON response for widget config deletion errors (24f875b)
  • i18n: correct 'New API key' label to 'New API Key' in API keys template (ca20104)
  • i18n: correct caching terminology in Spanish translations (a51ea8a)
  • i18n: correct empty message translation for indices (1346d7b)
  • i18n: correct Portuguese translations for browser and OS terms (c819c7a)
  • i18n: correct punctuation in Japanese translation strings (784540c)
  • i18n: correct status label from 'Active' to 'Enabled' in API keys (fd94b54)
  • i18n: correct style deletion messages across multiple locales (9fde26b)
  • i18n: update deletion message for widget styles (f251072)
  • promotions: clear all search caches on promotion save and delete (766a208)
  • search: handle non-JSON error responses in search error message (41261f8)
  • settings: add validation for indexPrefix to allow only alphanumeric characters, underscores, and hyphens (fa036c9)
  • settings: clarify API key requirement description in settings model (a8f3f9d)
  • settings: ensure posted settings are cast to array and validate correctly (ee81f3e)
  • url: normalize control characters in unsafe navigation URL check (9d30284)

Version 5.46.0

May 22, 2026

Added

  • add attribute labels for various settings in Search Manager (438082e)
  • add pre-commit hook for ECS and PHPStan code quality checks (95ec7aa)
  • analytics: add log category to analytics settings (99bf488)
  • analytics: add log category to geo configuration (fcf5777)
  • analytics: update search analytics to use indexSearches instead of searches (6798586)
  • api-keys: add API key management functionality (546edab)
  • criteria: consolidate criteria matching in SearchIndex model (68088b3)
  • i18n: add API key management strings to translation file (d7f281b)
  • i18n: add new keys for index searches in multiple languages (30fbc5b)
  • i18n: add new keys for sync management in multiple languages (7defc3d)
  • i18n: add translation issue template for reporting translations (b5cba94)
  • i18n: translate batch sync, last-indexed debounce, and export-limit strings (5532194)
  • i18n: update sync failure messages to pending syncs in multiple languages (50a2262)
  • indexing: add lastIndexedDebounceSeconds setting for automatic metadata updates (6d05743)
  • pending-syncs: add Pending Syncs management interface and functionality (f1a532d)
  • pending-syncs: add Pending Syncs management template and functionality (e0ee614)
  • pending-syncs: update Pending Syncs management and UI elements (908bdf0)
  • search: add cache telemetry to search tracking for analytics (2334f9e)
  • sync-status: implement L3 buffer for status sync job and queue entries (669bf72)
  • sync: add integration tests for pending sync pipeline (f0375f4)
  • sync: enhance pending sync processing and indexing efficiency (5a8f64c)
  • sync: implement batch processing for pending sync rows (651a7ac)
  • widgets: implement in-memory filtering, sorting, and pagination for widget configurations and styles (af17842)

Fixed

  • core: enhance boolean parsing in ConfigParser (dc18bb8)
  • correct error messages for various actions in controllers (026c06b)
  • i18n: align 3-plugin shared translations + clean up orphan/period/convention drift (2a26c46)
  • i18n: correct API Key translations in multiple languages (c7a369e)
  • i18n: correct ellipsis in search placeholders and error messages (67ac36a)
  • i18n: correct index rebuild and deletion messages for consistency (664ef04)
  • i18n: correct Swedish translations for cache and search terms (9bfcb39)
  • i18n: remove deprecated plugin settings from translations (82b5ffd)
  • i18n: remove deprecated translation for number of items per page (2ee28c4)
  • i18n: translate API Keys feature, clean up orphan/period drift across 12 languages (69c4fe7)
  • i18n: translate API Keys feature, clean up orphan/period drift across 12 languages (0726808)

Version 5.45.0

May 6, 2026

Features

  • translations: update copyright year and add new translation keys for settings (0c9d212)

Bug Fixes

  • apply config overrides through shared settings helper (786d46b)
  • translations: correct translations for various languages (27c5923)
  • widgetConfig: add missing analytics settings to search modal (64bb5b4)
  • WidgetConfigService: correct styleHandle key in widget config (0c6e5d1)

Miscellaneous Chores

  • update version annotations across multiple files (0f59020)

Version 5.44.1

April 18, 2026

Bug Fixes

  • IndexingService: run stale-doc cleanup when element matches zero indices (35a0845)

Version 5.44.0

April 17, 2026

Features

  • Add 12-language translation support with 1,250 keys across EN, DE, FR, NL, ES, AR, IT, PT, JA, SV, DA, NO (577625d)
  • stopwords: add stop word lists for Danish, Italian, Japanese, Dutch, Norwegian, Portuguese, and Swedish (827593e)

Bug Fixes

  • edit.twig: update Redis connection handling and messaging (c494308)
  • IndexingService: clean up stale documents from non-matching indices (6718f3e)
  • QueryParser: support localized operators in all 12 shipped languages (ed75206)
  • release-please: drop PAT requirement for release-please — use built-in GITHUB_TOKEN (58d5c0f)
  • templates: translate hardcoded strings in CP editors (d33ef5e)
  • TermNormalizer: improve diacritic handling and recomposition (2a22f7c)

Version 5.43.1

April 5, 2026

Bug Fixes

  • icon: update icon color to match branding guidelines (ef633af)
  • read-only settings page for admin changes (84e748f)
  • update install experience text to use Craft translation (90706dd)

Version 5.43.0

March 17, 2026

Features

  • analytics: streamline IP processing using AnalyticsIpHelper (956795a)

Version 5.42.0

March 17, 2026

Features

  • assets: update build scripts and add package-lock.json (6c01c78)
  • searchmanager: add installation experience configuration (229239b)
  • searchwidget: update version and license, remove minified file check (791e4b0)

Bug Fixes

  • settings: remove redundant submit button from settings forms (9a53d00)

Miscellaneous Chores

  • searchwidget: update dependencies in package.json and package-lock.json (9a48204)

Version 5.41.0

March 4, 2026

Features

  • controller: add widget type options and style error handling (bb30573)
  • model: enhance query rule validation (bb30573)
  • model: enhance widget configuration validation (bb30573)
  • model: implement settings schema validation for backends (bb30573)
  • model: improve settings validation in Settings (bb30573)
  • model: validate backend handle and heading levels in SearchIndex (bb30573)

Bug Fixes

  • jobs: implement RetryableJobInterface in job classes (4e53a87)
  • jobs: implement RetryableJobInterface in job classes (52ace2d)
  • template: ensure proper error handling in widget behavior settings (bb30573)
  • template: improve error handling in settings and edit templates (bb30573)

Miscellaneous Chores

  • gitignore: update node_modules entry to exclude root directory (e12a6bf)

Version 5.40.2

February 24, 2026

Bug Fixes

  • RebuildIndexJob: implement canRetry method for job retries (f42b6e9)

Version 5.40.1

February 24, 2026

Bug Fixes

  • RebuildIndexJob: update getTtr method documentation for clarity (a4949f9)

Version 5.40.0

February 24, 2026

Features

  • TermNormalizer: add shared Unicode-aware text normalization (bc4798d)

Version 5.39.1

February 24, 2026

Bug Fixes

  • EnrichmentService: use per-hit siteId for element retrieval (392001c)
  • SettingsController: respect configured siteId for search options (518022f)
  • Tokenizer: normalize text processing for consistent indexing (c59dd54)

Version 5.39.0

February 22, 2026

Features

  • add dedicated widget style permissions and fix nested permission pattern (eef2f96)
  • add hierarchical result display for search widget (381a0be)
  • add prose-only snippets (_contentClean) and rename allowCodeSnippets to showCodeSnippets (7c8e746)
  • analytics: add recent searches and unhandled data loading (885b429)
  • merge search endpoints, add enrichment service, search/transform (5f53fd5)
  • plugin-docs: add support for PluginDoc indexing and transformation (d893b3e)
  • searchwidget: add query parameter handling and destination page highlighting (610a9a6)
  • searchwidget: enhance styling configuration for header and input (237c056)
  • server-side matched terms, always-on document data, heading extraction, (fa46c76)
  • smart query parsing for standalone highlighter, enrichment test controls, and widget CSS isolation (32b51b2)
  • widget: enhance search functionality with new settings and UI updates (5ecb74c)

Bug Fixes

  • harden export CSRF protection, CSS injection sanitization, and docs-manager rename (6b124b7)
  • Remove confirmation prompt for index rebuild action (cb66de0)
  • styles: escape collision handles in warning message (781eb77)

Miscellaneous Chores

  • add .gitattributes with export-ignore for Packagist distribution (ab013e6)
  • Update license information in LICENSE.md and composer.json (d224ab4)

Version 5.38.0

February 7, 2026

Features

  • Enhance storage path validation and analytics permissions (85a45c4)

Bug Fixes

  • AnalyticsService: replace local date and hour expressions with DateFormatHelper methods (5907b02)

Version 5.37.0

February 5, 2026

Features

  • actionButton: add quick actions menu for indices, promotions, query rules, and settings (e4b7c37)

Bug Fixes

  • autocomplete: results not searching all sites when siteId omitted (392019c)
  • index: enhance collision handle warnings with bold formatting (6aed492)
  • SearchManager: @since version in getCpSections method to 5.37.0 (572dcee)
  • UtilitiesController: add handle collision check before clearing caches (8f79631)
  • UtilitiesController: add handle collision check before rebuilding indices (712e8c6)

Miscellaneous Chores

  • dependencies: Remove matomo/device-detector from composer.json (c1c70eb)
  • package: update package metadata and versioning (f7a4dfb)

Version 5.36.0

January 28, 2026

Features

  • backends, indices: Add collision detection for backend and index handles (5b0c4ac)
  • search: Enhance site ID handling and stop words functionality (bb92504)

Bug Fixes

  • backends: add entriesAvailable flag to index responses (e7def18)

Version 5.35.2

January 26, 2026

Bug Fixes

  • models: ensure type-safe handling of siteId in SearchIndex model (1256089)

Version 5.35.1

January 26, 2026

Bug Fixes

  • backends: enhance document preparation for multi-site support (ef4287b)

Version 5.35.0

January 26, 2026

Features

  • indices: add sync count functionality for backend indices (981b015)

Version 5.34.1

January 26, 2026

Miscellaneous Chores

Version 5.34.0

January 26, 2026

Features

  • jobs: add analytics cleanup job and enhance sync status job scheduling (4708d82)

Bug Fixes

  • cache: correct popular query threshold check and remove legacy widget template (4325d48)
  • security: replace unserialize with JSON and strip API meta exposure (da51780)

Version 5.33.0

January 21, 2026

Features

  • Add configurable geo IP provider settings with HTTPS support (706dc9e)
  • add security guardrails for public search endpoints (69913a9)
  • disable CSRF validation for analytics tracking endpoints to simplify frontend integration (b917eea)
  • switch from PHP serialize() to JSON for file storage to enhance security and prevent object injection risks (ebe3184)

Bug Fixes

  • enhance index validation logic to ensure both enabled and analytics settings are checked (a6791ce)
  • security: address multiple security vulnerabilities (67a3d49)
  • swap cache and interface links in settings layout (1f88238)
  • update Redis configuration info box to include important notes on database isolation and managed hosting platforms (c647a02)

Version 5.32.0

January 20, 2026

Features

  • add debug enhancements, loading indicator config, and spinner customization (3143156)
  • add debug option to performSearch function (084a54d)
  • Add SearchModalWidget with modular architecture and debug toolbar (853d607)
  • add skipEntriesWithoutUrl, hideResultsWithoutUrl, and external backend improvements (1c88bab)

Version 5.31.0

January 19, 2026

Features

  • Add maxRecentSearches configuration for recent searches functionality (a36ab2f)
  • Refactor highlighting settings to group fields within a toggleable section (9a872e6)

Version 5.30.0

January 19, 2026

Features

  • a11y: Enhance accessibility features and tests for search widget (43e0690)
  • add deduplication for search results and improve result rendering in SearchWidget (1180b19)
  • add highlighting feature to SearchWidget with customizable options (ba05ed9)
  • add muted color styles for search widget (2b7dc77)
  • Add option to skip analytics tracking for internal operations (b424e63)
  • add search widget and fix backend prefix/autocomplete bugs (a67d52d)
  • Add tooltip display for raw widget configuration in the widget view (0930f6a)
  • Add view action and template for index details in IndicesController (619c715)
  • Add widget management interface and enhance search widget functionality (070db8e)
  • Add widget view functionality and improve backend/widget settings handling (5ac2670)
  • Enhance permissions for backend and widget configurations with user capability checks (e79d39d)
  • Enhance widget configuration management by preventing deletion of default configs and improving error handling (bedbf58)
  • Implement auto-assignment of default backend and widget after deletion (3e705da)
  • Implement widget management settings and update backend configuration references (f32fb70)
  • Remove isDefault property from WidgetConfig and related logic (434277f)
  • Update column headers and sorting functionality for source in backend and widget templates (1fc9c63)
  • Update default backend and widget handle descriptions for auto-assignment behavior (4f48fa1)

Bug Fixes

  • Autocomplete for Redis/File backends and redesign utilities overview (b6d5e9d)
  • Update widget styles retrieval to use preview method for appearance customization (59f432e)

Miscellaneous Chores

  • Add optional widget configuration section to README (b736491)

Version 5.29.0

January 16, 2026

Features

  • Add analytics column to indices table based on global settings (604e99e)
  • Add autocomplete caching functionality with clear cache options in UI (28076ef)
  • add backend diagnostics and search testing tabs to the settings interface (a299f98)
  • add backend handle management and enhance backend index listing functionality (93582f8)
  • add BackendVariableProxy for backend-specific queries and enhance SearchManagerVariable with withBackend method (21e0ec5)
  • Add comprehensive cache settings for autocomplete and cache warming functionality (16ab3d1)
  • add functionality to list indices with their respective file sizes (8f40c7e)
  • Add index-level analytics toggle to disable tracking per index (6b113f2)
  • Add popular query threshold settings with select options in cache settings (e5fb6a5)
  • Add query normalization for improved cache key generation and search count accuracy (45ef300)
  • Enhance cache clearing by adding autocomplete cache clearing in indexing operations (10206a5)
  • Enhance caching with autocomplete support and cache warming functionality (effe9cb)
  • expand element type options in index settings to include Assets, Categories, and SmartLinks (5d5d837)
  • Implement cache warming functionality after index rebuild with configurable settings (4c811d9)
  • Implement getTermsForAutocomplete method in storage classes for enhanced autocomplete functionality (e31aec2)
  • Queue geo-location lookups for improved search performance (1d1a2ea)

Bug Fixes

  • format numerical values for better readability in analytics templates (ecc7929)
  • Redis env var resolution, indices table layout, and multi-site status sync (9922a0b)
  • update cache location message to use searchHelper for dynamic path (e07e992)
  • update filename generation to use lower display name instead of plural lower display name (93f11ca)
  • update hardcoded cache paths with PluginHelper for consistency (9e46d07)
  • update PluginHelper bootstrap to include download permissions for logging (301612b)

Miscellaneous Chores

  • update autocomplete cache path for consistency in README (bb6b301)

Version 5.28.2

January 13, 2026

Bug Fixes

  • backend handling to use defaultBackendHandle and improve compatibility checks (daee11e)

Version 5.28.1

January 13, 2026

Bug Fixes

  • backend creation logic to use defaultBackendHandle and improve fallback handling (d40af39)

Version 5.28.0

January 13, 2026

Features

  • Add configuredBackends system with granular permissions and per-index backend support (c5104db)
  • add cross-backend methods for Algolia, Meilisearch, and Typesense, including browse, multiple queries, and filter parsing (c47bf42)

Version 5.27.0

January 12, 2026

Features

  • add analytics count to cache clearing buttons and format displayed numbers (fd2791a)
  • add analytics summary, content gaps, top searches, and trending searches widgets (403ba22)

Version 5.26.1

January 11, 2026

Bug Fixes

  • plugin name retrieval to use getFullName method (da20354)

Version 5.26.0

January 10, 2026

Features

  • Replace custom country name retrieval with GeoHelper utility (c6e49fc)

Version 5.25.0

January 9, 2026

Features

  • analytics: add per-tab export buttons with consistent filenames (e28d68b)
  • enhance action type badge styling for improved visibility and clarity (88a7005)
  • enhance multi-index search with redirect handling and metadata aggregation (0e50b74)
  • enhance redirect functionality to support element-based redirects and improve UI for redirect type selection (41974c7)
  • enhance redirect handling to display element info in query results (5d9849b)
  • refine zero-result analytics to exclude handled searches and improve accuracy (aff45c5)
  • update redirect URL resolution to support optional site ID for accurate element URLs (9a6cbc9)

Bug Fixes

  • update filename generation to use 'alltime' instead of 'all' for clarity (cc1982c)

Version 5.24.0

January 8, 2026

Features

  • refactor permissions to use grouped nested structure with granular access control (3774d8c)

Version 5.23.0

January 6, 2026

Features

  • migrate to shared base plugin (125dfff)

Version 5.22.0

January 5, 2026

Features

  • add backend filtering to indices for improved data management (d837e1f)
  • add sorting functionality to indices, promotions, and query rules templates (178b801)
  • enhance color coding for backend, source, and match types in indices, promotions, and query rules templates (2f939c0)

Bug Fixes

  • backend filter logic and prepare for per-index backend overrides (e5f5faf)

Version 5.21.2

January 5, 2026

Bug Fixes

  • add tab-content class to analytics sections for improved styling (a6df207)

Version 5.21.1

January 4, 2026

Bug Fixes

  • auto-indexing for config indices and add real-time document count tracking (de90fa8)

Version 5.21.0

January 4, 2026

Features

  • enhance indexing service to support Closure-based criteria for config indices (b078f49)

Version 5.20.2

December 20, 2025

Bug Fixes

  • format numerical values in dashboard for improved readability (5759a85)

Version 5.20.1

December 20, 2025

Bug Fixes

  • query rules table to rename 'Match Type' to 'Query Pattern' and add a new 'Match' column with color indicators (3bbaa96)

Version 5.20.0

December 20, 2025

Features

  • enhance promotions and query rules to support multi-pattern matching with commas (c841691)

Version 5.19.0

December 20, 2025

Features

  • update promotions handling to support null indexHandle for global promotions and improve UI placeholders (a866fd2)

Version 5.18.0

December 20, 2025

Features

  • add title attribute to promotions and update related templates for better identification (e2e2a8a)

Version 5.17.0

December 20, 2025

Features

  • enhance Arabic language support with spelling variations for boolean operators (8d8fa83)

Version 5.16.0

December 20, 2025

Features

  • add all-sites search support for CP test page (1989182)

Bug Fixes

  • objectID/elementId mismatch in promotions, query rules, and synonym handling (014a9cd)

Version 5.15.0

December 19, 2025

Features

  • Enhance language support in search storage and autocomplete services (ea78e60)

Version 5.14.1

December 19, 2025

Bug Fixes

  • move index retrieval logic to a separate section in test.twig (48ae33a)

Version 5.14.0

December 19, 2025

Features

  • Add 'pgsql' to searchBackend options in Settings model (7191b1b)

Version 5.13.0

December 19, 2025

Features

  • Enhance test settings template to include siteId mapping for indices (ce02eaf)

Version 5.12.0

December 19, 2025

Features

  • Enhance autocomplete functionality with siteId parameter and update test template (f9d8a8d)

Version 5.11.0

December 19, 2025

Features

  • Add promotion and query rule testing actions to settings controller and update test template (d8c4b57)

Version 5.10.0

December 19, 2025

Features

  • Add Promotions and Query Rules systems with analytics improvements (64a3c67)
  • Enhance dashboard with promotions and query rules statistics, and add analytics overview (eeeb904)
  • Update cache settings instructions and add human-readable duration for cache inputs (3d33c5e)

Bug Fixes

  • ui: boost multiplier spacing (e347acb)

Version 5.9.0

December 18, 2025

Features

  • add expected element count calculation and update indices template (2e8dc85)
  • Add localized boolean operators for 5 languages (ac6fe32)
  • Add source detection, performance tab, and analytics improvements (efd0d49)

Version 5.8.0

December 18, 2025

Features

  • add unified autocomplete endpoint with suggestions and results (35e7ddb)

Version 5.7.0

December 18, 2025

Features

  • add type filtering and enrichment to search API (85f8fc3)
  • derive element type from section handle in AutoTransformer (8a26963)

Version 5.6.0

December 18, 2025

Features

  • add rich autocomplete with element type detection (1be13b5)

Version 5.5.9

December 17, 2025

Bug Fixes

  • Enable plugin name setting in configuration (a24c9fa)

Version 5.5.8

December 17, 2025

Bug Fixes

  • Update similarity threshold to improve fuzzy matching accuracy (e473f01)

Version 5.5.7

December 17, 2025

Bug Fixes

  • Enhance search functionality by using index's configured siteId and adding wildcard support (5c9851e)

Version 5.5.6

December 17, 2025

Bug Fixes

  • Make fuzzy matching limit configurable and fix n-gram settings save bug (872cf0a)

Version 5.5.5

December 17, 2025

Bug Fixes

  • Limit results in similarity query to improve performance (dc3572a)

Version 5.5.4

December 17, 2025

Bug Fixes

  • Use REPLACE INTO for document storage to handle duplicates and improve data integrity (ffe33c4)

Version 5.5.3

December 17, 2025

Bug Fixes

  • Prevent duplicate key errors and add comprehensive cleanup across all storage backends (7a4fe0a)

Version 5.5.2

December 17, 2025

Bug Fixes

  • Clear storage now handles orphaned indices and resets metadata (7050d63)

Version 5.5.1

December 17, 2025

Bug Fixes

  • Implement proper wildcard search and fix fuzzy matching across all backends (07ccbad)

Version 5.5.0

December 17, 2025

Features

  • Enhance AutoTransformer to automatically handle all field types (b09a4e5)
  • Update transformer class instructions and examples in edit template; remove unused index copy template (e3fddcc)

Version 5.4.0

December 17, 2025

Features

  • Fix config index metadata sync and optimize SearchIndex model (94dce2d)

Version 5.3.0

December 16, 2025

Features

  • enhance index deletion process by clearing backend storage before database record removal (4ab91e9)

Bug Fixes

  • improve transformer selection logic to handle empty string cases (9d31c48)

Version 5.2.2

December 16, 2025

Bug Fixes

  • critical backend bugs and add PostgreSQL support (e1e81fa)

Version 5.2.1

December 16, 2025

Bug Fixes

  • improve analytics display and error handling for Chart.js loading (9210a33)

Version 5.2.0

December 16, 2025

Features

  • add cache storage method and duration settings for different environments (5838bb7)
  • add cache storage method option to settings table (b80d75e)
  • implement cache storage method selection and handling for Redis and file systems (62c29b4)

Version 5.1.0

December 16, 2025

Features

  • update backend support in search functionality to include PostgreSQL (2e7a467)

Version 5.0.0

December 16, 2025

Features

  • initial Search Manager plugin implementation (6b63c10)