Skip to content

Release v4.138.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 06:08
89b7da7

Summary

Stage now renders Screenplay protected command reads (command reads protected) as Arc read protection, so models that guard a decision with the state they read can ship as Arc applications.

Added

  • The Cratis renderer renders protected command reads. Each command with reads gets [ReadProtection(On)], a nullable read-model Handle parameter per read looked up with [LookUpBy], the reference "<View> '<key>' does not exist." rejection, and all of its requirements evaluated in Handle after the reads. Read paths in require and produced-event mappings render, and generated specifications run protected commands in decision mode. (part of #440)
  • Command specifications whose command triggers exactly one invoke-only reaction are rendered as a command half and a reaction half instead of being refused; a rejected one is rendered only when the triggering command cannot reject on its own. (part of #440)
  • A new reference page, Protected reads rendering, describes the rendered shape and where a rendered application differs from the reference. (part of #440)

Changed

  • Generated single-instance queries keyed by a plain text or UUID value now take an event source id, which fixes Arc analyzer ARC0015 in generated applications. UUID keys are matched as text, so callers must send the canonical lowercase form. (part of #440)
  • Protected reads that cannot be rendered faithfully, such as reads combined with constrained events or read paths in produces when, are still refused with STAGE-ESM-044, now naming the specific reason. (part of #440)