CHANGELOG

View Source

v2.2.0 (2026-03-29)

Features:

  • add partitioned multi-tenancy support (#218) by mikehostetler

  • rebuild multi-tenancy around partitioned pods by mikehostetler

  • reduce default log verbosity (#219) by dl-alexandre

  • add first-class orphan lifecycle and adoption (#213) by mikehostetler

  • add first-class orphan lifecycle and adoption (#212) by mikehostetler

  • add first-class orphan lifecycle and adoption by mikehostetler

Bug Fixes:

  • remove invalid doctest-style doc examples (#227) by mikehostetler

  • reject instance manager lifecycle opts in SpawnAgent (#222) by mikehostetler

  • reject instance manager lifecycle opts in SpawnAgent by mikehostetler

  • reduce default log verbosity (noisy logs) by dl-alexandre

  • align action logging with instance config (#217) by mikehostetler

  • observability: align action logging with instance config by mikehostetler

  • observability: align action telemetry with log args by mikehostetler

  • agentserver: always wrap parent-down reason as {:shutdown, } by mikehostetler

  • thread: handle missing thread in filter_by_kind (#211) by Julian Scheid

  • thread: handle missing thread in filter_by_kind by Julian Scheid

  • thread: tighten filter_by_kind guards by Julian Scheid

  • agentserver: always wrap parent-down reason as {:shutdown, } (#207) by Julian Scheid

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

  • pass details as keyword to execution_error by Julian Scheid

  • preserve execution error details compatibly by Julian Scheid

  • agent: correct plugin_schedules typespec (#204) by CptnKirk

  • restore git_ops changelog marker placement by mikehostetler

Refactoring:

  • formalize pod extraction seams (#233) by mikehostetler

  • harden SpawnAgent directive validation by mikehostetler

  • agent: pass jido instance via strategy context by mikehostetler

  • harden runtime store ownership and stress adoption by mikehostetler

v2.1.0 (2026-03-14)

Features:

  • scheduler: durable in-house cron scheduler for Jido 2.1 (#181) by mikehostetler

  • scheduler: in-house cron engine with durable instance replay by mikehostetler

  • plugin: support static subscriptions and fix documentation (#198) by Iulian Costan

  • plugin: support static subscriptions and fix documentation by Iulian Costan

  • storage: add Redis storage adapter (#184) by austin macciola

  • storage: add Redis storage adapter by austin macciola

Bug Fixes:

  • ci: resolve lint guard and dialyzer issues by mikehostetler

  • finalize durable scheduler hardening and dialyzer cleanup by mikehostetler

  • scheduler: harden durable cron replay and callbacks by mikehostetler

  • scheduler: restore cron replay invariants by mikehostetler

  • misplaced end in example (#201) by Jan Pieper

  • sensor: resolve via refs for subscription signals (#200) by mikehostetler

  • storage: harden redis adapter and instance integration by austin macciola

  • Improve typespec precision (#196) by Philip Munksgaard

  • preserve plugin spec structs in agents (#188) by mikehostetler

  • normalize StopChild shutdown reasons by mikehostetler

  • align StopChild with SpawnAgent restart semantics by mikehostetler

  • util: use Code.ensure_compiled to resolve action validation orde… (#183) by caike

  • util: use Code.ensure_compiled to resolve action validation ordering by caike

  • error: make Jido.Error splode conversions reliable by Pascal Charbonneau

  • observe: harden sync and async tracer span semantics (#178) by mikehostetler

  • observe: harden tracer sync and async span semantics by mikehostetler

  • observe: prevent cross-process scoped callback re-execution by mikehostetler

Refactoring:

  • scheduler: simplify runtime registration by mikehostetler

2.0.0 - 2026-02-22

Changed

  • Promote 2.0.0-rc.5 to stable 2.0.0
  • Require Elixir ~> 1.18
  • Bump ecosystem deps to stable ranges: jido_action ~> 2.0, jido_signal ~> 2.0

Fixed

  • Restore compile-time signal_routes behavior while preserving callback compatibility (#170)
  • Prevent loopback emit from redispatching to the current agent in AgentServer (#171)

Tooling

  • Align Igniter setup/docs with the instance-scoped API

2.0.0-rc.5 - 2026-02-16

Added

  • Observability V2: per-instance debug & telemetry configuration (#129)
  • Always-on emit_event helper for lifecycle observability (#141)
  • Event contracts and lifecycle observability docs (#140)
  • Directive struct included in agent_server telemetry metadata (#134, #142)
  • RunInstruction directive and pure FSM cmd (#139)
  • Prevent synchronous signal-call blocking in AgentServer (#150)
  • Declarative schedules DSL for cron (#137)

Changed

  • BREAKING: Unify persistence on Jido.Persist and Jido.Storage (#156)
  • Centralize defaults and validate observability config
  • Harden InstanceManager registry and key semantics (#156)
  • Share instruction tracking helpers in strategy layer (#166)
  • Use shared templates in Igniter generator tasks (#165)
  • Unify entry normalization across storage adapters (#164)
  • Extract shared signal collector test helper (#167)

Fixed

  • Normalize timeout diagnostics in await_all/await_any (#168)
  • Cancel timed-out completion waiters in AgentServer (#162)
  • Preserve file read errors during append (#163)
  • Return normalized errors for corrupt entry logs (#161)
  • Avoid atom creation from persisted journal kinds (#160)
  • Restore agent metadata export for discovery (#159)
  • Return routing error struct for unknown signals (#155)
  • Normalize refinement errors for Zoi validation in plugins
  • Make ETS append_thread atomic and revision-safe (#150)
  • Send jido.agent.stop when stopping child (#138)
  • Normalize id in both constructor paths to guarantee UUID7 (#132)
  • Fix silent cron tick failure (#137)
  • Normalize util and storage-facing error contracts (#153)
  • Offload runtime dispatch from sensor process (#152)

Dependencies

  • Bump jido_action and jido_signal to 2.0.0-rc.5

2.0.0-rc.4 - 2026-02-06

Added

  • Memory plugin: implement Jido.Memory as default plugin under __memory__ key (#125)
  • Identity plugin: add Jido.Identity as default agent plugin (#126)
  • Plugin singleton flag in plugin config schema (#120)
  • Plugin signal middleware improvements (#123)

Changed

  • Update signal_routes to accept context parameter (#121)

Fixed

  • Wire on_restore/2 into generated restore/2 callback (#122)

Tests & Chores

  • Add memory plugin and default plugins persistence examples (#127)
  • Organize example tests into subdirectories (#124)
  • Add Jido.Plugin to doctor ignore_modules for macro-generated defs
  • Remove AI cruft and build artifacts

Dependencies

  • Bump jido_action and jido_signal to 2.0.0-rc.4

2.0.0-rc.3 - 2026-02-04

Added

  • cmd/3 to support per-action timeout opts (#117)
  • Unified persistence layer for agent checkpoints and thread journals (#110)
  • Telemetry infrastructure with span tracking and metrics (#109)
  • Debug helpers and improved timeout errors (#111)

Changed

Fixed

  • Dialyzer/Credo: add :mix to PLT, remove unnecessary ignores (#118)

Dependencies

  • Bump jido_action and jido_signal to 2.0.0-rc.3
  • Bump ex_doc from 0.40.0 to 0.40.1 (#112)

2.0.0-rc.2 - 2025-01-30

Changed

  • Zoi Schema Migration: Convert remaining structs to use Zoi schemas for consistent validation (#106)
  • Macro Decomposition: Decompose large macros and improve code organization (#101)
  • Sensor Simplification: Simplify handle_event/2 to directive-only format (#108)

Fixed

  • Address code quality issues from codebase review (#107)
  • Improve process lifecycle handling and test reliability (#100)

Dependencies

  • Bump jido_action and jido_signal to 2.0.0-rc.2

2.0.0 (Architecture Preview Notes) - 2025-12-31

Added

  • Instance-Scoped Supervisors: Jido now uses user-owned, instance-scoped supervisors instead of auto-started global singletons
  • Jido Supervisor Module: New Jido module acts as a Supervisor managing per-instance Registry, TaskSupervisor, and AgentSupervisor
  • Agent Lifecycle API: New functions Jido.start_agent/3, Jido.stop_agent/2, Jido.whereis/2, Jido.list_agents/1
  • Test Isolation: New JidoTest.Case module for automatic test isolation with unique Jido instances
  • Per-Instance Scheduler: Scheduler can now be scoped to a Jido instance
  • Multi-Agent Coordination: New Jido.await/3 and Jido.await_child/4 for coordinating agent completion
  • Discovery Delegates: Discovery functions accessible via main Jido module

Breaking Changes

  • Explicit Supervision: Users must now add {Jido, name: MyApp.Jido} to their supervision tree
  • Agent Start: Use Jido.start_agent(instance, agent, opts) instead of AgentServer.start/1
  • Instance Option: Pass jido: MyApp.Jido option when starting agents directly

Changed

  • Refactored from global singletons to instance-scoped architecture
  • Agents now register in instance-specific Registry
  • TaskSupervisor and AgentSupervisor are per-instance
  • Updated all examples to use new 2.0 patterns

Migration from 1.x

See the Migration section in README.md for upgrade instructions.


Unreleased - 2025-08-29

Added

  • Modular API Architecture: Refactored monolithic Jido.ex module into specialized modules:
    • Jido.Agent.Lifecycle - Agent lifecycle management (start, stop, restart, clone operations)
    • Jido.Agent.Interaction - Agent communication (signals, instructions, requests)
    • Jido.Agent.Utilities - Helper functions (via/2, resolve_pid/1, generate_id/0, log_level/2)
  • Comprehensive Test Helpers: New JidoTest.Support module with common test utilities:
    • Registry management helpers (start_registry!/0)
    • Agent lifecycle helpers (start_basic_agent!/1, automatic cleanup)
    • Signal and state assertion helpers
    • Consistent test patterns across all modules
  • Table-Driven Test Coverage: Implemented data-driven delegation tests for maintainable 100% API coverage
  • Performance-Optimized Test Suite: Consolidated and streamlined tests with @tag :slow for optional performance tests

Breaking Changes

  • None: All public API functions remain fully backward compatible through delegation in main Jido module

Changed

  • Improved Test Performance: ~40% reduction in test execution time through:
    • Elimination of redundant test cases
    • Reduced UUID generation from thousands to ~110 total
    • Parameterized test scenarios instead of copy-paste patterns
    • Common setup helpers reducing boilerplate
  • Enhanced Test Maintainability:
    • Centralized test helpers eliminate code duplication
    • Table-driven tests make adding new API methods trivial
    • Consistent patterns across all test files
  • Better Resource Management: Automatic test cleanup prevents resource leaks and test isolation issues

Fixed

  • Test Suite Optimization: Removed redundant tests while maintaining high coverage (68.4% overall, >80% for key modules)
  • Code Quality: Addressed Credo warnings in test files (replaced length/1 with Enum.empty?/1)

Previous - 2025-08-25

Added

  • Automatic Action Registration: Skills can now declare required actions in their configuration using the actions field, which are automatically registered when the skill is mounted
  • Module Path Refactoring: Moved action modules from Jido.Actions.* to Jido.Tools.* namespace for better alignment with jido_action library
  • Default Skills: Agent server now uses default skills (Jido.Skills.Basic and Jido.Skills.StateManager) instead of hardcoded actions

Breaking Changes

  • Action module paths: All action modules moved from Jido.Actions.* to Jido.Tools.* to align with the jido_action library
  • Runner system removed: The separate Jido.Runner.Simple and Jido.Runner.Chain modules have been deprecated. Agents now use built-in execution logic that processes one instruction at a time (equivalent to the former Simple Runner behavior)

Changed

  • Skill configuration: Skills can now declare required actions using the actions field for automatic registration
  • Agent options: Both actions: and skills: options are supported, with skills providing the preferred declarative approach

Fixed

  • Task update action now only updates provided fields instead of overwriting with nil values
  • State manager update action now uses :update operation instead of :set for proper semantic behavior
  • Improved error handling for action registration failures

1.1.0-rc.1 - 2025-02-18

  • Address open Credo Errors
  • Add documentation
  • Clean up README in prep for 1.1 release

1.1.0-rc - 2025-02-08

  • Stateful Agents