Typesense
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\typesensetocraftpulse\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 futurecraftpulse\typesense\*class names today, and on 5.9.0 a backwards-compatibility alias keeps thepercipiolondon\typesense\*names working (with a deprecation notice). Update your imports tocraftpulse\typesense\*before upgrading.
Added
- Forward-compatibility alias for the upcoming
craftpulse\typesensenamespace: reference the future class names (for example inconfig/typesense.php) today and they resolve to the currentpercipiolondon\typesense\*classes. - Added an
update-schemaconsole command (craft typesense/default/update-schema) that drops and recreates every configured collection's fields fromconfig/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 helpand prompts for confirmation unless--forceis 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
nullentry when applying a draft: the after-restore / after-move handler could pass a query miss straight tohandleSave()(a non-nullable signature) and throw a TypeError. Reported by @mikeymeister (#67). - Delete documents from collections defined with the
.allsection syntax: the delete handler resolved only the specificsection.typecollection, so documents in an.allcollection were never removed. It now falls back tosection.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\Entryquery, which never matchescraftpulse\cockpit\elements\Job,craftpulse\cockpit\elements\Department,craftpulse\cockpit\elements\Contactorcraftpulse\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 respectCRAFT_BASE_CP_URLand 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
DocumentsControllerfor multi-instance Cockpit elements. Previously,handleSavealways 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
- Added support for categories thanks to dezeweetjeniet PR #54
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
- Added support for synonyms
- Added support for Craft Commerce (Products and Variants) thanks to samuelbirch and dezeweetjeniet PR #36
- Added support for Shopify products thanks to sidoneill issue #43
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.1
August 21, 2022
Added
- Added support for Craft 4