-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
All notable changes to Hooked on Facets are documented in this file.
The format is based on Keep a Changelog, and the project follows Semantic Versioning. As of 1.0.0 the public API and index schema are stable; breaking changes bump the major version. Each version links to its full GitHub release notes.
No unreleased changes.
1.0.0 - 2026-06-04
First stable release. Promotes the feature-complete 0.13.x line to general availability with a committed public API and index schema. No functional changes from 0.13.1-alpha.
0.13.1-alpha - 2026-05-29
-
Counts query optimization — the drill-down counts now
GROUP BY facet_valuealone (picking the display viaMIN(facet_display)) instead of(facet_value, facet_display). The value→display mapping is 1:1 so results are identical, but dropping the second 191-char column from the GROUP BY shrinks the aggregation temp table:resolve()p95 dropped from ~465ms to ~63ms (7.5×) on 100k products, uncached.
0.13.0-alpha - 2026-05-29
First round of post-feature-complete enhancements — SEO, analytics, and resolver caching.
-
SEO for filtered pages (
src/Seo/SeoManager.php) —rel=canonicalto the filter-stripped URL,noindex,followonce a configurable number of facets are stacked (default 2), and an active-filters title suffix. Defers canonical to an active general SEO plugin (Yoast / Rank Math / AIOSEO / SEOPress). New admin SEO screen andGET|POST /seo-settings. -
Analytics dashboard — the Telemetry recorder now captures per-facet/value
usage and zero-result filter combinations;
snapshot()adds p50/p95/p99 resolver latency. The admin Dashboard renders most-used facets, "filters that find nothing," latency percentiles, and a dead-facets callout.
-
Resolver result-set cache —
resolve()andresolve_ids()cache their output in the object cache, keyed by(index version, filter state). The Indexer bumpshof_index_versionon every write for O(1) invalidation. Benchmarking showed the IDs+counts/filterpath was ~465ms on 100k products; cached repeat hits are sub-millisecond. Kill switch:hof_resolver_cache_enabled.
0.12.0-alpha - 2026-05-29
Feature-complete milestone — the full "wow kit" plus the AND-within-facet resolver.
-
Spin-the-wheel facet (
spin_the_wheel) — a gamified single-select picker: a cosmetic conic-gradient dial over a real, accessible radiogroup that degrades to a plain single-select with JS off. -
Saved-bin facet (
saved_bin) — a drag-and-drop / click comparison bin. Items are pinned to a per-sitelocalStoragebin (via the new[hof_bin_button]shortcode or anydata-hof-bin-addelement) and filtered to with a "show only saved" toggle, backed by the reserved_bin_idsresolver key. -
Intersection matrix facet (
matrix) — the Venn/UpSet matrix returns on real AND-within-facet semantics, paired with an explicit selected-state dot, per-row count bars, and the active-filters chip strip. -
AND-within-facet resolver mode —
settings.match = 'all'makes a facet require objects to carry every selected value (one single-valueINTERSECTleg per value), exposed as an any/all control on multi-value facets. -
Multisite support — network-aware activation, new-site table seeding
(
wp_initialize_site), theplugins_loadedschema auto-heal, and per-site opt-in uninstall. Validated on a liveWP_ALLOW_MULTISITEnetwork.
0.11.0-alpha - 2026-05-29
Custom-field source line — ACF, Meta Box, and Pods.
- ACF, Meta Box, and Pods suggestion providers — one-click facet configs from registered custom fields, gated so only in-use fields are offered.
-
Indexer resolve mechanism — ID→label resolution for
post/user/termreferences, serialized-array and comma-separated-ID adapters, and ACFdate_picker(Ymd) → epoch normalization. - Divi bridge — query helper plus a native module for placement.
-
Action Scheduler-backed background reindex, with a
wp_cronfallback.
0.10.0-alpha - 2026-05-26
- Third page-builder bridge: Breakdance (Array Query recipe).
0.9.0-alpha - 2026-05-26
- Second page-builder bridge: Bricks (query binding by CSS class).
0.8.0-alpha - 2026-05-24
- Polish pass: theming foundation (CSS variable tokens), admin clarity, and a numbered pagination facet.
0.7.0-alpha - 2026-05-24
- First page-builder bridge: Elementor (Query ID binding).
0.6.1-alpha - 2026-05-24
- Test harness and CI hygiene.
0.6.0-alpha - 2026-05-21
- Customer-ready foundation.
0.5.0-alpha - 2026-05-21
- Premium licensing scaffold.
0.4.0-alpha - 2026-05-21
- Admin SPA expansion ("admin grows up").
0.3.0-alpha - 2026-05-21
- Visual DNA v3 — palette matching.
0.2.0-alpha - 2026-05-21
- Visual DNA lands — color-extraction-driven filtering.
0.1.0-alpha - 2026-05-21
- First public alpha.
hooked on facets · Filtering, finally fun. · GitHub · hookedonfacets.com
Filtering, finally fun.
📖 docs
🧠 concepts
🎛️ facet types
- All Types
- Checkbox
- Radio
- Dropdown
- Range Slider
- Date Range
- Search
- Hierarchy
- Color Swatch
- Swipe Deck
- Spin the Wheel
- Intersection Matrix
- Ask
- Visual DNA
- Toggle
- Saved Bin
- Pagination
🔧 develop
🗺️ project