- review F5: a timeout entry expired before its value (a day vs a week), and
HivePress reads a missing timeout as "never expires", serving the stale
value for up to six more days. The timeout now expires a minute after the
later of MAX_CACHE_TTL and its own time, so HivePress sees it expire first
- review F7: site attributes accept only types with a plain index (json and
binary would fail the CREATE TABLE)
- review F8: the hp_listing_attrs group is registered on the run after
after_setup_theme (init:1), so a filter added in a theme counts and the
group has one definition per request; only keys of other groups are skipped
- Verify: TTL test, attribute group tests, unit 148, integration 53, phpcs
- PR: PR-115 (2.3 acceptance correctness review)
- the tmdo_hp_listing_attribute_fields filter (hp_ key => type) registers a
site's HivePress listing attributes, such as a "Warranty" number attribute
(hp_warranty, 901k rows on dev36), in their own hp_listing_attrs group: a
new table with each column indexed at creation; hp_listing_core and its
pinned hash are unchanged
- keys another group manages, keys without the hp_ prefix and unknown types
are ignored
- Verify: HivePressEntityGroupsTest (opt-in, filtering, pinned hashes), unit
147, integration 53, phpcs; dev36 hp_warranty backfill and queries
- PR: PR-109
- 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
- the hp_listing_core indexes are declared only when TMDO_Schema_Manager has
ddl_allowed() (core 1.3.0+); core 1.2.0 would run the ALTER on 900k rows
inside the first request after deploy, a visitor's included, if this AddOn
were deployed first
- Verify: unit 145, integration 53, phpcs
- PR: PR-090b (found while writing the 0.4.0 notes)
- with an external object cache, a HivePress timeout entry expires when it
records; the value (written before its timeout) after at most a week — a
miss only makes HivePress rebuild it. Entries of deleted posts no longer
accumulate without end
- Verify: HivepressTransientFilterTest TTL test, integration 53, unit 145;
dev36 Redis TTL on tmdo_hp_transient keys
- PR: PR-099
- hp_listing_core declares indexes on hp_hourly_rate and hp_rating_count; core
adds them in place (WP-CLI / WP-Cron), the pinned schema hash is unchanged
- Verify: unit 145, integration 52, phpcs; dev36 902k listings (SHOW INDEX, EXPLAIN)
- PR: PR-090