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, andSquidMesh.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 andoutput: :keynamespacing for clearer data flow between workflow steps. - Graph-aware inspection with a public
stepsview alongside chronologicalstep_runswheninspect_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.