Release v1.0.5
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.subjectmappings in projections no longer fail registration withUnknown 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/stageandcratis/stage-specrunnerare 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.shmoves to the repository root and publishes both apps before building both images.
🤖 Generated with Claude Code