From c9d5a08a428ea3bb17cd905009e1f5cbafa2ae75 Mon Sep 17 00:00:00 2001 From: wpdev Date: Mon, 28 Sep 2026 18:26:52 +0800 Subject: [PATCH] chore(2meet-data-optimizer): 1.4.2 release notes and version - Version 1.4.2 (header, TMDO_VERSION, readme Stable tag and changelog) - CHANGELOG lists PR-135..139; after upgrade run wp tmdo install once per site for the archive index and duplicate cleanup - PR: PR-140 --- 2meet-data-optimizer.php | 4 ++-- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ readme.txt | 9 ++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/2meet-data-optimizer.php b/2meet-data-optimizer.php index ec92a55..b1707cd 100644 --- a/2meet-data-optimizer.php +++ b/2meet-data-optimizer.php @@ -3,7 +3,7 @@ * Plugin Name: 2meet Data Optimizer * Plugin URI: https://2meet.io/2meet-data-optimizer * Description: 通用 WordPress 反 EAV 引擎:將 postmeta / usermeta / termmeta / commentmeta 自動分流至四象限扁平表(Hot / Warm / Cold / Archive),大幅提升搜尋與篩選效能。從 wp-data-optimizer v2.16.0 提煉的純核心,整合層交給 11 個 AddOn。 - * Version: 1.4.1 + * Version: 1.4.2 * Requires at least: 6.0 * Tested up to: 6.9.4 * Requires PHP: 8.1 @@ -26,7 +26,7 @@ if ( ! defined( 'ABSPATH' ) ) { } // ── Constants ────────────────────────────────────────────────────────────── -define( 'TMDO_VERSION', '1.4.1' ); +define( 'TMDO_VERSION', '1.4.2' ); define( 'TMDO_DB_VERSION', '2.1.0' ); define( 'TMDO_PATH', plugin_dir_path( __FILE__ ) ); define( 'TMDO_URL', plugin_dir_url( __FILE__ ) ); diff --git a/CHANGELOG.md b/CHANGELOG.md index cc5f5cf..03f13d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,36 @@ Versioning follows [Semantic Versioning](https://semver.org/). --- +## [1.4.2] — 2026-09-28 — 手冊已知問題修正(hardening 2.4.2) + +**性質**:修正。無 schema 版本變更;archive 表新增索引(見「升級後」)。來源:`2meet-do-manual.md` +附錄 F(F-2、F-4〜F-8、F-11)。 + +### Fixed + +- **設定頁會說明模式為何沒有變更**:完整表單與 AJAX 區塊儲存都經 `TMDO_Mode_Manager::set()`, + 過去忽略它回傳的 `WP_Error`:不安全的跳階或 Promotion Guard 拒絕時,頁面仍顯示「已儲存」、 + 模式卻沒變。現在完整表單在重新導向後顯示拒絕原因(每位使用者一次),AJAX 儲存以錯誤訊息回傳。(PR-135,F-2) +- **archive 不再重複歸檔**:`wpdo_archive_sweep` 略過已在 archive 表的 meta(依 `original_meta_id`), + 過去同一筆 meta 每次 sweep 都再寫一列(dev20:300 列只有 150 筆不同)。archive 表新增 + `idx_original_meta` 索引;`wp tmdo install` 會補上索引並刪除重複列(保留最早一列)。(PR-136,F-6) +- **entity 健康面板看得到執行中的 backfill**:批次以 `(entity, group)` 參數排程,面板過去只查 + `(entity)`,永遠看不到、一直提示可開始。(PR-137,F-11) +- **停用與解除安裝清掉所有排程**:改用 `wp_unschedule_hook()`,連帶參數排程的事件 + (`tmdo_drift_resync`、backfill 批次)也清除;修正錯誤的 `wpdo_user_stress_test_batch` 名稱, + 補上 `wpdo_migration_tick`、`wpdo_entity_backfill_batch`、`wpdo_auto_promote_check` 與各壓測批次。 + 解除安裝另外刪除 `tmdo_*` option 及 `tmdo_*` transient。(PR-138,F-4、F-5) +- 解除安裝被拒絕時的提示改為指向 `wp tmdo bridge-restore-native`(過去說沒有寫回工具);post + 壓測工具不再使用已退役的 `wc_product` 表。(PR-139,F-7、F-8) + +### 升級後 + +- 每個站台執行一次 `wp tmdo install`:為 archive 表加上 `idx_original_meta` 並刪除重複的 archive + 列。表很大時請在離峰時段執行(CLI,不在 web 請求中做 DDL)。未執行也不影響功能,只是 sweep + 的 NOT EXISTS 檢查少了索引。 + +--- + ## [1.4.1] — 2026-09-28 — 2.4 驗收修正 **性質**:修正。無 schema 變更。來源:2.4 全面驗收的 security review 與 correctness review。 diff --git a/readme.txt b/readme.txt index f8df125..b14e9d2 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: performance, database, postmeta, optimization, hivepress Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 8.1 -Stable tag: 1.4.1 +Stable tag: 1.4.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -107,6 +107,13 @@ The Classifier tab analyzes your existing `wp_postmeta` data (access frequency, == Changelog == += 1.4.2 = +* The settings page shows why a bridge-mode change was refused (unsafe jump, Promotion Guard) instead of reporting it saved +* Archive sweep skips meta already archived; `wp tmdo install` adds an index on original_meta_id and removes duplicate archive rows +* Entity health sees a running backfill (batches are scheduled with entity and group args) +* Deactivate and uninstall clear every scheduled event, including ones scheduled with args; uninstall also removes tmdo_* options and transients +* The refused-uninstall notice points to `wp tmdo bridge-restore-native`; the post stress tester no longer uses the retired wc_product table + = 1.4.1 = * A query ordered by its meta_key among several orderings (or by the key's name) keeps meta_key native; meta_compare_key other than '=' is not routed; a sort group stays when orderby may use it as the primary clause * Only standalone posts.ID terms in ORDER BY become flat post_id tie-breaks (FIELD()/IN expressions from other plugins are left alone); PCRE failures keep the original SQL