Skip to content

Release v3.30.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 14:25
5f17f9a

Changed

  • The CLI bundles Screenplay 4.74.0, whose compiler and embedded MCP server read executable semantic model (ESM) v7: generated command values and command responses.
  • cratis screenplay validate and cratis render reject a @pii concept used as an event-source identifier, a command identifier or a command or reaction for destination (PLAY0515, an error; use a surrogate identifier). Models that validated before can fail.
  • cratis screenplay validate warns about undeclared events in projection removals and capture appends (PLAY0166) and about projection mappings to read-model properties that are not declared (PLAY0514); these warnings fail --warnings-as-errors.
  • cratis screenplay validate reports two information diagnostics, which never fail validation: PLAY0516 for a slice that uses an event from a slice drawn after it, and PLAY0517 for slices, features or modules that use each other's events.
  • Validating a root file merges its imported files depth-first in import order, where it was breadth-first before. When parts of one module or feature are imported at different depths, this can change which of two conflicting declarations is kept and reported first.
  • With no arguments and no .cratis/ai.json, cratis screenplay mcp now serves the model folder inside the single root the client offers rather than the root itself. It keeps the folder nearest that root which already holds .screenplay state, and otherwise uses the common folder of its .play files, else Source or src, else a new Screenplay folder it creates. It reports competing folders that hold state, and an interrupted write in one of them blocks the workspace until that folder is opened and recovered. With neither a client root nor a model in the current directory it creates and serves Documents/Screenplay, where it previously asked for a path.
  • The embedded MCP server merges workspace files in file-path order. Its expand-layout tool writes import-based files, with one file per slice for the slice layout, and refuses a layout that would change the authored order. read-workspace view=repairs and propose-repair offer a repair for PLAY0516, and the new dependency-graph tool shows how slices, features and modules depend on each other.
  • When the embedded MCP server rewrites module and feature files it keeps their import lines where they were written, and its execution readiness names command handlers and exact numbers for any model that uses them.
  • The visualize-model event model board is drawn in authored declaration and import order, shows each specification's command once with its values, error messages and caller, and counts reactions in its added and removed summaries.

Fixed

  • In the embedded MCP server, moving a feature or slice earlier among its siblings in a typed edit is no longer refused, and merging a folder model back into one document keeps comments written on authorize statements.
  • cratis render rejects a model that compiles to ESM v7 with the blocking CLI-RENDER-004 diagnostic before planning, so generated values and responses are never dropped silently and nothing is published. The Screenplay reference documentation lists each command's ESM v7 disposition. (#261)