Write release notes for v0.19.0
This commit is contained in:
80
docs/releases/v0.19.0.md
Normal file
80
docs/releases/v0.19.0.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Promptkit v0.19.0
|
||||
|
||||
This release completes two rounds of audit remediation, correcting error and
|
||||
diagnostic reporting and simplifying configuration, validation, and value
|
||||
ownership. It includes intentional compatibility changes for custom artifact
|
||||
readers, programmatic configuration sources, and schemas. The minimum supported
|
||||
Go version remains 1.27.0; ConfigKit remains at v1.1.0.
|
||||
|
||||
## Compatibility And Upgrade
|
||||
|
||||
Consumers upgrading from v0.18.0 should review these changes:
|
||||
|
||||
- A successful `ArtifactReader.Read` transfers ownership of the returned
|
||||
artifact and its mutable body storage to Promptkit. Custom readers must stop
|
||||
mutating returned values through retained aliases. Readers that reuse scratch
|
||||
buffers must return independent storage. Promptkit retains its defensive
|
||||
body copy, but that copy does not make concurrent buffer reuse safe. See the
|
||||
[extension guidance](../consumers/pkg-promptkit.md#extension-interfaces).
|
||||
- Provider maps passed through `ProfileSource` and `BackendSource` now use
|
||||
ConfigKit's native Mapping input forms directly: built-in scalars, `[]any`,
|
||||
and `map[string]any` recursively. Convert `json.Number` and typed containers
|
||||
explicitly to supported values, choosing numeric precision appropriate to
|
||||
the application. The former recursive compatibility conversion is removed.
|
||||
Runtime execution overrides retain their separate accepted-value behavior.
|
||||
- Schemas used for local validation and native structured output must be
|
||||
self-contained. Move externally referenced definitions into the root document
|
||||
and use internal references or explicit schema IDs. References requiring
|
||||
another file or network resource, or relying on the source filename as a base,
|
||||
fail during preparation. Promptkit does not bundle external schemas. See the
|
||||
[schema reference](../formats.md#schemas).
|
||||
|
||||
Prepared schemas no longer inherit the depth and node limits used when copying
|
||||
runtime provider values. Schemas previously rejected solely by those incidental
|
||||
limits may now be accepted; decoder/compiler checks and the self-contained
|
||||
schema requirement still apply.
|
||||
|
||||
No configuration-format migration is required from v0.18.0. After addressing
|
||||
any affected integrations:
|
||||
|
||||
```sh
|
||||
go get go.maximumdirect.net/promptkit@v0.19.0
|
||||
```
|
||||
|
||||
## Errors And Diagnostics
|
||||
|
||||
Public errors and terminal observations now preserve the category of the
|
||||
operation that failed even when an injected collaborator returns an error from
|
||||
another Promptkit operation. Underlying causes remain available through
|
||||
`errors.Is` and `errors.As`, without repeatedly duplicating nested cause trees.
|
||||
|
||||
Built-in generation preserves response-body read failures separately from
|
||||
malformed response content, and failures during request preparation are
|
||||
distinguished from dispatched attempts.
|
||||
|
||||
OpenRouter authentication diagnostics bound response recognition to 1 MiB.
|
||||
An oversized HTTP 200 response reports
|
||||
`SmokeTestReasonAuthenticationResponseLimitExceeded`, leaving credential
|
||||
acceptance unknown. Cancellation during the read remains an interruption.
|
||||
Consumers that enumerate diagnostic reasons should handle the new reason;
|
||||
see the [diagnostic integration contract](../integrations/openai-compatible-chat.md#explicit-smoke-diagnostics).
|
||||
|
||||
## Internal Simplification And Ownership
|
||||
|
||||
Prompt lookup and rendering now consistently use captured configuration, and
|
||||
smoke syntax and schema checks share the prepared output-validation lifecycle.
|
||||
Unused routing defaults, alternate private workflows, and duplicate wire
|
||||
representations have been removed.
|
||||
|
||||
Provider-setting resolution, inspection, prepared details, and smoke reports
|
||||
avoid redundant validation and copying of already accepted values. Prepared
|
||||
execution shares one private redacted metadata snapshot while preserving
|
||||
independent caller-visible values. Provider values are detached before custom
|
||||
JSON encoders run, protecting retained metadata from encoder-side mutation.
|
||||
|
||||
Requirement analysis, namespace-filtered listings, and repair-feedback
|
||||
construction also avoid unnecessary traversal and temporary allocation. These
|
||||
changes preserve existing request isolation and execution behavior without
|
||||
introducing new performance guarantees.
|
||||
|
||||
[COPYRIGHT](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/v0.19.0/COPYRIGHT) | [LICENSE](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/v0.19.0/LICENSE) | [ATTRIBUTION](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/v0.19.0/docs/oss/attribution.md)
|
||||
Reference in New Issue
Block a user