Tags give the ability to mark specific points in history as being important
-
v0.4.4
a280502c · ·elelem v0.4.4 — README names ctxscope The Logging section still pointed at common-go/scope, which this module stopped importing in v0.4.3 and which common-go removed in v0.4.0. No code changed.
-
v0.4.3
2f3ab311 · ·elelem v0.4.3 — log scope from ctxscope Log scope now comes from github.com/psyb0t/ctxscope rather than github.com/psyb0t/common-go/scope. Same API, new package name. common-go is still a dependency for its errors package. No change to elelem's own exported surface.
-
v0.4.2
2474ccae · ·elelem v0.4.2 — imported-by badge, refreshed weekly CI only; the library is unchanged. The README gains a count of importing packages linking to the repositories behind it. Blast radius, not adoption: the number is what tells you how much breaks when an exported name moves.
-
v0.4.1
8c7a20b0 · ·elelem v0.4.1 — README voice Docs only. No code, no API, no behaviour change. The README now reads like the rest of the psyb0t libraries. Also corrects a stale test/coverage claim (247 tests at 90%+, not 227 at 91%+), documents WithStreaming, and points at RunInto from the quick start. 'Trust boundaries' is now 'Shit that can bite you' — the anchor moved with it.
-
v0.4.0
dde2446e · ·elelem v0.4.0 — Run/RunInto, and streaming is a choice Breaking: Request.Complete, Request.Stream and Request.CompleteInto are gone. Run(ctx) and RunInto(ctx, &dst) are the whole launcher surface. Complete -> Run, CompleteInto -> RunInto, Stream(ctx, fn) -> OnDelta(fn).Run(ctx). The one behaviour change to check: Complete did not send tools even when the request carried them; Run sends whatever is configured. New: WithStreaming(bool) on client and request, for compat backends that cannot serve a streaming call. Driver gains Complete -- the same request with streaming off, feeding the finished response through the same delta callback, so callbacks, tool assembly and the Response are unchanged. A third-party driver must implement it. Capabilities.StreamingUnsupported reports a provider that cannot stream at all.
-
v0.3.1
4218a7e1 · ·elelem v0.3.1 — test layout only The v0.3.0 callback-chaining tests move from callback_chain_test.go, which names no source file, into request_test.go beside the rest of the Request tests. No API or behaviour change.
-
v0.3.0
4e96e37d · ·elelem v0.3.0 — callbacks chain instead of replace Registering the same On* twice now runs both handlers, in registration order, and the first error stops the chain. Previously the second registration silently discarded the first, which failed by absence: no error, no log, just a handler that stopped running. ResetCallback(kinds...) and ResetCallbacks() are how a caller replaces rather than adds. The two token-limit handlers keep replace semantics on purpose.
-
v0.2.0
9c3948f1 · ·elelem v0.2.0 — prompts become one immutable value; multimodal content Breaking: Message.Content is Content ([]Part), not string. Breaking: the system-message and history builders move off Request onto a new immutable Prompt, handed over in one WithPrompt call. Adds image, audio and document content parts, local refusal of content the model cannot read (ErrUnsupportedContent), the three new content capabilities, and WithCapabilityOverride for a driver aimed at a compatible gateway. Fixes cloneMessages not copying content, which with byte payloads left the engine transcript aliasing the caller's image buffer.
-
v0.1.3
77eb158f · ·elelem v0.1.3 — relicensed to MIT Was WTFPL. MIT is what every Go project here ships, and pkg.go.dev handles WTFPL poorly. The canonical MIT text verbatim, so both GitHub and pkg.go.dev detect it. Nothing copyleft is linked in: the GPL/MPL modules under vendor/ are tool-block dependencies for the linter and appear nowhere in the module's import graph. No code change.
-
v0.1.2
c5bda3ae · ·elelem v0.1.2 — README wording The opening line and one section heading borrowed their phrasing from another project's README. Both now say what this project needed to say instead. No code and no documentation content changed.
-
v0.1.1
91209648 · ·elelem v0.1.1 — documentation accuracy No API or behaviour change; every Go edit is a comment. Reattached two exported doc comments (Client.Driver, DefaultTokenCounter) that a stray // plus a blank line had detached, leaving them absent from pkg.go.dev. Corrected documentation that did not match the code: tool denial is a ToolCallDecision carrying a required CallID, not an error from OnToolCallStart or Tool.PreRun (both of which abort the run, and a CallID-less decision fails open); history limiting is also disabled when the output reserve is >= ContextSize; the custom limiting-handler example could orphan a tool result; ProviderError must be returned as a pointer; the token-counter resolution order includes the client tier; response repair needs no strict validation and skips refusals; tool-result size is bounded only when WithMaxToolResultTokens is set; INFO covers two events, not lifecycle. README reorganised around an above-the-fold example, a per-area table, a drivers section and a logging section.
-
v0.1.0
db8d09d3 · ·elelem v0.1.0 — provider-neutral Go engine for LLM requests First standalone release, extracted from the project it grew up in as an internal package. The engine is provider-neutral; the drivers are not. Application code holds Driver, Client and Request, and the OpenAI and Anthropic SDK types never leave their own packages. The conformance suite both shipped drivers run is part of the public surface, so a third driver gets the same contract checked. Covers streamed requests, a tool loop with bounded concurrency and per-tool timeouts (manual by default, automatic via WithAutoToolCalls), history limiting that treats an assistant tool call and its results as one indivisible unit, retries that stop the moment output begins, usage accounting that separates context from billed cost, and structured output validated against a schema derived from the caller's own type. Deliberately absent: storage, credential resolution, tool authorization, presentation, and any kind of agent framework.