Release 1.19.0
What's New
New CompletenessWarning Message Kind
A new validation message kind, CompletenessWarning, flags models that are incomplete for simulation, code generation, or analysis. Completeness warnings sit between UsageWarning and Warning in severity and are actionable (not ignorable), ensuring they surface prominently during validation.
- New
showCompletenessWarningsoption inCommonOptions(default:true) - CLI flag:
-c/--show-completeness-warnings - HOCON config key:
show-completeness-warnings - New
Completenesslog level (displayed in yellow)
New Completeness Validation Checks
The following checks are now performed during full validation:
Entity checks:
- Entity states without an
on initclause to initialize state - Entity states with
on initbut nosetstatement - Command handlers in entities that don't send an event
- Query handlers in entities that don't send a result
- Entities without any
on queryclause - Entities without an outlet streamlet for publishing events
- Entities with no handlers to process messages
- FSM entities with 2+ states but no
morphorbecomestatements
Context checks:
- Contexts with entities but no Sink streamlet to receive incoming messages
- Streamlet handlers that receive messages but don't dispatch to entities via
tell
Projector checks:
- Projectors that don't reference any repository to persist their projection
- Projectors whose handlers don't
tellmessages to a repository - Declared repository references in projectors that are never used in a
tellstatement
Handler checks:
- Handlers with no executable statements (empty /
???) - Handlers with only
promptstatements (notell,send,morph,set, etc.)
Streaming checks (converted from generic Warning):
- Isolated streamlets not connected to any connector
- Sources without a downstream path to a sink
- Sinks without an upstream path from a source
- Unattached inlets and outlets
Repository Usage Tracking
Repositories are now tracked in UsageResolution. A repository that is not referenced by any tell statement, projector, or other definition anywhere in the model now produces a UsageWarning ("Repository X is unused").
Bug Fixes
- Command/query completeness checks now entity-only: The "command processing should result in sending an event" and "query processing should result in sending a result" checks now only fire for entity handlers, not for streamlets, adaptors, or other processor types.
- Empty definitions skipped: Completeness checks skip placeholder (
???) definitions to avoid noise on incomplete models.
Infrastructure
- Replaced
peter-evans/repository-dispatch@v3withgh apicalls in the release workflow, fixing "Bad credentials" errors that prevented blog post dispatch since 1.17.0. - Fixed
CommandTestto use symbolic severity references instead of hardcoded integers.
Compatibility
- Additive: New
CompletenessWarningkind, newshowCompletenessWarningsoption, new validation checks - Severity renumbering:
Warningis now severity 5 (was 4),Erroris 6 (was 5),SevereErroris 7 (was 6). Code that compares viaKindOfMessageobjects (not raw integers) is unaffected. CLI exit codes based onhighestSeveritywill shift accordingly. - All existing APIs remain unchanged