All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Entries for unreleased work are not written here directly. Each issue drops a fragment in changelog.d/; the fragments are assembled into a version section at release. See that README for the format and for when a change warrants an entry at all.

[0.1.0] 2026-08-22

First release: the OpenTelemetry bridge for the statifier statechart engine, built on its public :telemetry events only. A statechart macrostep is a span; effect and trace telemetry events are span events on it; each macrostep roots its own trace, stitched to its neighbors with span links. The design is recorded upstream in statifier-ex's docs/opentelemetry.md and st-ADR-0062.

Added

  • OpentelemetryStatifier.setup/1, which attaches the bridge to statifier's session telemetry and emits a statifier.macrostep span per macrostep.
  • Records the effect, trace, :interpret, :unroutable, and :halt telemetry events as span events on the open macrostep span, and links each macrostep span to the session's previous macrostep and (for an invoked child's :initialize macrostep) to the invoking parent's open span. Datamodel values are excluded unless setup/1 receives record_datamodel_values: true.
  • Cleans up the span table over the session lifecycle: :terminate removes the session's rows (ending a still-open macrostep span with an error status), and a periodic sweep does the same for sessions whose process died without a :terminate, so a brutal kill orphans no open span and leaks no rows. With trace: false the bridge degrades to macrostep-grained spans with effect-level span events, no configuration needed.