Release 1.21.0
What's New
Features
-
Microservice option — Added a new
option microservicethat can be applied to Context, Entity, Projector, Repository, and Saga definitions. This option marks a definition as being deployed as a microservice, enabling tooling and generators to make architecture-aware decisions. -
Reply statement scoping — The
replystatement is now restricted to handlers within Context, Entity, or Repository definitions only. Previously it could appear in any handler, but replies are only meaningful in definitions that can receive and respond to messages. Models usingreplyin other scopes (e.g., Projectors, Adaptors) will now receive a parse error.
Bug Fixes
- Release notification blog encoding — Fixed the notify-blog GitHub workflow to properly JSON-encode the release body when posting notifications, preventing malformed requests when release notes contain special characters.
- Release notification blog API — Fixed the notify-blog workflow to fetch the release body from the GitHub API rather than relying on the event payload, which could be empty for auto-generated releases.
Internal
- Scala 3.8.3 upgrade — Upgraded from Scala 3.7.4 to 3.8.3 via sbt-ossuminc 1.4.0. Fixed minor syntax issues flagged by the new compiler and unified MiMa binary compatibility check versions.
- Entity Id type test — Added test coverage for entity Id type resolution when the type is defined in an included context file.
- CLAUDE.md — Added BAST FORMAT_REVISION increment rule to project documentation.