You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[0.7.0] - 2026-05-20
Added
erllama:reset_session/2 recovery primitive. Forcibly drops a
sticky session's live KV cells and any in-flight #req{} on its
seq, then returns the seq slot to the idle pool. Uses a 5 s gen_statem:call timeout so it stays reachable when the engine's infinity-timeout hot path is wedged. Returns {ok, recovered | not_found} | {error, timeout}. Streaming
callers on the reset seq receive {erllama_error, Ref, engine_reset}.
n_seq_max and available_seqs keys in erllama:model_info/1. available_seqs is the live idle-list length; sticky-pinned seqs
count as unavailable. Lets callers detect saturation up front
instead of inferring it from sticky_busy errors.
Changed
nif_step now returns {error, {decode_failed, Rc}} (was bare {error, decode_failed}). The Rc integer surfaces the llama_decode return code (1, -1, 2, ...) so operators can tell
OOM from KV-cache corruption from sample rejection. The exception
path ({error, exception}) is unchanged.
[0.6.2] - 2026-05-19
Changed
Vendored llama.cpp bumped from b9119 to b9222. No erllama
source changes required; the C ABI surfaces we depend on (model
load/free, context, sampler chain, llama_n_batch, llama_state_seq_*) are unchanged.