RIDDL 1.24.0 Released
RIDDL 1.24.0 is now available.
release riddl compiler
RIDDL 1.24.0 is now available. This release of the RIDDL compiler and language tooling includes the following changes:
What’s New
What’s New
Features
- Per-message remediation suggestions (
--provide-tips) — Every diagnostic the compiler emits can now carry a concise, actionable remediation suggestion alongside the message text. Turn it on with the new--provide-tipsflag (orprovide-tipsin a HOCON.conffile), or runriddlc advise <file>(now simplyvalidatewith tips enabled). When enabled, each validation and resolution message renders an extraSuggestion:line explaining how to fix the reported condition — useful for human authors and for AI-assisted model repair. With the option off (the default), output is completely unchanged.
Improvements
- Suggestions for every validation & resolution diagnostic — Remediation suggestions were authored for ~155 distinct message types across the validation and resolution passes. A complete, reviewable message → suggestion reference table ships in the repository as
MESSAGE_SUGGESTIONS.md. - New completeness check: entities require persistence — A context that declares entities but defines no repository now emits a completeness warning, because entities are stateful and need durable storage. A placeholder
repository X is { ??? }counts as addressed. - Opt-in entity guidance — Under
--provide-tips, entities that define no command types, no event types, or that leave a command unhandled receive advisory completeness warnings with concrete suggestions. These are advisory because message types are frequently declared at context scope.
API
Messages.Messagegains asuggestion: Stringfield (defaulted, backward compatible);CommonOptionsgainsprovideTips: Boolean(defaultfalse). Suggestions are retained and rendered only whenprovideTipsis enabled, gated at a single chokepoint in the message accumulator.
Deprecations
RiddlLib.analyzeForTips/analyzeSourceForTips(and their JavaScript/TypeScript equivalents) are deprecated. They remain fully functional — re-implemented to run the standard passes withprovideTipsenabled — and are scheduled for removal in a future major release.
Internal
- The
AIHelperPass(and its test suites) was removed. Tip generation is now a generic property of every message rather than a separate pass. Theadvisecommand and theTipmessage kind are retained for backward compatibility.