Patch 5.0.7 - Indicator Diagnostics, Placement Rules Warning

Release Date: May 5, 2026 Version: 5.0.7 Type: Maintenance / Indicator Diagnostics / Placement Rules Release


Highlights

  • Indicator diagnostics no longer cause false validation failuresPlacementReport.is_successful() now correctly returns true when validation passes, even if IndicatorSetupReport emitted informational diagnostics
  • Added ignore_base_rules behavior contract tests — Comprehensive unit tests verifying ignore_base_rules=true with empty placeable rules passes validation
  • Placement rule documentation hardened — Custom rules MUST override validate_placement() is now explicitly warned in the guide

Bug Fixes

Indicator Diagnostics

  • Fixed IndicatorSetupReport diagnostics causing false validation failures — When a custom rule passes validation (RuleResult.build(self, [])), the diagnostic messages from IndicatorSetupReport (such as “No distinct tile positions calculated”, “No position rules defined”, “No indicators generated”) no longer cause PlacementReport.is_successful() to return false. These diagnostics are informational—they explain why no indicators were generated—but absence of indicators is not a failure when validation passes. This fixes an issue where buildingState.success would not fire even though the placement rule validated correctly.

New Tests

Placement Rules

  • ignore_base_rules behavior contract tests — Added comprehensive unit tests verifying:
    • When ignore_base_rules=true with empty placeable rules, validation passes with zero issues
    • Custom rules without validate_placement() override (which always fail by default)

Documentation

  • Placement rule documentation warning — Updated placement-rules.md guide to explicitly warn that custom rules MUST override validate_placement(). The base class returns a failure by default.

Status

  • Complete — Ready for release.