release: v1.0.0 — 取代 wp-data-optimizer v3.4.6
Anti-EAV Lint + Quality Gate / anti-eav-lint (push) Successful in 9s
Tests / Unit Tests (push) Successful in 10s
Tests / Integration Tests (push) Successful in 33s
Tests / PHP Lint (push) Successful in 8s
Tests / PHPCS (push) Successful in 20s
Tests / PHPStan (push) Failing after 25s
Release / Test Gate (lint + phpcs + phpstan + unit + integration) (push) Failing after 36s
Release / release (push) Has been skipped
Anti-EAV Lint + Quality Gate / anti-eav-lint (push) Successful in 9s
Tests / Unit Tests (push) Successful in 10s
Tests / Integration Tests (push) Successful in 33s
Tests / PHP Lint (push) Successful in 8s
Tests / PHPCS (push) Successful in 20s
Tests / PHPStan (push) Failing after 25s
Release / Test Gate (lint + phpcs + phpstan + unit + integration) (push) Failing after 36s
Release / release (push) Has been skipped
版本 0.1.0 → 1.0.0(含 TMDO_VERSION / TWO_MEET_DATA_OPTIMIZER_VERSION / WP_DATA_OPTIMIZER_VERSION 與 unit bootstrap)。姊妹外掛只在診斷 CLI 顯示 WP_DATA_OPTIMIZER_VERSION、無版本比較,故報 1.0.0 安全。 wp-data-optimizer 退休:兩站台已停用,本機三個目錄改名為 *.retired (wp-data-optimizer / -v3.1.1 / _audit),git 歷史保留在 gitea。 CHANGELOG 記錄本次 backport 全貌與 4 項 ABI/行為變更。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
This commit is contained in:
@@ -7,6 +7,65 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
||||
|
||||
---
|
||||
|
||||
## [1.0.0] — 2026-07-31 — 取代 wp-data-optimizer v3.4.6
|
||||
|
||||
本版把 `wp-data-optimizer` v3.0.1–v3.4.6(92 個 commit)全數 backport 進來,
|
||||
`wp-data-optimizer` 自此退休:兩個站台皆已停用它,本機目錄改名為
|
||||
`wp-data-optimizer.retired`,其 git 歷史保留在 gitea。
|
||||
|
||||
### 🔒 Security / 正確性
|
||||
|
||||
- **7 處 `Logger::error()` 參數不足**(array 傳給 string `$hook`)修正 —— 4 個 stress
|
||||
tester、auto-promoter、conflict-detector、hook-bus,皆為 TypeError fatal
|
||||
- **`Logger::trace_id()` 補回**:`Audit_Logger::write_row()` 一直呼叫它,但提煉時漏了;
|
||||
`Audit_Logger::init()` 從未註冊所以隱藏至今 —— 實機驗證才暴露
|
||||
- REST 4 個公開端點加上 `show_in_rest` 欄位 allowlist(CVSS 5.3)
|
||||
- 13 個破壞性 admin 動作由 GET 改 POST + nonce
|
||||
- DDL 型別白名單(19 型別)、CLI 表名守衛
|
||||
- 整欄清空改 `wpdo_allow_mass_column_clear` opt-in(原本 >500 列才擋)
|
||||
- audit 表補 `group_name` / `action` 欄並註冊 `Audit_Logger::init()`
|
||||
- `known_login_ips` 註冊(spoke-sso 實際寫入的欄位,先前落 `wp_usermeta`)
|
||||
|
||||
### ⚡ 並發
|
||||
|
||||
- warm 表 `UNIQUE KEY ui_post_meta`(缺它 `ON DUPLICATE KEY UPDATE` 不生效)
|
||||
- Zone_Cold 改 `JSON_MERGE_PATCH` / `JSON_REMOVE`、Zone_Warm 原子 `increment()`、
|
||||
hook-bus `write_to_flat` 改 upsert
|
||||
|
||||
### 🏗 架構
|
||||
|
||||
- 回填 `TMDO_Zone_Router` + `TMDO_Routing_Predicate`(Sync_Bridge 400→269 行)
|
||||
- 回填 Migration Phase Strategy:interface + base + 11 個 phase 類別,
|
||||
orchestrator 1107→640 行,公開介面不變
|
||||
- 核心新增 `TMDO_Standard_Post_Interceptor`,HP AddOn 4 個 interceptor 573→344 行
|
||||
|
||||
### 🔌 相容性
|
||||
|
||||
- hook 橋改**雙向**:核心一律 `do_action('wpdo_*')`,原本單向轉發使所有
|
||||
`tmdo_*` 契約收不到事件
|
||||
- 57 個 AddOn 類別補 `WPDO_*` alias(核心 alias 表在 `plugins_loaded:4` 執行,
|
||||
涵蓋不到 `:6` 才載入的 AddOn)
|
||||
- 38 個 CLI 子指令補 `wp tmdo` 命名空間
|
||||
- 選單 slug 統一回 `wp-data-optimizer`(B 內部 10+ 處連結本來就指向它)
|
||||
- HP adapter 介面改為 `TMDO_ extends WPDO_`,讓 `instanceof WPDO_HivePress_Adapter` 成立
|
||||
|
||||
### ✅ 品質
|
||||
|
||||
- 128 個生產檔 `declare(strict_types=1)`
|
||||
- PHPCS 0 errors / PHPStan level 6(baseline 710)
|
||||
- 測試:核心 unit 451 / integration 416、hivepress-addon 145、woocommerce-addon 10
|
||||
- gitea CI:核心 6 個 job 全綠 + 11 個 AddOn workflow + branch protection
|
||||
|
||||
### ⚠️ ABI / 行為變更
|
||||
|
||||
- `doctor_callback` 由 3 參數改為 1 參數(表名)
|
||||
- `wpdo_capture_before_value` 預設 `true` → `false`;需要 `value_before` 的
|
||||
消費者(audit log)要 `add_filter( 'wpdo_capture_before_value', '__return_true' )`
|
||||
- `wpdo_allow_mass_column_clear` 現為 opt-in,整欄清空預設被拒
|
||||
- `SCHEMA_VERSION` 2.0.0 → 2.1.0(audit 表 ALTER)
|
||||
|
||||
---
|
||||
|
||||
## [0.1.0] — 2026-05-15 (initial release, Phase 0-5 完成)
|
||||
|
||||
### Phase 5 hotfix(同日完成)
|
||||
|
||||
Reference in New Issue
Block a user