Repository navigation
Release v4.87.0
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 FundamentalsGenerateValuefactory, includingprefixandcasemodifiers on String-backed concepts. (#357) - At v15, a command that produces facts on a generated event source guards it with a
BeforeFirstconcurrency scope, so a source that already has facts rejects the whole command withConcurrencyViolation. 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-111111111111failsSTAGE-ESM-011. (#357) - Unknown generation strategies fail
STAGE-ESM-028, and the legacy syntax engine refuses every explicit strategy withSTAGE-ESM-028. Slices with several commands and conditional productions remain refused (STAGE-ESM-004,STAGE-ESM-006), tracked in #360. (#357)