Skip to content

Release v4.199.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 19:31
b6659a9

Summary

A specification now runs against the slice that declares it, and nothing else, as Screenplay 4.247.0 decides (decision 0115).

Added

  • The spec runner compares then invokes <Command> expectations against the commands a slice's reactions invoke, with the same rules and messages as Screenplay's reference runner. The executor now accepts ESM v33 and v34 models.

  • A running application now receives the public events of other applications. Its event store is subscribed to the outbox of every store its foreign events come from, and what arrives in the inbox joins the world, sets off its captures and reactions, and what they append reaches the event log.

Changed

  • Only the specification's own slice runs: its reactions, clock, triggers, captures and outbound publications. Other slices' behavior no longer runs, so their facts never reach then, read-model or query assertions.

  • A command another slice owns, invoked by the slice's reaction, is still decided through Arc, so validation, authorization, constraints and on refused behave as before, but its events are not kept.

  • A rendered reaction specification whose invocation belongs to another slice asserts that the command succeeds, not its events.

  • Upgrade: a specification that stated another slice's events now fails; move the event to the owning slice's specification, or state then invokes.

  • Requires Cratis.Screenplay 4.247.0.

  • A running application now publishes its public events through its outbox, as Chronicle does. A local public event is registered with public visibility and appended to the application's outbox, never to its event log; a foreign event is registered with the event store it comes from.

  • A restart over an event log is no longer refused for holding a local publication, because the log no longer holds one.

Fixed

  • The runtime advances its known event-log tail only by what reached the event log. A published public event goes to the outbox, so counting it moved the tail past the log and the next command could stop the host with a tail-changed fault.