• eric released this 2026-11-06 01:22:07 +00:00 | 0 commits to main since this release

    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.
    • 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.

    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:

    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.

    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 | LICENSE | ATTRIBUTION

    Downloads