From e57dd5bd15a71caed1a271f5cbf83f886f20c21a Mon Sep 17 00:00:00 2001 From: wpdev Date: Sun, 27 Sep 2026 16:50:01 +0800 Subject: [PATCH] docs(2meet-data-optimizer-hivepress-addon): 0.4.0 release notes - version 0.4.0; CHANGELOG for PR-090, 090b and 099 with dev36 numbers - Upgrading: deploy with core 1.3.0; give 0.3.0 Redis entries a TTL with redis-cli --scan | EXPIRE ... NX | --pipe (tested on dev36: 3.0 M keys, 45 s, latency max 2 ms), never flush-group - Verify: composer test (145) - PR: PR-102 --- 2meet-data-optimizer-hivepress-addon.php | 4 +-- CHANGELOG.md | 39 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) 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).