Version 5.0.0
July 27, 2026
Initial release.
Added
- Control panel section with an overview of the search index: size, composition by site, attribute and field, and how much of each element type is actually indexed.
- Audits comparing the index against the content behind it, in two modes. Quick is all set comparisons in SQL; deep also recomputes each element's keywords and diffs them against what's stored.
- Ten checks: unindexed elements, orphaned rows, keyword drift, partly indexed elements, stale field rows, empty keywords, revision rows, unknown attribute rows, pending index queue and truncated keywords.
- Repairs, per finding or in bulk, always through Craft's own indexer.
- A search console that runs a query through Craft's search and shows how it parsed the terms, whether each one uses the full-text index or LIKE and why, the SQL Craft ran, the index rows that matched and the score each element was given.
- A per-element view of every index row, with a word-by-word diff against what Craft would write for it now.
- Reindexing by element source, using Craft's own element index sources — so element types from other plugins work with no special handling.
- Repair of Craft's deferred index queue, including releasing jobs a dead worker left reserved, which Craft would otherwise skip forever.
- Console commands:
holmes/index,holmes/index/search,holmes/index/element,holmes/audit,holmes/audit/show,holmes/audit/checks,holmes/sync/reindex,holmes/sync/all,holmes/sync/orphans,holmes/sync/queue,holmes/sync/sources.holmes/audit --fail-on=criticalexits non-zero, for use in CI. - A check registry and events at every stage:
RegisterChecksEvent,AuditEventbefore and after a run,DefineIssuesEventafter each check,SyncEventbefore and after any change to the index, andProbeEventafter a search console query. craft.holmesin Twig:rows(),isIndexed(),stats(),coverage(),search(),compare(),queue(),latestAudit()andhighlight().- User permissions for inspecting the index, running audits and changing it.
- Optional logging of every write Craft makes to the search index, to
storage/logs/holmes.log.