All notable changes to req_managed_agents_host are documented here.
v0.1.0
Initial release: a durable, single-node session host over req_managed_agents.
Added
ReqManagedAgents.Host.send_message/3— the whole public surface. Finds, starts, or reattaches the live session for a caller-supplied external id, runs one turn to a terminal viaReqManagedAgents.Session.run/2, and returns the RMASessionResult.ReqManagedAgents.Host.Config— validated, struct-first host configuration (:provider,:handler,:storerequired; optional:agent/:environmenthandles,:idle_timeout_ms,:timeout_ms,:metadata).ReqManagedAgents.Host.Storebehaviour, with two implementations:Store.ETS— process-local, in-memory; gone when its owner process stops.Store.DETS— file-backed; the locator survives a full BEAM restart.
ReqManagedAgents.Host.Locator(+Locator.Record) — the durableexternal_id -> upstream identitymap that backs reattach and idle-detach.ReqManagedAgents.Host.SessionServer— a per-external-idGenServerdriving one turn at a time. Idle-detaches afteridle_timeout_ms; its child spec isrestart: :temporary, so both idle-detach and a crash simply end the process — the nextsend_message/3re-creates it and reattaches through theLocatorrather than being auto-restarted in place.ReqManagedAgents.Host.SessionSupervisor— aDynamicSupervisorholding one live session per external id; killing one server never affects a sibling.- An OTP application (the
mod:entry inmix.exs) starts the sessionRegistryand theSessionSupervisor.