Skip to content

Release v15.31.5

Choose a tag to compare

@github-actions github-actions released this 27 May 12:39
94933fd

Summary

Model-bound projections with self-referencing child types were flattening nested child events into the outer collection. This update makes nested self-referencing events resolve into the intended inner child collection, keeps scenario materialization aligned with that behavior, and preserves existing no-auto-map behavior for child mappings.

// Expected shape after: ModuleAdded -> FeatureAdded(parent) -> SubFeatureAdded(parentFeatureId)
module.Features.Count == 1;
module.Features[0].SubFeatures.Count == 1;

Added

  • Added model-bound projection spec coverage for self-referencing children to assert nested placement of sub-children.

Changed

  • Changed class-level FromEvent<T> propagation for child types so nested ChildrenFrom<T> routes take precedence for child creation.
  • Changed in-memory ReadModelScenario child materialization to set child identifiers from resolved child keys for nested children.
  • Changed self-referencing test fixture events/attributes to model nested child creation through parent key hierarchy.

Fixed

  • Fixed self-referencing ChildrenFrom projections that placed sub-children at root instead of under the parent child node.
  • Fixed nested self-referencing read model materialization where child concept identifiers could deserialize incorrectly.
  • Fixed regressions where child identifier properties were unintentionally mapped in ChildrenFrom definitions, breaking no-auto-map and identified-by-property expectations.

Removed

  • Removed duplicate root-level creation path for nested self-referencing child events when a nested route already exists.
  • Removed unintended automatic child identifier property mapping that caused projection model-building regressions.

Security

  • No security-impacting behavior changes.

Deprecated

  • None.