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.

Unreleased

0.1.0 - 2026-06-25

First public release.

Added

  • Agent runtime — one event-sourced :gen_statem per conversation (Agentix.Conversation), with non-blocking streaming turns, in-process tool execution, and mid-turn cancellation. Conversations are started on demand via Agentix.Conversation.ensure_started/2 and survive process death.
  • Provider seamAgentix.Provider behaviour with a streaming + cancel + finalize contract; Agentix.Provider.ReqLLM adapts ReqLLM's canonical typed model and provider abstraction.
  • Tools & HITL — an explicit executor model (:server, :human, :client, :provider) with gated approval, durable suspension into awaiting_input, and a public, socket-independent Agentix.resolve/4 (LiveView, webhook, job, or timeout). Suspended turns revive from durable state.
  • Hook pipeline — per-turn pre/post hooks (Agentix.Hook), parallel append-only injections with a token reserve, halt semantics, and a per-chunk stream-transformer seam.
  • Compaction — reducer pipeline (tool-result stubbing, sliding window, async cumulative summarization) gated by a token budget, behind a pluggable Agentix.Tokenizer behaviour (default char/4 heuristic, no extra dependency).
  • Persistence — the Agentix.Persistence behaviour with two adapters sharing one conformance suite: Agentix.Persistence.ETS (default, no database) and Agentix.Persistence.Ecto (Postgres, kill-and-resume, optional Oban-backed suspension expiry). Both LiveView and Ecto/Oban are optional dependencies.
  • Headless LiveView layerAgentix.Chat (use macro + on_mount projection of the live-event plane onto assigns, streamed deltas to a JS hook), optional ownable Agentix.Components, and mix agentix.gen.components / mix agentix.gen.migration generators.
  • Live-event union — a typed event plane broadcast over Phoenix.PubSub (Agentix.Notifier behaviour; PubSub default, None no-op) consumable by any transport.
  • Test storyAgentix.Test assertions and a scriptable Agentix.Test.MockProvider for driving conversations deterministically with no API key.
  • Modern tooling: Credo, Dialyxir, Styler, ExCoveralls, MixAudit, ExDoc, and a mix check quality gate.