Skip to main content

CHANGELOG.md

# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [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 seam** — `Agentix.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 layer** — `Agentix.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 story** — `Agentix.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.

[Unreleased]: https://github.com/hawkyre/agentix/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/hawkyre/agentix/releases/tag/v0.1.0