Changelog

1.6.2 (2026-05-04)#Copied!

Features#Copied!

  • flags: Normalize flag identifiers (lowercase + trim) at boundaries (2859cd2)
  • rules: Load user-defined rules from settings into the rule engine (b3fc827)

Bug Fixes#Copied!

  • deps: Require millipress/millirules ^1.1.5 (4edb44d)
  • storage: Drop stale flag fields and their set memberships on store (50b8d54)

Miscellaneous#Copied!

1.6.1 (2026-05-01)#Copied!

Bug Fixes#Copied!

  • deps: Require millipress/millibase ^2.4.0 (3d1a0f9)

1.6.0 (2026-04-30)#Copied!

Features#Copied!

  • rules: Expose MilliRules registry/validation through Manager (812cf36)

Bug Fixes#Copied!

  • rules: Restrict default REST rule to GET/HEAD to avoid lock warning (3144a48)

1.5.2 (2026-04-26)#Copied!

Features#Copied!

  • plugin: Implement singleton pattern for MilliCache instance management (8d92bcb)

Miscellaneous#Copied!

1.5.1 (2026-04-24)#Copied!

Bug Fixes#Copied!

  • engine: Simplify autoloader initialization for better compatibility (fe45266)

1.5.0 (2026-04-23)#Copied!

Features#Copied!

  • rules: Add action metadata, scoped locking, and order-aware execution (7196cd3)
  • rules: Lock critical built-in rules and use order 0/1 convention (c011d4c)
  • storage: support username for authentication (#108) (19d62eb)

Bug Fixes#Copied!

  • activator: Handle both old and new variable name in drop-in regex (cf80b88)
  • engine: Use PHP_INT_MAX - 10 for template_redirect priority (8b7118f)
  • settings: Remove inline padding from status tab wrapper (7d919f3)
  • tests: Update do_cache arguments to include string type with default value (5afed64)

1.4.2 (2026-04-22)#Copied!

Bug Fixes#Copied!

  • activator: Ensure symlink creation only if function exists (f935526)

1.4.1 (2026-04-22)#Copied!

Bug Fixes#Copied!

  • advanced-cache.php: Set correct path to plugin on copy file operation (35179c2)

1.4.0 (2026-04-01)#Copied!

Features#Copied!

  • cache: Store request URL and variant dimensions in cache entries (d334421)
  • settings: Make schema defaults available to add-ons at plugin load (c899d3b)

Bug Fixes#Copied!

  • e2e: Checkout into lowercase directory for consistent plugin slug (9a554a0)
  • release: Reset manifest to last published version (015ab7a)
  • storage: Exclude expired keys from cache index count (dcc68ef)
  • storage: Filter Redis hash fields to correctly identify flag fields (ee18c24)
  • storage: Remove backward compat for pre-1.4.0 cache entries (6ab8e0a)
  • storage: Respect per-entry custom TTL/grace in Redis EXPIRE (fd8ec58)
  • tests: Eliminate connection warnings from Storage scheme tests (306f31d)

Build#Copied!

  • e2e: Migrate to wp-env 11 with lifecycle scripts (0220f95)

1.3.2 (2026-03-23)#Copied!

Bug Fixes#Copied!

  • ui: Prevent asset enqueueing when admin bar is not showing (b9be14a)

1.3.1 (2026-03-16)#Copied!

Bug Fixes#Copied!

  • i18n: Defer UI config to init hook to prevent early textdomain loading (df51634)
  • ui: Register hooks for UI initialization to ensure proper textdomain loading (208621d)

1.3.0 (2026-03-15)#Copied!

Features#Copied!

  • admin: Rebuild settings UI with MilliBase components (574145e)
  • settings: Integrate MilliBase as the settings framework (83ba3fb)
  • storage: Add TLS support via scheme prefix in MC_STORAGE_HOST (ac77698)

Bug Fixes#Copied!

  • e2e: Use dynamic slug in post deletion invalidation test (1dcc057)
  • manager: Clearing by targets processes double prefixed flags in Multisite. (17971f3)

1.2.0 (2026-03-02)#Copied!

Features#Copied!

  • storage: Support Unix socket paths for Redis connections (78254d7)

Bug Fixes#Copied!

  • storage: Handle PredisException when retrieving Redis/Valkey config (098b67c)

1.1.0 (2026-02-21)#Copied!

Features#Copied!

  • deps: Upgrade predis/predis from ^2.2 to ^3.0 (b84a8bd)

Bug Fixes#Copied!

  • release: Remove draft config so Release Please creates git tags (6d11112)
  • ui: Replace removed warning icon with caution (3b8f686)

1.0.2 (2026-02-16)#Copied!

Bug Fixes#Copied!

  • Make check_cache_decision() public and remove Options::is_caching_allowed() (b713aed)

1.0.1 (2026-02-15)#Copied!

Bug Fixes#Copied!

  • ci: Use RELEASE_TOKEN for release-please to trigger PR workflows (2f8322e)
  • Register action namespaces in Engine constructor (4a1ffb3)

Refactoring#Copied!

  • ci: Move E2E from PR trigger to release workflow gate (3c9de93)
  • ci: Remove post-merge CI/E2E gates from release workflow (810055a)

1.0.0 (2026-02-13)#Copied!

Initial stable release of MilliCache — a full-page cache plugin for WordPress powered by Redis compatible servers.

Highlights#Copied!

  • In-Memory Full-Page Cache — Pages are served directly from memory before WordPress even initializes. No database queries.
  • Flag-Based Invalidation — Tag cached pages with flags like post:123 or archive:category:5, then clear related entries with a single command. Built-in flags are assigned automatically; custom flags give you full control.
  • Stale-While-Revalidate — Serve expired content while fresh content regenerates in the background. Prevents cache stampedes on high-traffic pages.
  • Rules Engine — Define caching behavior with a fluent, chainable PHP API. Set TTL, grace periods, and exclusions per condition — all version-controllable.
  • Multisite Native — Per-site cache isolation with network-wide management. Clear one site, a subset, or an entire network.
  • Multiple Backends — Redis, ValKey, KeyDB, or Dragonfly. Any Redis-compatible server works out of the box.
  • WP-CLI Integration — Commands for cache testing, status checks, diagnostics, and bulk operations. AI-agent friendly.
  • Debug Headers & Browser ExtensionX-MilliCache-* headers show cache status, flags, and keys. The companion browser extension makes debugging effortless.
  • REST API/millicache/v1/* endpoints for cache control, status checks, and settings — ideal for CI/CD pipelines and monitoring.
  • Action & Filter Hooks — Full customization of caching behavior, flag assignment, and invalidation events.
  • Smart Auto-Invalidation — Cache clears automatically when posts, menus, widgets, or theme settings change.
  • Open Source — GPL-2.0+ licensed. No vendor lock-in.