77 lines
3.8 KiB
Markdown
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).
|