Skip to content

v0.9.0

Latest

Choose a tag to compare

@Yyeger Yyeger released this 18 Oct 13:09

This release adds SQLite as a durable backend for applications that run on one node, alongside a timer wheel fix and dependency security updates.

Upgrading from v0.8.5: no schema migration is needed for PostgreSQL installations. SQLite installations generate the current schema with mix continuum.gen.migration --repo MyApp.Repo; see the SQLite guide.

Add SQLite as a durable backend for single-node deployments, through the optional ecto_sqlite3 dependency and Continuum.Runtime.Journal.SQLite. Workflows keep the same replay, drift detection, lease fencing, activities, timers, signals, child workflows, schedules, queries, Observer pages, health reports, and operator tooling. mix continuum.gen.migration writes the SQLite schema for SQLite repos; named instances choose the journal from their repo's adapter, and mismatched journal/repo pairs raise at construction. Clustering, event partitions, and --from upgrade migrations remain PostgreSQL-only. See the SQLite guide.

Fix timer wheel ticks that could run up to a millisecond before a timer's stored due time. The pending timer was then treated as unclaimable and parked until the next refresh (30 seconds by default).

Fix Continuum.Test.fire_timer/2 raising on durable journals when no :timer_id is given.

Stamp manually retried activity tasks with the database clock. The claim compares availability with that clock, so an application clock running ahead of the database briefly left the retried task unclaimable.

Require bandit 1.13 or newer for development and tests, including the minimum-dependency CI lane, to address CVE-2026-105659 and CVE-2026-105660. Update the lockfile to bandit 1.13.1 and decimal 3.2.0, which addresses CVE-2026-97853 in the transitive decimal dependency.