Skip to content

v1.8.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@millipress-bot millipress-bot released this 16 Aug 21:53
1206f04

1.8.0-beta.2 (2026-08-16)

This release tightens how MilliCache interacts with CDNs and external caches, extends what AI assistants and WP-CLI can see, and closes a handful of gaps that caused silent failures.

Replayed pages now tell downstream caches their true remaining lifetime. Previously a cached response replayed its original Cache-Control headers unchanged, so a shared cache or CDN that ignored the Age header would treat a near-expired entry as freshly filled and hold it for the full s-maxage. Replayed responses now carry only the share of s-maxage that actually remains, so caches that ignore Age expire in step with the stored entry rather than well after it.

AI assistants can now check cache status and clear the cache. Two new abilities — available over REST and from MCP clients — answer the questions site owners most often ask through an assistant: "why is my page not cached" and "clear the cache for this post or URL". The status ability returns a curated health summary (connectivity, entry count, and the checks that need attention) without leaking the full plugin and theme inventory that the settings UI needs.

WP-CLI now sees the full rule registry. Because WP-CLI skips the drop-in, wp millicache rules list previously showed an empty engine — no built-in rules and nothing registered through millicache()->rules(). The manager now registers the rule set itself when it finds it missing, so the same question gets the same answer regardless of how it is asked.

Placeholder-driven rule actions no longer silently write garbage. When a bucket or flag was set from a placeholder that could not be filled — a missing cookie, for example — the literal placeholder text {cookie.geo_country} was used as the bucket name, pooling every visitor without that cookie together. Those actions now do nothing when the placeholder is empty or unresolved.

Features

  • abilities: let assistants read cache status and clear the cache (f80b057)
  • abilities: report network-wide problems in a site's cache status (4e2b9f1)
  • abilities: say whether the install is a multisite (4573485)
  • cache: state the lifetime a replayed page has left (8f699fd)
  • commands: let add-ons ride the palette's promote/demote cycle (1db3d3f)
  • engine: expose the request's effective TTL override (31e2555)
  • rules: build the rule registry when the drop-in has not (b6ef71b)

Bug Fixes

  • cache: report targets that belong to another site (6a7947a)
  • commands: stop crowding every admin search, and drop the settings entry (87b52d1)
  • rules: skip an action whose placeholder resolved to nothing (a5e4894)

Performance Results

Loading 7.1x faster with MilliCache!

Metric Without Cache With MilliCache Improvement
Server Response (TTFB) 56ms 8ms 86% faster
Page Load (LCP) 112ms 68ms 39% faster

Server Response is the primary metric for page caching. It measures how fast the server delivers the HTML. MilliCache focuses on serving cached pages instantly, eliminating database queries and PHP processing.

Page Load includes frontend rendering time, which depends on themes, scripts, and assets. Content optimization is outside MilliCache's current scope.

Technical Details

Cache Efficiency

  • Database queries: 27 → 29
  • Response time range: 7ms-77ms (cached) vs 53ms-65ms (uncached)

Cache Generation (First Request)

  • Total processing: 53.74ms
  • Before template: 25.46ms
  • Template rendering: 28.28ms

Test Configuration

  • Iterations: 50 (3 warm-up runs discarded)
  • Outliers removed: 5
  • Timestamp: 2026-08-16T21:52:04.177Z
  • Commit: 1206f04

Regression Analysis

  • Status: PASS
  • Performance stable: 7.23x -> 7.06x (-2.4%)
  • Threshold: 10% slowdown triggers failure