v1.8.0-beta.2
Pre-release1.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