Version 5.8.4

August 6, 2026

Heads up: namespace move in 5.9.0

In 5.9.0 the internal PHP namespace moves from percipiolondon\typesense to craftpulse\typesense. The Composer package name (craftpulse/craft-typesense) and the plugin handle (typesense) do not change, so project config, permissions, and settings are unaffected. The move is bridged in both directions: on this 5.8.x line a forward-compatibility alias lets you reference the future craftpulse\typesense\* class names today, and on 5.9.0 a backwards-compatibility alias keeps the percipiolondon\typesense\* names working (with a deprecation notice). Update your imports to craftpulse\typesense\* before upgrading.

Added

  • Forward-compatibility alias for the upcoming craftpulse\typesense namespace: reference the future class names (for example in config/typesense.php) today and they resolve to the current percipiolondon\typesense\* classes.
  • Added an update-schema console command (craft typesense/default/update-schema) that drops and recreates every configured collection's fields from config/typesense.php, useful while iterating on a schema in development. It is destructive (existing field data is removed and must be re-synced), so it prints that in ./craft help and prompts for confirmation unless --force is passed. Thanks to @jamie-s-white (#61).

Changed

  • Reworked the document sync queue flow onto Craft's batched job contract (BaseBatchedJob), so large indexes progress across spawned jobs while stale-document cleanup stays correct across the whole run (flush/create side effects run once, processed IDs survive queue serialization, the batchable query is cloned and stably ordered). Thanks to @timkelty (#70). Expected to resolve #69.

Fixed

  • Guard against a null entry when applying a draft: the after-restore / after-move handler could pass a query miss straight to handleSave() (a non-nullable signature) and throw a TypeError. Reported by @mikeymeister (#67).
  • Delete documents from collections defined with the .all section syntax: the delete handler resolved only the specific section.type collection, so documents in an .all collection were never removed. It now falls back to section.all, matching the save path. Thanks to @jamie-s-white (#64).
  • Fixed a bug where deleting a Cockpit element left its document in the index: the delete handler looked the element up with a craft\elements\Entry query, which never matches craftpulse\cockpit\elements\Job, craftpulse\cockpit\elements\Department, craftpulse\cockpit\elements\Contact or craftpulse\cockpit\elements\MatchFieldEntry, so those documents were only ever removed by a later full sync.
  • Fixed a bug where deleting a disabled element left its document in the index, because the delete handler's element lookup applied the default enabled-only status filter.
  • Fixed a bug where deleting a Cockpit element did not resolve the site-aware collection, so a FiftyFivePlus job or department would have been removed from the Go4Jobs collection rather than its own. The save and delete handlers now share one collection resolver.
  • Do not attach the element sync events until an API key is configured, so saving elements on a fresh, not-yet-configured install no longer errors. Thanks to @jamie-s-white (#63).
  • Confirmed the control-panel Sync/Flush actions build their URLs with cpUrl(), so they respect CRAFT_BASE_CP_URL and post to the control-panel domain rather than the front-end site URL (the CORS failure reported when the control panel runs on a separate domain). Reported by @vardumper (#68).

Version 5.8.3

March 27, 2026

Fixed

  • Fixed site-aware collection resolution in DocumentsController for multi-instance Cockpit elements. Previously, handleSave always resolved to the first matching collection (Go4Jobs), causing FiftyFivePlus jobs and departments to never sync to their correct Typesense index on element save.

Version 5.8.2

December 8, 2025

Fixed

  • Fixed an where the custom elements wouldn't sync - this is cockpit specific, temporary solution until full rework is labelled "done".

Version 5.8.1

October 21, 2025

Fixed

  • Fixed an issue where the custom elements couldn't resolve, only Entry's could be resolved

Version 5.8.0

June 20, 2025

Added

  • Added element support for craftpulse/cockpit/elements/Contact
  • Added element support for craftpulse/cockpit/elements/Department
  • Added element support for craftpulse/cockpit/elements/Job
  • Added element support for craftpulse/cockpit/elements/MatchFieldEntry
  • Added element support for craftpulse/reviews/elements/Review;

Version 5.7.2.1

April 16, 2025

Fixed

  • Fixed a regression issue from safeguarding when no client is known

Version 5.7.2

April 16, 2025

Added

  • Added the structure after move event inside the after save method

Fixed

  • Fixed the unwanted entries in an index in after save, because criteria were skipped. Thanks to scholejo

Version 5.7.1

April 16, 2025

Fixed

  • Fixed an issue that could occur when upgrading the project but not having client settings.

Version 5.7.0

February 26, 2025

Added

Fixed

  • Don't sync/flush if the domain is not the same in site #55
  • Session does not exist in a console request thanks to samuelbirch #51

Version 5.6.2

February 3, 2025

Added

  • Fixed an issue where choosing "single" would end up in validation errors #47

Version 5.6.1

January 24, 2025

Fixed

  • Fixed an issue where the settings wouldn't display if "Single" was selected as an option #46

Version 5.6.0

January 6, 2025

Added

Version 5.5.4

October 16, 2024

Added

  • Added event hooks to capture changes on the Typesense document (EVENT_AFTER_DELETE/EVENT_AFTER_UPSERT/EVENT_BEFORE_DELETE/EVENT_BEFORE_UPSERT)

Version 5.5.3.1

August 26, 2024

Fixed

  • Composer version of craft vite

Version 5.5.3

August 26, 2024

Added

  • Added the possibility to allow indexing multiple sections in a single collection #35
  • Added code analysis and auto release scripts

Fixed

  • Removed composer.lock so latest versions of dependencies can be installed as defined in composer.json

Version 5.5.2

August 2, 2024

Fixed

  • Added section.all fallback for the deletion of documents

Version 5.5.1

July 15, 2024

Fixed

  • Check for the deletion on the documents

Version 5.5.0

April 9, 2024

Changed

  • Craft 5 release

Version 5.4.0

April 9, 2024

Changed

  • Prepped for Craft 5

Version 5.3.0

January 16, 2024

Added

  • Check for null resolvers

Version 5.2.0

January 3, 2024

Added

  • Before Sync / Flush event hooks

Version 5.1.0

December 1, 2023

Added

  • Support for Assets

Version 5.0.1

November 22, 2023

Changed

  • Changed the handling of the document deletion for mutli sites

Version 5.0.0

March 13, 2023

Added

  • Docs for the official release
  • Seperate typesense logging

Changed

  • Move the deletion of the collection into the sync if it's a flush #7

Version 4.0.2

November 4, 2022

Added

  • Added the possibility to handle save for all the types inside of the section

Version 4.0.1

October 25, 2022

Fix

  • Fixed: the project rebuild command was failing because of project config settings, these were disabled since we don't use them yet

Version 4.0.0

October 6, 2022

Added

  • Added: A sync console command

Version 4.0.0-beta.3

September 19, 2022

Changed

  • Changed: disabled the before routing fetch to check for scheduled posts

Version 4.0.0-beta.2

September 19, 2022

Added

  • Added: Delete the document when setting an enabled entry to disable #6
  • Added: Create the document when a scheduled post becomes active #9

Version 4.0.0-beta.1

August 21, 2022

Added

  • Added support for Craft 4