Changelog

View Source

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.

[2.0.0-rc.0] - 2026-02-22

Added

Changed

  • Published the first 2.0.0 release-candidate line for Hex (2.0.0-rc.0)
  • Aligned ecosystem dependency ranges to stable releases: jido ~> 2.0, jido_action ~> 2.0
  • Updated dev/test smoke dependency to jido_browser ~> 1.0
  • Strategy runtimes now execute plugin-routed Jido.Action module instructions instead of no-oping unknown module actions.
  • Plugin-routed action context is standardized to include state, agent, and plugin_state.
  • LLM/tool-calling actions now consistently read mounted defaults from context/plugin state.
  • Jido.AI.Actions.ToolCalling.CallWithTools and ListTools now resolve tools from broader fallback context sources.
  • Public docs updated to the new plugin taxonomy and strategy-run capability model.

Removed

  • Public plugin modules:
    • Jido.AI.Plugins.LLM
    • Jido.AI.Plugins.ToolCalling
    • Jido.AI.Plugins.Reasoning
  • Legacy public plugin signal contracts tied to those modules (llm.*, tool.*, and reasoning.analyze|infer|explain plugin routes).

Migration Notes

  • This is a hard-replace breaking release for the plugin surface (no compatibility adapters).
  • Replace removed plugins/signals using:
    • guides/user/migration_plugins_and_signals_v3.md

[2.0.0] - Previous

Added

  • Complete rewrite with clean architecture
  • Splode-based error handling via Jido.AI.Error
  • Zoi schema validation support
  • Integration with ReqLLM for LLM provider abstraction
  • Integration with jido_action for composable AI actions

Changed

  • Breaking: Complete API redesign for v2
  • Module namespace changed from JidoAi to Jido.AI

v2.1.0 (2026-03-29)

Features:

  • request: enrich completed request metadata (#233) by mikehostetler

  • request: enrich completed request metadata by mikehostetler

  • react: add queued mid-run steering controls (#225) by mikehostetler

  • react: add mid-run steering controls by mikehostetler

  • split out reasoning lifecycle parity (#231) by mikehostetler

  • split out reasoning lifecycle parity by mikehostetler

  • split out AI tool error contract (#230) by mikehostetler

  • split out AI observability core (#229) by mikehostetler

  • split out AI observability core by mikehostetler

  • context: carry refs through context entries and projection (#213) by Julian Scheid

  • context: carry refs through context entries and projection by Julian Scheid

  • react: allow callers to attach extra refs to thread entries by mikehostetler

  • react: allow callers to attach extra refs to thread entries (#211) by Julian Scheid

  • react: allow callers to attach extra refs to thread entries by Julian Scheid

Bug Fixes:

  • preserve formatter imports during jido_ai.install (#237) by mikehostetler

  • stop importing jido_ai formatter config by mikehostetler

  • avoid dialyzer warnings in model input by mikehostetler

  • adaptive: preserve compatibility strings for failures (#234) by mikehostetler

  • request: normalize compatibility last_answer by mikehostetler

  • strategy: preserve raw error terms in snapshot result (#223) by Julian Scheid

  • strategy: preserve raw error terms in snapshot result by Julian Scheid

  • cli: preserve compatibility strings for raw failures by Julian Scheid

  • react: harden steering queue lifecycle by mikehostetler

  • react: align queue error types by mikehostetler

  • react: preserve input injected compatibility events by mikehostetler

  • remove dead lifecycle telemetry fallback by mikehostetler

  • unblock split PR CI by mikehostetler

  • tool_adapter: ensure modules are loaded before validating (#226) by Philip Munksgaard

  • pass details as keyword to execution_error (#214) by Julian Scheid

  • pass details as keyword to execution_error by Julian Scheid

  • examples: preserve action error details maps by Julian Scheid

  • context: preserve refs during replay and restore by Julian Scheid

  • preserve multimodal tool result content parts (#209) by mikehostetler

  • agent: accept full ReqLLM model inputs by mikehostetler

  • preserve multimodal tool result content parts by mikehostetler

  • react: preserve extra thread refs by mikehostetler

  • context: normalize restored multimodal tool content by mikehostetler

  • react: preserve extra thread refs by Julian Scheid

  • agent: accept full ReqLLM model inputs (#206) by mikehostetler

  • format mix.exs for CI by mikehostetler

Refactoring:

  • react: tighten queued control boundaries (#235) by mikehostetler

  • remove ModelInput helper (#238) by mikehostetler

  • remove ModelInput helper by mikehostetler

  • react: clarify queued steering semantics by mikehostetler

  • cli: codify non-interactive mix task contract (#205) by mikehostetler

2.0.0 (2026-03-15)

Breaking Changes:

  • remove Jido.AI.Thread compatibility shim by dbhowmick

  • remove public Jido.AI.set_context API by dbhowmick

  • react: project context lifecycle onto core thread by dbhowmick

Features:

  • react: add request-scoped tool controls (#200) by mikehostetler

  • react: add request-scoped tool controls by mikehostetler

  • add Igniter installer for automated setup (#169) by Nickcom4

  • add Igniter installer for automated package setup by Nickcom4

  • ai: add prompt builder and context lifecycle helpers (#188) by austin macciola

  • react: add set_thread for conversation session resumption (#184) by dbhowmick

  • react: add set_thread for conversation session resumption by dbhowmick

  • add effect policy gating and runtime tool-effect application (#172) by mikehostetler

  • reasoning: add effect policy and runtime tool-effect application by mikehostetler

Bug Fixes:

  • react: resolve lint issues by mikehostetler

  • unify ReAct stream liveness and reasoning continuity (#196) by mikehostetler

  • unify react stream liveness and reasoning continuity by mikehostetler

  • use req_llm keepalive callbacks by mikehostetler

  • test: align rebased stream timeout option names by mikehostetler

  • react: remove unreachable assistant context clause by mikehostetler

  • examples: restore weather tool compatibility by mikehostetler

  • add LICENSE file (#194) by mikehostetler

  • preserve OpenAI Responses continuation across tool loops (#192) by mikehostetler

  • preserve openai responses tool continuation by mikehostetler

  • preserve responses continuation in tool loops by mikehostetler

  • align react runner with quality checks by mikehostetler

  • raise and forward react max_tokens defaults by mikehostetler

  • install jido as dependency via installs field by Nickcom4

  • installer: satisfy doctor docs coverage by Nickcom4

  • react: defer thread replacement until terminal run state by dbhowmick

  • react: resolve dialyzer failures in context ops by dbhowmick

  • forward streaming option from agent macro to strategy config (#186) by Edgar Gomes

  • forward streaming option from agent macro to strategy config by Edgar Gomes

  • break compile-connected ReAct cycle from xref issue #181 (#182) by mikehostetler

  • react: break compile-connected ReAct dependency cycle by mikehostetler

  • add runtime state snapshots to tool execution contexts (#180) by mikehostetler

  • reasoning: inject runtime state snapshots into tool contexts by mikehostetler

  • react: normalize standalone tool state snapshot aliases by mikehostetler

  • react: remove unreachable snapshot fallback for dialyzer by mikehostetler

  • harden Thread inspect for truncated telemetry payloads (#178) by mikehostetler

  • effects: harden policy parsing and ToT policy wiring by mikehostetler

  • dialyzer: remove unreachable tuple branches by mikehostetler

  • reasoning: enforce deterministic tool effect ordering by mikehostetler

  • dialyzer: remove unreachable fallback in ToT ordering helper by mikehostetler

  • agent: preserve literal option evaluation after rebase by mikehostetler

  • effects: enforce constraint normalization and ToT fallback ordering by mikehostetler

  • reasoning: normalize canonical llm_result envelopes by mikehostetler

  • react: forward llm opts and http options end-to-end (#171) by mikehostetler

  • react: forward llm opts and http options end-to-end by mikehostetler

  • react: harden llm option normalization and provider option translation by mikehostetler

  • react: resolve dialyzer unreachable clauses in option mapping by mikehostetler

Refactoring:

  • examples: move examples to top-level folder (#190) by mikehostetler

  • examples: move examples into standalone project by mikehostetler

  • examples: keep examples in top-level folder by mikehostetler

  • ai: adopt Context API and deprecate Thread shim by dbhowmick

  • react: remove set_thread compatibility surface by dbhowmick

  • reasoning: remove internal agent_state snapshot alias by mikehostetler