Repository navigation
Release v4.138.0
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
readsgets[ReadProtection(On)], a nullable read-modelHandleparameter per read looked up with[LookUpBy], the reference "<View> '<key>' does not exist." rejection, and all of its requirements evaluated inHandleafter the reads. Read paths inrequireand 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)