Changelog

1.1.5 (2026-05-04)#Copied!

Bug Fixes#Copied!

  • honor ->enabled(false) for non-WordPress rules (ca54b36)

1.1.4 (2026-05-04)#Copied!

Bug Fixes#Copied!

  • execute WordPress-package rules via MilliRules::execute_rules() (8c46c56)

1.1.3 (2026-05-03)#Copied!

Bug Fixes#Copied!

  • defer rules referencing unloaded packages instead of misregistering as Core (2ce0628)

1.1.2 (2026-04-29)#Copied!

Bug Fixes#Copied!

  • prevent duplicate package registration when explicit type matches auto-detected package (29becd4)

1.1.1 (2026-04-24)#Copied!

Bug Fixes#Copied!

  • discovery: Find actions and conditions in Strauss-prefixed host plugins (400ea12)

1.1.0 (2026-04-23)#Copied!

Features#Copied!

  • actions: Add value-level locking for paired actions via ActionMeta (74edea9)
  • actions: Allow actions to declare metadata for UI-driven rule builders (3919f2b)
  • Add rule validation API and metadata discovery methods (3ad448e)
  • conditions: Add and() connector for combining condition groups with different match types (3f37214)
  • conditions: Add format('pattern') to name fields that support wildcards (c82baf3)
  • conditions: Add metadata to all built-in conditions and auto-generate for WordPress conditionals (0ec5e35)
  • conditions: Add mode/accepts to schema, auto-infer pattern operators (24dc931)
  • conditions: Allow conditions to declare metadata for UI-driven rule builders (8c2cf46)
  • conditions: Parse condition description from WP function docblocks (5db66d9)
  • rules: Add rule-level locking to prevent overwriting or unregistering safety-critical rules (ed64a28)
  • schema: Validate and sanitize array values via also_accepts('array') (b60f5e6)
  • wp: Group rules by hook priority and reuse engine across priorities (45a5180)

Bug Fixes#Copied!

  • actions: Support named argument keys from data-stored rules (5b3ac7c)
  • conditions: Rename fn_args to args and trim trailing empty strings (d40a3c7)
  • Correct @since version tags from 1.2.0 to 1.1.0 (e84498b)
  • discovery: Exclude handler base classes from condition catalog (29186a8)
  • engine: Resolve scoped lock keys from named action arguments (50ef450)
  • packages: Deduplicate rules when required packages change (d7105d3)

Refactoring#Copied!

  • conditions: Remove boolean mode from Is/Has conditionals (c3cffa6)
  • conditions: Use compare_values() for name field pattern matching (58a9a34)

1.0.0 (2026-03-31)#Copied!

⚠ BREAKING CHANGES#Copied!

conditions: The following dedicated condition classes have been removed in favor of the generic is_* and has_* conditional bridges:

  • category → use is_category() instead
  • tag → use is_tag() instead
  • author → use is_author() instead
  • taxonomy → use is_tax() instead
  • term → use has_term() instead
  • template → use is_page_template() instead
  • post → use is_single() or is_page() instead

Features#Copied!

  • conditions: Remove redundant WordPress conditions covered by is_/has_ (bd7eed0)

0.7.3 (2026-02-15)#Copied!

Bug Fixes#Copied!

  • rules: Always include package for set explicit type (b2c0d23)

0.7.2 (2026-02-11)#Copied!

Bug Fixes#Copied!

  • conditions: Return wildcard type identifiers for generic WP conditionals (0a3b0eb)

0.7.1 (2026-02-11)#Copied!

Features#Copied!

  • Add public getters for registered namespaces and custom types (6d1b517)

Bug Fixes#Copied!

  • ci: Drop PHP 8.1 from CI matrix (ab0ab6e)
  • ci: Loosen Pest constraint to ^2.0 for PHP 8.1 compatibility (124d4db)
  • docs: Correct indentation in README example for better readability (38b09b8)

0.7.0 (2026-02-11)#Copied!

Features#Copied!

  • builders: Add method normalization for camelCase and snake_case compatibility (fad8f3d)

0.6.2 (2026-02-11)#Copied!

Bug Fixes#Copied!

  • package-manager: Ensure case-insensitive package name mapping (f6cc490)

0.6.1 (2026-02-09)#Copied!

Features#Copied!

  • docs: Add changelog file for version tracking and updates (207f41c)
  • docs: Revise package description to highlight features and improve clarity (9612260)
  • package-manager: Add method to retrieve all rules with package names (db1f732)

Documentation#Copied!

  • Replace ASCII diagrams with mermaid flowcharts for better visualization (5ef0ac5)
  • Update internal links to use relative paths for consistency (bd20128)

0.6.0 (2025-12-17)#Copied!

Features#Copied!

  • Add rule replacement by ID and Rules::unregister() method (05c9a73)
  • Add rule replacement by ID, Rules::unregister(), and Release Please (#2) (9e80708)

Bug Fixes#Copied!

  • Remove return type declaration from resolve_builtin_placeholder method (efc8504)
  • Rename normalize_operator to avoid PHP 7.4 static method conflict (5e6c3e5)

0.5.0 (2025-12-17)#Copied!

Features#Copied!

  • Add WordPress has_* conditional support (06ddde9)

0.4.0 (2025-12-03)#Copied!

Features#Copied!

  • Add VERSION constant to MilliRules and update release workflow (b313037)
  • Add GitHub Actions release workflow (cf4c7a1)
  • Add fluent argument access API to action classes (bee5af0)

Bug Fixes#Copied!

  • Use PHP 8.1 in release workflow for PHPStan compatibility (ac7f1ae)
  • Remove PHP 8.0 mixed type hint for PHP 7.4 compatibility (0c60c92)
  • Remove static from normalize_operator method in IsConditional (41a1eed)

Refactoring#Copied!

  • Add type declarations for private properties in ArgumentValue class (3fc1a21)

0.3.1 (2025-12-03)#Copied!

Refactoring#Copied!

  • Rename query_vars context to query and remove redundant Query context (46c7035)

0.3.0 (2025-12-02)#Copied!

Features#Copied!

  • Add object property access support to Context::get() (676bff5)

0.2.1 (2025-11-28)#Copied!

Bug Fixes#Copied!

  • Context discovery fails with Mozart and other scoping tools (cf27cf0)

0.2.0 (2025-11-28)#Copied!

Features#Copied!

  • Add intelligent logging system with rate limiting (c4e0c22)
  • Add action-level locking with ->lock() method (0a34cd7)
  • Refactor comprehensive documentation (9380a1d)
  • Add load_packages method for package loading with dependency resolution (cac041c)

Bug Fixes#Copied!

  • Skip disabled rules in WordPress Package registration (6a4414f)

Refactoring#Copied!

  • Rename _args to args for cleaner API (82e6341)
  • Change placeholder syntax from colon to dot notation for consistency (a76c5ed)
  • Rename callback parameter from $config to $args for consistency (7bac347)
  • Remove _args wrapper from ActionBuilder for cleaner config structure (d989bd5)
  • Rename value/config to type/args in BaseAction for clarity (195b0cd)
  • Pass Context objects to callback actions and conditions (127c782)
  • Update default hook and priority in Rules and registration logic (5cb08a4)

0.1.0 (2025-11-17)#Copied!

Features#Copied!

  • Initial MilliRules implementation (d3a7b44)
  • Implement lazy context loading system (96d9977)
  • Add generic package-based class resolution (2bde3e5)
  • Add deferred rule registration with pending queue for unloaded packages (6eb8ce4)
  • Auto-add WP package if 'wp' type is detected without it in required packages (d23f10d)
  • Add support for accessing WordPress hook arguments in execution context (02bc150)

Bug Fixes#Copied!

  • Add fallback for generic is_* conditions in RuleEngine (a68da5f)
  • Simplify conditional logic in WordPress hook registration (494eb20)
  • Update context key to wp.hook for WordPress hook arguments (ce759cb)
  • Add safeguard for missing add_action function in WordPress hook registration (5182ce3)
  • Adjust get_rules to return rules grouped by hook in WordPress package (68f94b9)
  • Correct package name from 'WordPress' to 'WP' in required package check (60fcb4d)

Refactoring#Copied!

  • Update conditions and actions to use Context object (7b277ee)
  • Update core classes to use Context object (178bbda)
  • Update packages to use lazy context system (4266ff5)
  • Replace individual condition classes with unified implementations (4c3240b)