diff --git a/2meet-data-optimizer-hivepress-addon.php b/2meet-data-optimizer-hivepress-addon.php index 35cc1c6..d57a191 100644 --- a/2meet-data-optimizer-hivepress-addon.php +++ b/2meet-data-optimizer-hivepress-addon.php @@ -3,7 +3,7 @@ * Plugin Name: 2meet Data Optimizer — Hivepress AddOn * Plugin URI: https://2meet.io/2meet-data-optimizer/hivepress * Description: HivePress + 12 擴充整合:13 adapter (core/reviews/bookings/messages/memberships/requests/favorites/statistics/tags/seo/social-links/blocks/marketplace) + 7 HPCT interceptor + 5 query interceptor + admin tab + CLI namespace - * Version: 0.3.0 + * Version: 0.4.0 * Requires at least: 6.0 * Tested up to: 6.9.4 * Requires PHP: 8.1 @@ -24,7 +24,7 @@ if ( ! defined( 'ABSPATH' ) ) { exit; } -define( 'TMDO_HIVEPRESS_VERSION', '0.3.0' ); +define( 'TMDO_HIVEPRESS_VERSION', '0.4.0' ); define( 'TMDO_HIVEPRESS_PATH', plugin_dir_path( __FILE__ ) ); define( 'TMDO_HIVEPRESS_URL', plugin_dir_url( __FILE__ ) ); define( 'TMDO_HIVEPRESS_FILE', __FILE__ ); diff --git a/CHANGELOG.md b/CHANGELOG.md index f57af6e..a194023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,45 @@ Versioning follows [Semantic Versioning](https://semver.org/). --- +## [0.4.0] — 2026-09-27 + +Released with 2meet-data-optimizer 1.3.0 (hardening 2.3). + +### Changed + +- `hp_listing_core` declares indexes on `hp_hourly_rate` and `hp_rating_count` + (HivePress filters and sorts on both). They are declared through the group's + `indexes`, not `searchable`, so the pinned schema hash is unchanged and the + table is not rebuilt; core 1.3.0 adds them in place from WP-CLI / WP-Cron. + dev36 (902k listings): two indexes in about 4.7 s; routed `rating_count IN` + 2.1 s → 0.36 s, `rating_count !=` 2.1 s → 0.76 s, hourly rate + price sort + 2.1 s → 0.65 s. (PR-090) +- With a persistent object cache, transient entries now expire: a timeout + entry when it records, a value after at most a week (`MAX_CACHE_TTL`; + HivePress writes the value before its timeout, and a miss only makes it + rebuild). Entries of deleted posts no longer pile up. (PR-099) + +### Upgrading + +- Deploy with core 1.3.0: on an older core the AddOn declares no index at all + (core 1.2.0 would run the ALTER inside a web request). (PR-090b) +- Redis: entries written by 0.3.0 have no TTL (dev36 had 3.0 M). Give them one + with non-blocking commands — never `wp cache flush-group`, which the Redis + Object Cache drop-in runs as one server-side script and which blocked Redis + on a large group. `NX` leaves entries written by 0.4.0 alone: + + ``` + redis-cli --scan --pattern 'wp:tmdo_hp_transient:*' \ + | awk '{printf "EXPIRE %s 604800 NX\r\n", $0}' | redis-cli --pipe + ``` + + dev36: 3,013,352 keys in 45 s, 0 errors, Redis latency max 2 ms. The pattern + follows the drop-in's key layout (`::`); + check it with `redis-cli --scan --pattern '*tmdo_hp_transient*' | head` + first. redis-cli 7 has no `--count` with `--scan`. + +--- + ## [0.3.0] — 2026-09-27 Released with 2meet-data-optimizer 1.2.0 (hardening 2.2).