Skip to content

Release v4.177.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 06:51
43c00cd

Changed

  • A running total that may be absent (an optional whole number or concept) now renders for add, subtract, increment and decrement; it is refused only when the same total is also cleared or set from a value that may be absent, which Chronicle cannot add to (part of #558)
  • A running total can add a concept into the number it holds, a number into a concept, and a concept into another concept of the same number (the target concept then declares the implicit conversion); a concept into an optional number, or a total of any other type, is refused as STAGE-ESM-017 because Chronicle reads the added event property from a direct member access (part of #558)
  • A projection keyed by an event property can read the event's source identity (sku = $eventSourceId) when every command that produces the event addresses it with a value of the target's type; otherwise it is still refused as STAGE-ESM-017 (part of #558)
  • A join inside a children block renders (Chronicle takes the element identity as the join key, so no On is emitted) and its mappings count towards the required properties of the element, whichever of the element's own event and the joined event arrives first; recursive children stay refused (part of #558)
  • Events a state-view slice declares are generated with the slice, so a projection can remove with an event no command of the slice produces (part of #503)

Fixed

  • A zero start of a running total (add delivered by 0, subtract x by 0 on a required whole number or decimal) now renders instead of being refused as STAGE-ESM-017; the renderer emits nothing for it because Chronicle's Add builder takes an event property only and a required number is 0 until its first real operation. A concept total does not start at 0 (a never-set concept is null) and is refused (part of #558)