Skip to content

[Hotfix 25.9] fix(updater): rename CustomVolume boundaries to bounding_entities everywhere - #2068

Open
benflexcompute wants to merge 1 commit into
release-candidate/25.9from
ben/custom-volume-rename-updater-25.9
Open

[Hotfix 25.9] fix(updater): rename CustomVolume boundaries to bounding_entities everywhere#2068
benflexcompute wants to merge 1 commit into
release-candidate/25.9from
ben/custom-volume-rename-updater-25.9

Conversation

@benflexcompute

@benflexcompute benflexcompute commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Problem

_to_25_9_2 renames boundaries -> bounding_entities only under meshing.volume_zones/meshing.zones. CustomVolume dicts everywhere else keep the stale boundaries key after running the updater:

  • models[*].entities.stored_entities (Rotation / PorousMedium / NavierStokes numerics zones)
  • models[*].parent_volume
  • user_defined_dynamics[*].output_target
  • private_attribute_asset_cache.project_entity_info.draft_entities

Validation still passes today because the CustomVolume model has a before-validator accepting the legacy key, but anything consuming raw updater output sees boundaries.

Fix

  • New _rename_custom_volume_boundaries_everywhere(): recursive whole-dict walk renaming the key on every CustomVolume dict. Run-once sentinel key on the params dict (same pattern as the total-pressure conversion on master schema); updater() strips it before returning.
  • New milestone _to_25_9_10; version bumped 25.9.9 -> 25.9.10 (milestone must exceed already-deployed 25.9.9 stamps).
  • _to_25_9_2 left frozen; data already stamped >= 25.9.2 never re-enters it, the new milestone covers it. Rename is idempotent, so re-walking already-fixed data is a no-op.
  • End-to-end test updater("25.9.3" -> "25.9.10") covering all five missed locations + sentinel cleanup.

Part 1/3 of the fix stack: release-25.9 (this PR), release-candidate/25.10 (compute), master (compute).

🤖 Generated with Claude Code


Note

Low Risk
Targeted, idempotent schema migration in the updater path; low risk aside from any consumer that depended on the old boundaries key in non-meshing locations.

Overview
Fixes incomplete CustomVolume migration: _to_25_9_2 only renamed boundariesbounding_entities under meshing volume zones, so copies in models, UDD output_target, asset-cache draft entities, etc. could still expose the legacy key after upgrade.

Adds _rename_custom_volume_boundaries_everywhere, a full-params recursive walk with a run-once sentinel (removed before updater() returns), wired as milestone 25.9.10. Package version is bumped to 25.9.10, with an end-to-end test covering the previously missed locations.

Reviewed by Cursor Bugbot for commit c0950a9. Bugbot is set up for automated code reviews on this repo. Configure here.

…g_entities everywhere

_to_25_9_2 renamed `boundaries` -> `bounding_entities` only under
meshing.volume_zones/zones, leaving CustomVolume dicts stale in model
entities, parent_volume, UDD output_target and asset-cache draft_entities.
Add _to_25_9_10 with a whole-dict recursive rename (run-once sentinel,
stripped before return) and bump version to 25.9.10.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant