# Changelog All notable changes to this AddOn will be documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning follows [Semantic Versioning](https://semver.org/). --- ## [Unreleased] - Phase 3 implementation in progress. --- ## [0.1.1] — 2026-08-08 — 補上從未存在的 `wp_hpct_latepoint_idx` 建表流程 ### Fixed - **`wp_hpct_latepoint_idx` 從未被建立,索引同步全程靜默失敗(嚴重)。** 這張表 在整個 `wp-data-optimizer` / `2meet-data-optimizer` 系譜中**從未有過** `CREATE TABLE` 定義,但 `TMDO_LatePoint_Interceptor::sync_booking()` 一直對它 做 INSERT/UPDATE,且整段包在 try/catch 內——在乾淨站台上每一次 booking 同步都 會失敗,索引表永遠是空的,而且沒有任何錯誤訊號可循。新增 `TMDO_Latepoint_Bootstrap::maybe_install_table()`,以 `dbDelta()` 建立 12 欄表 (`booking_id` UNIQUE KEY + `agent_id` / `service_id` / `customer_id` 三個 KEY), 並以 `tmdo_latepoint_db_version` option 追蹤版本。刻意**不**只掛 `register_activation_hook()`:本外掛多以 git pull 部署、不會經過停用/啟用循環, 唯有版本 option 才能確保既有安裝也補建到表。 - `TMDO_Custom_Table_Registry::register()` 的索引期望值 config key 由 `expected_indexes` 更正為 `indexes`。該 API 以 `wp_parse_args()` 併入預設值, 未知 key 會被**靜默丟棄**——先前索引期望值等同從未送達 registry, `wp wpdo doctor` 的 schema drift 只驗欄位、不驗索引。此問題橫跨全部 8 個 AddOn, 已一併更正。 ### Added - `TMDO_Latepoint_Bootstrap::register_custom_tables()`:把 `hpct_latepoint_idx` 註冊進 `TMDO_Custom_Table_Registry`(12 欄 `expected_columns` + 4 個 `indexes`), 讓 `wp wpdo doctor` / `benchmark` / `cleanup` 能治理此表。此前這張表對 TMDO 治理工具完全不可見。 --- ## [0.1.0] — TBD ### Added (initial release, scaffold) - Plugin scaffold from `wp-data-optimizer v2.16.0` extraction plan. - Plugin Header + bootstrap stub + 7 MD + composer.json. - Requires Plugins: `2meet-data-optimizer`, `latepoint`.