Skip to content

Release v4.41.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 06:22
fe9a6c1

Added

  • Screenplay publishes typed-context descriptors: language-neutral data describing exactly what each code body can see, so providers such as Stage can generate typed wrappers instead of dynamic contexts. They cover reducer transitions (a typed Event per on event using its current generation, and a nullable State shaped like the read model), validation and rule code, code policies at each place they are used, and the context of command handlers, which are still not bound. This is the descriptor part of decision 0012 and advances #139.
  • CompilationResult exposes the descriptors through TypedContextDescriptors and ContextsFor(requirementId). IsWrapperReady is true only for descriptors from a successful compilation whose types all resolve; a failed compilation publishes only command-handler descriptors, marked not ready. Every descriptor carries the definitions of the concept and composite types it refers to.
  • MCP has a paged typed-contexts view; implementation-requirements items gain a small typedContext reference (count and operation ids).
  • The descriptor contract has its own revision (1), a published vocabulary of portable type tokens and source kinds, and two readable vectors (typed-contexts-v1.json, unbound-handler-context-v1.json) packaged with the canonical vectors. Canonical executable-model bytes and revisions are unchanged.

Six shape choices were decided under the maintainer's delegation: descriptors are a sidecar, never part of canonical executable-model bytes; types use portable tokens; policy descriptors are per use site; derived values such as IsFirst are included and marked as derived; command-handler descriptors describe only the context and appear only when the command's shape resolves; and descriptors have their own versioned contract.