All notable changes to Squid Mesh will be documented in this file.

The format is based on Keep a Changelog and the project follows Semantic Versioning, including prerelease tags while the runtime remains in early development.

[0.1.0-alpha.3] - 2026-05-07

Added

  • Human-in-the-loop workflow support with paused runs and SquidMesh.unblock_run/2.
  • Approval workflow primitives with approval_step/2, SquidMesh.approve_run/3, and SquidMesh.reject_run/3.
  • Manual audit history for pause, resume, approval, and rejection actions when inspecting runs with include_history: true.
  • Operations documentation for idempotent side-effect design and stale running step recovery.

Changed

  • Paused and approval runs now persist their resume targets and output mapping, so existing paused runs keep the same resume behavior across restarts and deploys.
  • Runtime recovery paths now preserve queued step state more carefully during duplicate delivery, cancellation, retry, and dispatch-failure scenarios.
  • Stale running step reclaim is opt-in. By default, a duplicate or redelivered job skips an already running step instead of starting another attempt after a timeout.
  • README and guide language now focuses on setup, runtime behavior, and operational boundaries.

Fixed

  • Invalid execution: configuration now returns structured config errors instead of raising during config load.
  • Runtime telemetry is emitted after the related durable state commits in progression paths that update run or step state.

Notes

  • This remains an alpha release. Steps that call external systems should use application-owned idempotency keys or another duplicate-safety strategy.

[0.1.0-alpha.2] - 2026-05-04

Added

  • Dependency-based workflow steps with after: [...], including durable scheduling of ready steps and dependency-aware host app examples.
  • Explicit error routing for transition workflows with transition(..., on: :error, to: ...) after retries are exhausted.
  • Explicit step input: [...] selection and output: :key namespacing for clearer data flow between workflow steps.
  • Graph-aware inspection with a public steps view alongside chronological step_runs when inspect_run(..., include_history: true) is enabled.

Changed

  • Refactored runtime execution into clearer prepare, execute, and apply phases without changing the public workflow DSL.
  • Hardened dependency-mode concurrency, step claiming, retry progression, and terminal-run dispatch behavior across parallel branch execution.
  • Expanded host app smoke and integration coverage to exercise dependency workflows, mapped step I/O, and nonlinear inspection paths end to end.

Notes

  • This is still an alpha release. The runtime is stronger for evaluation and internal integration work, but the production-readiness bar remains unchanged.

[0.1.0-alpha.1] - 2026-04-28

Added

  • Declarative workflow DSL with manual and cron triggers, payload contracts, built-in steps, transitions, and step-level retry/backoff configuration.
  • Durable runtime built on Postgres and Oban, including replay, cancellation, cron activation, run inspection, and step/attempt history.
  • Tool adapter boundary with an HTTP adapter and runtime observability hooks.
  • Example host app with smoke, resilience, and bounded soak verification paths.
  • Compatibility, operations, and production-readiness documentation.

Changed

  • Clarified the runtime boundary between Squid Mesh, Oban, Jido, and host applications across the README and docs.
  • Disabled Jido's internal action retries at the Squid Mesh boundary so one workflow attempt maps to one persisted step attempt.

Notes

  • This is an alpha release. The runtime is suitable for evaluation, local development, and internal integration work, but it is not yet positioned as production-ready.