Skip to content

Releases: Cratis/Stage

Release v1.1.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 05:33
3bf5b23

Summary

A play session accepted commands and echoed the payload back, but never appended anything — so the event log stayed empty, the read models could never populate, and there was nothing to inspect in the Workbench. Commands now append the events their produces declarations describe.

Added

  • Commands append the events their produces declarations describe. The guarding when condition is evaluated against the incoming payload, and each event property is resolved from a command property, a constant, the occurred time, the calling identity, an environment variable, or an interpolated template.
  • The event model intermediate format carries a command's produces declarations, so any consumer of the format — not just the host — can see which events a command appends and under what condition.
  • The model's event types are registered with Chronicle at startup, so a play session's event types are listed in the Workbench and the projections reference types the kernel knows about.

Fixed

  • Read models populate again. The sink the read models project into was identified by an invented GUID; Chronicle identifies sink types by well-known name, so every projection write was rejected as an unknown sink — surfacing as a failed observer partition rather than a registration error.

Changed

  • Each command execution appends to its own event source. Screenplay does not declare which command value identifies the event source, so events cannot yet be correlated across commands; that needs the language to say which property is the identity.

Release v1.0.8

Choose a tag to compare

@github-actions github-actions released this 30 Jul 15:23
10f926c

Changed

  • Upgraded Cratis.Chronicle.Contracts from 16.10.0 to 16.11.1.

Test plan

  • dotnet build Stage.slnx (Debug) — 0 warnings, 0 errors
  • dotnet build Stage.slnx -c Release (Release) — 0 warnings, 0 errors
  • dotnet test Stage.slnx — all tests pass (68/68 in Contracts)

Release v1.0.7

Choose a tag to compare

@github-actions github-actions released this 30 Jul 13:09
0dddc83

Summary

Opening the Chronicle Workbench as http://localhost:35000 returns nothing — ERR_EMPTY_RESPONSE in a browser, curl: (52) Empty reply from server — which reads as a broken Workbench. The port is HTTPS only, and nothing said so.

Changed

  • The startup banner and the documentation now state that the Workbench port is HTTPS only, and name the empty-response symptom you get from using http://. The kernel multiplexes HTTP/1.1 and HTTP/2 on that port through ALPN, which requires TLS, so there is no plaintext mode for it — https://localhost:35000 is the address.

Release v1.0.6

Choose a tag to compare

@github-actions github-actions released this 30 Jul 12:50
ad575cd

Added

  • The Chronicle Workbench is now exposed from the Stage image on port 35000, so a play session's events, observers and read models can be inspected while it runs. Publish the port and browse https://localhost:35000 — the kernel's API and OAuth authority are served there too.
  • The container prints the session's URLs — Stage API, API reference and Workbench — when it starts.
  • Documentation for both images and for a running session: what is inside them, how they boot, their ports, mount points and configuration, and every URL a session exposes.

Fixed

  • The specification runner container no longer fails when run without arguments. Its default --model pointed at /model/event-model.json, but a model is a folder of .play files, so the default is now the /model folder itself.

Release v1.0.5

Choose a tag to compare

@github-actions github-actions released this 30 Jul 12:05
2d31600

Summary

Running an event model that projects the causing identity or uses a composite key crashed Stage at startup — Chronicle's projection engine rejected the expressions Stage emitted, and no projections were registered. Stage now translates Screenplay expressions to the forms the engine's resolvers actually support, verified end to end with the Screenplay invoicing sample. The Docker publish pipeline also moves to prebuilt binaries, matching how Chronicle publishes its images.

Fixed

  • $causedBy.name / $causedBy.userName / $causedBy.subject mappings in projections no longer fail registration with Unknown read model property expression '$causedBy(name)' — they now resolve through the event context's causing identity.
  • Composite projection keys (key <Name> with parts) no longer fail registration — the Screenplay key type name is no longer emitted into the $composite(...) expression.
  • A package-version-only bump (Directory.Packages.props / Directory.Build.props) now triggers the publish workflow, so dependency updates can cut a release.

Changed

  • cratis/stage and cratis/stage-specrunner are now built from host-built, framework-dependent binaries and copied into the images, instead of compiling inside the Docker build — no more .NET compilation under QEMU emulation for the arm64 leg of the multi-arch publish.
  • dockerize.sh moves to the repository root and publishes both apps before building both images.

🤖 Generated with Claude Code

Release v1.0.4

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:24
4d864a6

No release notes

Release v1.0.3

Choose a tag to compare

@github-actions github-actions released this 30 Jul 10:45
b551b40

Fixed

  • cratis/stage-specrunner failed to build in Release with CS0246: FactAttribute could not be found. The Dockerfile never copied Source/Directory.Build.targets, the file that strips inline spec folders (for_*/, when_*/, given/) from Release builds, so the Screenplay event-model-loader specs were compiled without a test framework reference.

Release v1.0.2

Choose a tag to compare

@github-actions github-actions released this 30 Jul 10:39
ba647c7

Fixed

  • cratis/stage and cratis/stage-specrunner are now built and pushed for both linux/amd64 and linux/arm64, fixing no matching manifest for linux/arm64/v8 when pulling on arm64 hosts.

Changed

  • The publish pipeline now also cuts a release when .github/workflows/publish.yml itself changes, so pipeline-only fixes (like this one) can ship without an unrelated Source/ change.

Release v1.0.1

Choose a tag to compare

@github-actions github-actions released this 15 Jul 09:42

No release notes

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 08:22

No release notes