Skip to content

Release 1.24.0

Choose a tag to compare

@reid-spencer reid-spencer released this 02 Jun 23:58

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-tips flag (or provide-tips in a HOCON .conf file), or run riddlc advise <file> (now simply validate with tips enabled). When enabled, each validation and resolution message renders an extra Suggestion: 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.Message gains a suggestion: String field (defaulted, backward compatible); CommonOptions gains provideTips: Boolean (default false). Suggestions are retained and rendered only when provideTips is 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 with provideTips enabled — 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. The advise command and the Tip message kind are retained for backward compatibility.