81 lines
4.4 KiB
Markdown
81 lines
4.4 KiB
Markdown
# 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)
|