Releases: laruence/wp-yac-cache
Releases · laruence/wp-yac-cache
Release list
1.3.1
- Fixed the admin "Remove drop-in" action always reporting failure.
- Added WP-CLI commands:
wp yac deploy-dropin,wp yac update-dropin,wp yac remove-dropin. - Comment-query cache misses (
WP_Comment_Query::get_comments()wraps an empty result asarray('comment_ids' => array(), 'found_comments' => 0)) are now recognized as negative cache results and capped byYAC_OCACHE_EMPTY_TTLinstead of occupying a slot forever.
1.3.0
- No wp-config edit is needed any more:
WP_CACHEis no longer required or reported. WordPress loadsobject-cache.phpregardless of it — that constant only gatesadvanced-cache.php(page caching), which this plugin does not provide. The live CI run now boots WordPress without it to prove the point. - The Cache health panel became a client-side trend chart: hit rate, hits and misses over Today / Yesterday / Last 7 days, with the window's counters and the capacity diagnosis on hover. Counters are sampled every 15 minutes into a ~7-day ring.
- Fixed the entry inspector exhausting the PHP memory limit on a busy cache: it now pages through
Yac::dump()instead of accumulating the whole dump. - Fixed the dashboard widget reporting "0 bytes" for values occupied. The Active bar now also shows shared-memory uptime.
- Suggested tuning raised to
yac.keys_memory_size = 16M(~128K slots); 4M gives only ~32K.
1.2.2
- Fixed stale shared-memory writes: within one request,
wp_cache_set()on a key already written bywp_cache_add()in that same request skipped the shared-memory write, so other requests kept reading the value the add stored (theupdate_option()pattern —add()insideget_option(), thenset()— left the old option behind). - Replaced
YAC_OCACHE_SKIP_EMPTYwithYAC_OCACHE_EMPTY_TTL(default 21600s): empty results (bot-probedget_page_by_path()paths, comment query misses) now share as usual but expire after that lifetime instead of occupying a slot forever. Set 0 to disable the cap. - The health panel's "keys used" now reports the number of live entries rather than the
slots_usedhigh-water mark.
1.2.1
- Placed the PHPCS EscapeOutput annotations around the health-ring output so WordPress.org Plugin Check recognizes the exemption (the previous inline annotation sat on the wrong line of the multi-line statement).
- Annotated
pre_wp_cache_getin the drop-in as a WordPress core hook.
1.1.1
- A stored
falseis now written to shared memory as0. Yac'sget()returnsfalsefor both a miss and a storedfalse, so false negatives never survived past the request; with0they persist like any other value (readers comparing by value see0instead offalse). - Admin page: top entries grew a Hottest tab (by access count) alongside Largest, shown whenever this yac build reports per-entry hits; the entry inspector gains Hits, Embedded-in-slot and compressed-payload (
c_len) metadata. - Admin page: entry listings now page through
Yac::dump()1000 entries at a time instead of onedump(-1), which could exhaust the PHP memory limit on a busy cache; builds older than 2.4.0 fall back to the single full dump. - Dropped the dead
global_groupsbookkeeping;add_global_groups()is now a no-op.
Note: do not run Yac with the
jsonserializer (yac.serializer=json) — WordPress stores PHP objects in the object cache and JSON cannot round-trip them (objects come back as arrays, causing fatal errors). Keep the defaultphpserializer. See README.
1.1.0
- Admin page rebuilt around a cache-health verdict: hit-rate ring with Healthy/Attention/Critical, cause-attributed metric bars, keys-by-group pie, largest entries by content length
- Entry inspector: click any Largest-entries key to view the deserialized value, expiry, last access and padded size, or delete the entry
- Key format rework: :: (default prefix wp), no per-blog prefix; over-long keys keep the group verbatim and crc32b-hash only the key part
- WP_YAC_SKIP_EMPTY (on by default): empty get_page_by_path negatives from bot 404 probes stay request-local instead of filling slots
- WP_YAC_DISABLE escape hatch forces runtime-only mode
- Health summary widget on the WP admin dashboard