diff --git a/Directory.Packages.props b/Directory.Packages.props
index 4dbc62c9..d5d1ec55 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -5,9 +5,9 @@
22.54.0
0.24.0
0.18.0
- 4.226.0
+ 4.236.0
- 4.186.0
+ 4.187.1
diff --git a/Documentation/reference/run.md b/Documentation/reference/run.md
index fb662fb5..052f550f 100644
--- a/Documentation/reference/run.md
+++ b/Documentation/reference/run.md
@@ -51,7 +51,7 @@ is reported as a refusal instead of a ready session.
| Option | Description |
|---|---|
-| `--tag ` | The `cratis/stage` image tag to run. Default: `4.186.0`, the Stage version this CLI renders with. |
+| `--tag ` | The `cratis/stage` image tag to run. Default: `4.187.1`, the Stage version this CLI renders with. |
| `--engine ` | Runtime engine: `semantic` (default) or `eventmodel` (deprecated explicit fallback), case-insensitive. A refusal never switches engines. See [Runtime engines](#runtime-engines). |
| `--port ` | Host port to publish the Stage API on. Default: `9090`. |
| `--workbench-port ` | Host port to publish the Chronicle Workbench on. Default: `35000`. |
diff --git a/Documentation/reference/screenplay.md b/Documentation/reference/screenplay.md
index a73cba28..630945a1 100644
--- a/Documentation/reference/screenplay.md
+++ b/Documentation/reference/screenplay.md
@@ -19,7 +19,7 @@ cratis screenplay mcp [PATH]
cratis screenplay desktop install
```
-The CLI bundles Screenplay 4.226.0 (including its MCP server), Stage 4.186.0, and the Arc source adapter 22.54.0. `cratis render` admits ESM v1 through v30, including the canonical screen-composition corpus observable query and query-only specification shapes, and preserves authored Scene layouts, profiles, templates, navigation and forms when a model declares screens. Guarded screen actions render as runnable Scene guards: the generated frontend evaluates the authored guard, including enum-typed comparisons against the read model's declared members, and shows the action only when it passes. The renderer still refuses unsupported constructs within those versions: captures, non-event triggers and Translate slices report `STAGE-ESM-024`; supported event-triggered Automation slices render, while reactions mixing event production and command invocation report `STAGE-ESM-037`, read-model absence assertions report `STAGE-ESM-027`, and unsupported v9 and v10 constructs report the codes listed in the admission table below. Reaction system identities and reaction/reducer observer filters render within their supported subset. It also refuses an evolved event until Stage can render its event-type migrations. A refused model lists every independent refusal in one render, so fixing it does not reveal new refusals one render at a time; a refusal by the target profile or an unaudited ESM version is still reported first. Validation rejects `numbers exact` (`PLAY0268`) and `implementation` attachments on concept, built-in, and whole-command rules.
+The CLI bundles Screenplay 4.236.0 (including its MCP server), Stage 4.187.1, and the Arc source adapter 22.54.0. `cratis render` admits ESM v1 through v30, including the canonical screen-composition corpus observable query and query-only specification shapes, and preserves authored Scene layouts, profiles, templates, navigation and forms when a model declares screens. Guarded screen actions render as runnable Scene guards: the generated frontend evaluates the authored guard, including enum-typed comparisons against the read model's declared members, and shows the action only when it passes. The renderer still refuses unsupported constructs within those versions: captures, non-event triggers and Translate slices report `STAGE-ESM-024`; supported event-triggered Automation slices render, while reactions mixing event production and command invocation report `STAGE-ESM-037`, read-model absence assertions report `STAGE-ESM-027`, and unsupported v9 and v10 constructs report the codes listed in the admission table below. Reaction system identities and reaction/reducer observer filters render within their supported subset. It also refuses an evolved event until Stage can render its event-type migrations. A refused model lists every independent refusal in one render, so fixing it does not reveal new refusals one render at a time; a refusal by the target profile or an unaudited ESM version is still reported first. Validation rejects `numbers exact` (`PLAY0268`) and `implementation` attachments on concept, built-in, and whole-command rules.
Stage 4.154.1 renders a two-project solution: the web application and a separate `.Specs` project that compiles the slice-local specifications. Generated applications use central package management, `Directory.Build.props`, and a README with run instructions, with Arc 22.112.1 and Chronicle 19.78.0.
@@ -39,7 +39,7 @@ A newer bundled compiler can produce a newer executable semantic model (ESM) ver
| `cratis screenplay mcp` | Admitted for authoring and reading. The embedded server binds v7 models, pages their executable model (generated properties, responses, generation fixtures and return expectations) and reports execution readiness. The embedded server offers deterministic reference execution through `run-specifications`, including retained proposal candidates. |
| `cratis render` | Admitted. Policy negation renders. Server-generated, non-optional UUID-backed concepts render as Arc generated-value parameters. Scalar responses and named responses whose fields come from scalar command properties render. Unsupported generated types report `STAGE-ESM-028`; unsupported generation/response combinations report `STAGE-ESM-038`. Stage refuses a specification whose unauthenticated caller carries roles or claims with `STAGE-ESM-011`; this includes the unchanged canonical negation example. A refusal leaves no publishable artifacts. Versions newer than v28 are still blocked by `CLI-RENDER-004`, naming the version. |
| `cratis screenplay generate` | From Arc 22.52.0, the Arc adapter recovers supported generated UUID values and command responses by default for commands without successful scenarios. Output containing these constructs compiles to ESM v7, which `cratis render` admits. The renderer supports non-optional UUID-backed generated concepts and scalar or named scalar command responses; unsupported types or combinations still receive typed refusals. Unsupported shapes and values needed by pre-generation protection remain in code with `SP0052`. Marten and Critter Stack retain their existing recovery surface. |
-| `cratis run` | The Stage 4.186.0 container compiles the mounted `.play` files with its own bundled Screenplay compiler. Passing `cratis screenplay validate` does not establish Stage support for every construct. |
+| `cratis run` | The Stage 4.187.1 container compiles the mounted `.play` files with its own bundled Screenplay compiler. Passing `cratis screenplay validate` does not establish Stage support for every construct. |
The bundled Stage 4.154.1 is built on Screenplay 4.206.0 and admits ESM v18 query-error expectations (`then error` after `when query`), introduced in Screenplay 4.161.0. Supported query rejection specifications render as companion specifications asserting the validation failure; unsupported shapes report Stage diagnostics. ESM v5 adds keyed read-model absence assertions; v8 adds event sources, streams, command routes and specification routes. ESM v9 adds public events, foreign event origins, translation direction, event-target projections/reducers and event-source captures; v10 adds reaction system identity (`runsAs`), per-production route overrides (`SemanticProducedEvent.Route`) and observer filters (`SemanticReaction.From` and `SemanticReducer.From`). Version reading and command admission are separate:
diff --git a/Source/Cli.Specs/for_CratisRenderTarget/when_planning_a_supported_application.cs b/Source/Cli.Specs/for_CratisRenderTarget/when_planning_a_supported_application.cs
index 32f77f89..ee2d0860 100644
--- a/Source/Cli.Specs/for_CratisRenderTarget/when_planning_a_supported_application.cs
+++ b/Source/Cli.Specs/for_CratisRenderTarget/when_planning_a_supported_application.cs
@@ -32,7 +32,7 @@ Task Because()
[Fact] void should_plan_the_exact_facade_renderer() => _result.Renderer.ShouldEqual(_expected.Renderer);
[Fact] void should_plan_the_exact_facade_renderer_version() => _result.RendererVersion.ShouldEqual(_expected.RendererVersion);
[Fact] void should_load_the_bundled_stage_renderer_package() =>
- typeof(CratisRendering).Assembly.GetCustomAttribute()!.InformationalVersion.Split('+')[0].ShouldEqual("4.186.0");
+ typeof(CratisRendering).Assembly.GetCustomAttribute()!.InformationalVersion.Split('+')[0].ShouldEqual("4.187.1");
[Fact] void should_plan_the_same_application_name() => _result.ApplicationName.ShouldEqual(_expected.ApplicationName);
[Fact] void should_plan_the_same_semantic_revision() => _result.SemanticRevision.ShouldEqual(_expected.SemanticRevision);
[Fact] void should_plan_the_exact_facade_artifacts() =>
diff --git a/Source/Cli.Specs/for_RunCommand/when_running/with_a_folder_and_the_default_stage_tag.cs b/Source/Cli.Specs/for_RunCommand/when_running/with_a_folder_and_the_default_stage_tag.cs
index b3969c8e..80af7f44 100644
--- a/Source/Cli.Specs/for_RunCommand/when_running/with_a_folder_and_the_default_stage_tag.cs
+++ b/Source/Cli.Specs/for_RunCommand/when_running/with_a_folder_and_the_default_stage_tag.cs
@@ -16,7 +16,7 @@ [Unix.Fact] void should_start_the_released_stage_image_that_matches_the_renderer
DockerArguments.ShouldContain($"cratis/stage:{StageContainer.DefaultTag}");
[Unix.Fact] void should_run_the_bundled_stage_by_default() =>
- DockerArguments.ShouldContain("cratis/stage:4.186.0");
+ DockerArguments.ShouldContain("cratis/stage:4.187.1");
[Unix.Fact] void should_mount_only_the_selected_folder_read_only() =>
DockerArguments.ShouldContain($"{_folder}:/eventmodel:ro");
diff --git a/Source/Cli.Specs/for_RunCommand/when_running/with_a_play_file_and_the_default_stage_tag.cs b/Source/Cli.Specs/for_RunCommand/when_running/with_a_play_file_and_the_default_stage_tag.cs
index 7b1e58ec..b583270b 100644
--- a/Source/Cli.Specs/for_RunCommand/when_running/with_a_play_file_and_the_default_stage_tag.cs
+++ b/Source/Cli.Specs/for_RunCommand/when_running/with_a_play_file_and_the_default_stage_tag.cs
@@ -21,7 +21,7 @@ [Unix.Fact] void should_start_the_released_stage_image_that_matches_the_renderer
DockerArguments.ShouldContain($"cratis/stage:{StageContainer.DefaultTag}");
[Unix.Fact] void should_run_the_bundled_stage_by_default() =>
- DockerArguments.ShouldContain("cratis/stage:4.186.0");
+ DockerArguments.ShouldContain("cratis/stage:4.187.1");
[Unix.Fact] void should_mount_only_the_selected_file_read_only() =>
DockerArguments.ShouldContain($"{_path}:/eventmodel/input.play:ro");
diff --git a/Source/Cli.Specs/for_StageContainer/when_resolving_the_default_tag.cs b/Source/Cli.Specs/for_StageContainer/when_resolving_the_default_tag.cs
index 5bb4e4f6..14c48890 100644
--- a/Source/Cli.Specs/for_StageContainer/when_resolving_the_default_tag.cs
+++ b/Source/Cli.Specs/for_StageContainer/when_resolving_the_default_tag.cs
@@ -26,7 +26,7 @@ void Establish() => _renderer = typeof(ArtifactRenderPlan).Assembly
[Fact] void should_run_the_stage_the_renderer_came_from() => _tag.ShouldEqual(_renderer);
- [Fact] void should_run_the_bundled_stage_image() => _tag.ShouldEqual("4.186.0");
+ [Fact] void should_run_the_bundled_stage_image() => _tag.ShouldEqual("4.187.1");
[Fact] void should_not_run_a_moving_tag() => _tag.ShouldNotEqual(StageContainer.FallbackTag);
diff --git a/Source/Cli/Commands/Render/RenderedSemanticVersions.cs b/Source/Cli/Commands/Render/RenderedSemanticVersions.cs
index c5f7d7e2..42ed6e61 100644
--- a/Source/Cli/Commands/Render/RenderedSemanticVersions.cs
+++ b/Source/Cli/Commands/Render/RenderedSemanticVersions.cs
@@ -32,7 +32,7 @@ namespace Cratis.Cli.Commands.Render;
/// comparisons, including protected read paths in require conditions. ESM v29 products in running totals are
/// refused by Stage with STAGE-ESM-050 (Chronicle adds one event property); decimal rules, concept conversions
/// and application toolbar buttons render. ESM v30 commands that append to several event sources render
-/// (Stage 4.186.0), and published events and Translate slices are still refused. Newer versions remain refused here until reviewed.
+/// (Stage 4.187.1), and published events and Translate slices are still refused. Newer versions remain refused here until reviewed.
///
public static class RenderedSemanticVersions
{