Files
promptkit/docs/releases/v0.11.0.md

77 lines
3.8 KiB
Markdown

# 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](../integrations/openai-compatible-chat.md).
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](../consumers/pkg-promptkit.md) and
[observation GoDoc](../../observations.go).
Promptkit is now licensed under LGPL-3.0-or-later. Review the
[license summary](../../README.md#license), [LGPL text](../../LICENSE), and
[accompanying GPL text](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/COPYING) before adoption or distribution.
Previously published releases and dependency licenses are unchanged.
## Upgrade
Update the dependency:
```sh
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](../consumers/pkg-promptkit.md)
for adoption and the [offline example](../../examples/go-library/observe/main.go)
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`, and
`RetryExhaustedError`, 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](../policy/release.md#catalog-profile-compatibility)
and [profile inventories](../formats.md#external-profile-inventories).