Skip to content

Release v4.87.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 04:17
af7cbdb

Summary

Stage admits Screenplay ESM v15 concept generation strategies. A generated value can be a UUID v4 or v7, a ULID, a TypeID, a NanoID or encoded random bytes. A command that writes to a freshly generated event source is refused if that source already has facts. Rendered applications build on Arc 22.83.0, which brings Fundamentals 7.24.0.

Added

  • Concepts with a v15 generation strategy render New() with the matching Fundamentals GenerateValue factory, including prefix and case modifiers on String-backed concepts. (#357)
  • At v15, a command that produces facts on a generated event source guards it with a BeforeFirst concurrency scope, so a source that already has facts rejects the whole command with ConcurrencyViolation. This matches Screenplay's freshness rule; earlier facts without a destination never make a source stale. (#357)
  • The Stage Host generates values with the concept's strategy and reports the freshness rejection as a concurrency violation. The specification executor checks v15 fixture shapes and freshness with the reference messages. (#357)

Changed

  • Stage pins Arc 22.83.0 and Screenplay 4.147.1 and admits ESM v1–v15. Models below v15 render and run as before. (#357)
  • At v15, a pinned generated fixture must match its strategy's shape. An implicit UUID pin must be a lowercase version-4 UUID, so a pin such as 11111111-1111-1111-1111-111111111111 fails STAGE-ESM-011. (#357)
  • Unknown generation strategies fail STAGE-ESM-028, and the legacy syntax engine refuses every explicit strategy with STAGE-ESM-028. Slices with several commands and conditional productions remain refused (STAGE-ESM-004, STAGE-ESM-006), tracked in #360. (#357)