3.8 KiB
Promptkit v0.11.0
This release adds reliable, observable model execution and changes Promptkit's license to LGPL-3.0-or-later.
Summary
- Built-in model calls can recover from selected transient HTTP failures.
- Optional execution observations report attempts, timing, outcomes, and known token usage, including work completed before a run fails.
- Public errors distinguish transport failures, malformed responses, and retry exhaustion without parsing diagnostic text.
Compatibility
The built-in client now defaults to two additional transient attempts. This can
increase latency, request counts, and cost; retries do not guarantee exactly-once
generation. Injected LLMClient implementations retain their own retry policy
and are not automatically replayed. Existing generation timeouts apply per
attempt, while the caller context governs the complete operation. See the
provider integration contract.
Public retry and observation controls are additive. Existing successful-result
usage semantics remain unchanged, and operational failures still return no
partial RunResult. Observations distinguish unknown usage from reported zero;
they are not a complete billing ledger. See the
consumer guide and
observation GoDoc.
Promptkit is now licensed under LGPL-3.0-or-later. Review the license summary, LGPL text, and accompanying GPL text before adoption or distribution. Previously published releases and dependency licenses are unchanged.
Upgrade
Update the dependency:
go get gitea.maximumdirect.net/eric/promptkit@v0.11.0
To retain single-attempt behavior for built-in generation, set
Config.TransientRetries to a pointer to zero. RunRequest.TransientRetries
can override the engine choice per request. Review any existing application or
HTTP-transport retry loops to avoid unintentionally multiplying attempts.
Transient retries and structural repairs have separate budgets; provide a
caller deadline when a total execution time limit is needed.
Observation is opt-in through RunRequest.Observer, including for prepared
execution. Callbacks are synchronous; shared observers must support concurrent
runs. Injected clients can supply GenerateResponse.UsagePresence to explicitly
report known zero counts. No observer or usage-presence changes are required
for existing consumers. See the consumer guide
for adoption and the offline example
for a structured proposal-and-assessment workflow.
Changes
- Centralized built-in retry coordination with cancellable backoff and provider retry timing. Retries and structural repair share existing backend capacity; backoff releases active permits without releasing logical run admission.
- Added
ErrTransport,ErrMalformedResponse,ErrRetriesExhausted, andRetryExhaustedError, retaining applicable underlying error identities. - Added request-scoped lifecycle observations and presence-aware token accounting for ordinary and prepared execution, without recording prompt/response bodies.
- Isolated delegated operations' observation state and made injected-client attempt classifications consistent with terminal classifications.
- Added an offline observation example and regression coverage for retry, repair, capacity, error, and observation interactions.
- Adopted LGPL-3.0-or-later and streamlined the documented local release process.
Backend catalog selections are unchanged from v0.10.0: OpenRouter
v2.20260922.1 and Rakestrawhome v2.20260922.0. See the
catalog compatibility policy
and profile inventories.