Skip to content

Release v4.86.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 03:09
ac56fd9

Summary

Reactions that declare runs as now render, and a when append specification whose appended event fires a single reaction renders as a generated specification. Together they bring Screenplay's canonical reaction identity corpus into three-way conformance: the reference, Stage's spec runner and the rendered application agree.

Added

  • A reaction with runs as renders its Chronicle reactor with Arc's [ExecuteCommandsAsSystem(roles)], so the commands it invokes run as the system with exactly the declared roles. (#292)
  • A when append specification whose appended event fires one reaction renders as a Chronicle ReactorScenario chained into an Arc CommandScenario. It asserts the events the reaction produces (payload, destination and an exact count) or the invoked command's outcome. The invoked command runs under the identity declared on the reactor itself, and the specification's caller is not forwarded. (part of #207)

Changed

  • STAGE-ESM-034 now refuses only runs as reactions that invoke commands whose authorization reads claims or uses opaque policies. Arc's system principal carries subject claims that Screenplay treats as unknown, so such a command could be allowed in the rendered application and denied by the model. (#292)
  • Reaction appends that fan out to several reactions, cascade further, use $context, expect read-model or query state, or produce events that constraints check still fail STAGE-ESM-011. (part of #207)