Release 2.4.2: core 1.4.2 bugfix #11

Merged
wpdev merged 7 commits from hardening/2.4.2 into main 2026-09-28 18:51:40 +08:00
Owner

1.4.2:手冊附錄 F 的已知問題修正(F-2、F-4〜F-8、F-11)與驗收修正。

  • PR-135 設定頁顯示模式變更被拒絕的原因(F-2)
  • PR-136 archive sweep 不再重複歸檔;wp tmdo install 加索引並刪除重複列(F-6)
  • PR-137 entity 健康面板看得到執行中的 backfill(F-11)
  • PR-138 停用/解除安裝清掉所有排程(含帶參數)與 tmdo_* option(F-4、F-5)
  • PR-139 解除安裝提示指向 bridge-restore-native;壓測工具移除 wc_product(F-7、F-8)
  • PR-140 1.4.2 版本與 CHANGELOG
  • PR-141 驗收修正:沒有索引時 sweep 暫停;刪除重複只在 CLI;保留 LatePoint option;AJAX 錯誤訊息不自動消失

Verify:unit 711、integration 612、phpcs 0、PHPStan OK;security review 無發現;correctness review 的 Medium 與 3 個 Low 已修。

升級後:每個站台執行 wp tmdo install。

1.4.2:手冊附錄 F 的已知問題修正(F-2、F-4〜F-8、F-11)與驗收修正。 - PR-135 設定頁顯示模式變更被拒絕的原因(F-2) - PR-136 archive sweep 不再重複歸檔;`wp tmdo install` 加索引並刪除重複列(F-6) - PR-137 entity 健康面板看得到執行中的 backfill(F-11) - PR-138 停用/解除安裝清掉所有排程(含帶參數)與 tmdo_* option(F-4、F-5) - PR-139 解除安裝提示指向 bridge-restore-native;壓測工具移除 wc_product(F-7、F-8) - PR-140 1.4.2 版本與 CHANGELOG - PR-141 驗收修正:沒有索引時 sweep 暫停;刪除重複只在 CLI;保留 LatePoint option;AJAX 錯誤訊息不自動消失 Verify:unit 711、integration 612、phpcs 0、PHPStan OK;security review 無發現;correctness review 的 Medium 與 3 個 Low 已修。 升級後:每個站台執行 `wp tmdo install`。
wpdev added 7 commits 2026-09-28 18:44:26 +08:00
- The settings form and the AJAX section save both went through
  TMDO_Mode_Manager::set() and dropped its WP_Error: an unsafe jump or a
  Promotion Guard refusal still said "saved" while the mode stayed put
- TMDO_Admin::apply_bridge_modes() returns the refusals; the full form keeps
  them in a per-user transient and shows them after the redirect, the AJAX
  save returns them as the error message (the settings JS shows it)
- Verify: AdminBridgeModeSaveTest (5 new); unit 709, integration 606, phpcs 0, stan OK
- PR: PR-135 (manual F-2)
- sweep() skips meta rows already in wpdo_archive (NOT EXISTS on
  original_meta_id): it copied the same trashed meta again every day and
  wpdo_archive has no unique key (dev20: 300 rows for 150 meta rows)
- TMDO_Zone_Archive::remove_duplicates() keeps the first copy per
  original_meta_id (rows without one are left alone); install() runs it,
  so `wp tmdo install` cleans existing sites
- wpdo_archive gets KEY idx_original_meta for the lookup (new installs;
  existing sites via `wp tmdo install`). SCHEMA_VERSION is not bumped, so
  no web request runs dbDelta
- Verify: ZoneArchiveIntegrationTest (2 new); dev20 read-only check: 150 of
  300 rows would be removed; unit 709, integration 608, phpcs 0, stan OK
- PR: PR-136 (manual F-6)
- Backfill batches are scheduled with (entity, group) args; the health
  panel looked for (entity) alone, never saw one and kept offering to start
  a backfill, which resets the group's checkpoint
- is_backfill_active() checks every group of the entity
- Unit bootstrap: wp_next_scheduled() stub honours hook + args
- Verify: EntityHealthBackfillTest (2 new); unit 711, phpcs 0, stan OK
- PR: PR-137 (manual F-11)
- One CRON_HOOKS list for deactivate() and uninstall; wp_unschedule_hook() also
  removes events scheduled with args (tmdo_drift_resync, backfill batches).
- Fix the wrong wpdo_user_stress_test_batch name; add migration tick,
  entity backfill, auto-promote and all stress-test batch hooks.
- Uninstall sweeps tmdo_* options and _transient_(timeout_)tmdo_* rows too.
- Verify: InstallerCleanupTest (3 new), unit 711, integration 611, phpcs 0
- PR: PR-138 (manual F-4, F-5)
- The refused-uninstall notice said no tool writes the data back to native
  tables; wp tmdo bridge-restore-native does.
- The post stress tester no longer maps product to the retired wc_product table.
- Verify: unit 711, integration 611, phpcs 0
- PR: PR-139 (manual F-7, F-8)
- 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
fix(2meet-data-optimizer): 1.4.2 acceptance fixes for archive sweep and uninstall
Anti-EAV Lint + Quality Gate / anti-eav-lint (pull_request) Successful in 21s
Tests / PHP Lint (pull_request) Successful in 18s
Tests / Unit Tests (pull_request) Successful in 41s
Tests / Integration Tests (pull_request) Successful in 1m25s
Tests / PHPCS (pull_request) Successful in 44s
Tests / PHPStan (pull_request) Successful in 47s
6f117f4e9b
- Archive sweep waits until idx_original_meta exists (a plugin update does
  not run dbDelta; without the index NOT EXISTS scans the archive per row)
- Duplicate archive cleanup runs from WP-CLI only, never in a web activation
- Uninstall keeps the LatePoint add-on's tmdo_latepoint_db_version
- AJAX save errors stay on screen instead of fading after 2.5 s
- Verify: 2 new integration tests; unit 711, integration 612, phpcs 0, stan OK
- PR: PR-141 (2.4.2 correctness review)
wpdev merged commit 04ae4c0d0f into main 2026-09-28 18:51:40 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wpdev/2meet-data-optimizer#11