Skip to content

Release v4.160.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 16:59
40fb20e

Changed

  • The Cratis renderer no longer refuses STAGE-ESM-044 for a command that has protected reads and produces an event under an append-time constraint. The rendered application, the Stage executor and the reference evaluator fail in the same order: a missing read, then the requirements, then the constraint. Still refused with STAGE-ESM-044: a read path in a produces when condition or destination, a read-path mapping to an optional/collection/composite/differently typed property, and reads combined with generated-value freshness scopes. (#557)
  • A command whose event takes a unique-value constraint's value from a protected read renders (the validator no longer assumes the constrained mapping is a command property).
  • A protected command may now combine its read-backed requirements with validated request concepts (STAGE-ESM-005 no longer refuses it). Requirements of a protected command are guards in Handle, so the order is concept validation, then the reads, then the requirements, the same as the reference. Commands without reads keep the refusal. (#409)
  • A specification that expects the triggering command's own rejection (a message only that command declares) renders although the command's event triggers a reaction: a rejected command appends nothing, so no reaction runs (STAGE-ESM-011 no longer refuses it). (#503)

Fixed

  • Acme Commerce commands ApproveProductForSale, WithdrawProduct (reads plus a unique constraint), AddToBasket and CheckOut (read-backed requirement plus validated concepts) were refused by the renderer although the executor ran them.

Part of #503. Proof: three-way conformance when_comparing_protected_reads_with_constraints, ..._with_validated_concepts, ..._with_unique_values and when_comparing_rejections_before_a_reaction; Reference/Stage/Rendered all pass. The canonical race vectors now render (conformance matrix updated).