Release Notes: 0.2.0 Preparation

Copy Markdown View Source

This maintainer note captures the intended 0.2.0 release content before the release workflow generates the final CHANGELOG.md entry.

CHANGELOG.md is intentionally not edited by normal PRs. CI enforces this so git_ops can generate the final changelog from conventional commits during the GitHub release workflow.

Added

  • Read-action query parameters for generated actions: filter, sort, limit, offset, and allowlisted dynamic relationship load, with Ash safe input parsing and optional max_page_size bounds.
  • Static resource-domain fallback, so generated actions use context[:domain] first and then the resource's configured domain: before raising.
  • Public-surface schema generation that follows Ash public?: true inputs by default, with include_private?: true available for trusted/internal tool catalogs.
  • all_actions expansion over public Ash actions by default, plus only/except filtering and trusted private-action opt-in.
  • Resource notification publishing through AshJido.Notifier, publish, and publish_all, including configurable signal buses, prefixes, payload include modes, metadata, and predicates.
  • Generated-action signal emission through emit_signals?, shared AshJido.SignalFactory payload construction, runtime signal_dispatch overrides, and signal delivery counters in telemetry metadata.
  • Opt-in generated-action telemetry under the Jido namespace: [:jido, :action, :ash_jido, :start | :stop | :exception].
  • AshJido.Tools helpers for exporting generated action modules and LLM-friendly tool payloads.
  • AshJido.SensorDispatchBridge helpers for forwarding dispatched signal messages into Jido.Sensor.Runtime.
  • A real AshPostgres consumer harness under ash_jido_consumer/ covering database-backed actions, policies, relationship loading, signals, and telemetry.
  • Package quality infrastructure: shared GitHub Actions CI, docs and doctor checks, coverage enforcement, release workflow, Dependabot for Mix and GitHub Actions, and contributor docs.

Changed

  • Updated the dependency baseline to Elixir ~> 1.18, Ash ~> 3.12, Jido ~> 2.2, jido_action ~> 2.2, jido_signal ~> 2.1, splode ~> 0.3, and zoi ~> 0.17.
  • Split generated action runtime execution out of the compile-time generator into dedicated runtime/spec modules for clearer compile-time and runtime boundaries.
  • Consolidated generated-action signal emission and notifier-driven publications around the same signal factory and dispatch accounting path.
  • Documented explicit module_name: usage for intentionally exposing the same Ash action more than once.

Fixed

  • Update and destroy actions now use the resource's primary key fields instead of assuming a single id field.
  • Destroy actions pass declared Ash destroy action arguments through to Ash.
  • Non-map custom action results are wrapped so they satisfy Jido.Exec output validation.
  • Multiple generated entries that would target the same module now fail at compile time with guidance to provide explicit module_name: values.
  • README, guides, and usage rules now agree on naming, dependency compatibility, context resolution, query parameters, signals, telemetry, tools, and release tooling.

Intentional Notes

  • The final CHANGELOG.md entry, date, and tag should be produced by the GitHub release workflow.
  • AshJido intentionally keeps the AshJido public module namespace for Ash DSL extension compatibility; no namespace migration is included in this release.
  • The AshPostgres consumer harness remains a companion integration app, not part of the published Hex package files.