View as Markdown:
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→ useis_category()insteadtag→ useis_tag()insteadauthor→ useis_author()insteadtaxonomy→ useis_tax()insteadterm→ usehas_term()insteadtemplate→ useis_page_template()insteadpost→ useis_single()oris_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_packagesmethod 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/configtotype/argsin 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.hookfor WordPress hook arguments (ce759cb) - Add safeguard for missing
add_actionfunction in WordPress hook registration (5182ce3) - Adjust
get_rulesto return rules grouped by hook in WordPress package (68f94b9) - Correct package name from 'WordPress' to 'WP' in required package check (60fcb4d)
Refactoring#Copied!
MilliRules Documentation