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

4.8 KiB

Promptkit v0.16.0

This release adds explicit smoke diagnostics, configuration collections, namespace-scoped engine views, and expanded resource discovery. It also makes intentional breaking changes to configuration ownership and prompt selection. The minimum supported Go version remains 1.26.0.

Configuration Collections And Discovery

Applications can compose caller-selected collections of backends, profiles, and prompts. Collection resources have qualified identities such as support/answer; root resources retain unqualified identities. CollectionInput provides a convenience for mounting a selected ConfigKit input into a collection. Promptkit now uses ConfigKit v0.8.0, including its optional source specification header support.

Engine.WithNamespaces creates an immutable view with separate prompt, profile, and backend scopes for short caller-supplied IDs. Views share the underlying configuration, clients, capacity pools, and prepared-execution owner. Explicitly qualified IDs and configured references keep their exact identities.

ListProfiles and ListPrompts support namespace filters. New ListBackends, ListNamespaces, and ListCollections methods expose captured resource and collection inventories. See the collection format, scoped-view guide, and discovery guide.

Explicit Smoke Diagnostics

Engine.SmokeTest provides backend reachability, authentication, text inference, and structured-output inference diagnostics. Reports provide factual observations, timing, and available usage rather than an overall readiness verdict. Optional Boolean facts distinguish negative observations from unknown or inapplicable checks; matching a JSON schema does not prove that a provider enforced it.

A concluded diagnostic can report failure with a nil Go error. Invalid requests return ordinary errors, and caller cancellation can return partial observations with a recognizable context error. Diagnostics can contact providers and incur inference costs only when explicitly invoked; they are not automatic execution or release checks. See the smoke diagnostic guide and API GoDoc.

Breaking Changes And Upgrade

Consumers upgrading from v0.15.0 should follow the configuration and API migration guide:

  • Supply backend and profile definitions explicitly. Promptkit no longer bundles provider catalogs or the promptkit-openrouter-standard and promptkit-openrouter-auto profiles. Conventional backend names do not install definitions automatically. Applications choose and maintain their sources.
  • Convert version-keyed prompt mappings into one definition per prompt ID. Prompt version is now an optional descriptive label, not a selector. Choose deliberately which former definition to install.
  • Remove PromptVersion selectors from RunRequest, RequirementInspectionRequest, and SmokeTestRequest, where applicable. Change prompt inspection calls to InspectPrompt(ctx, promptID). Update code consuming version-bearing inspection, identity, result, or observation fields to handle optional labels, including nil and explicitly empty labels.
  • When moving resources into collections, update stored backend, profile, and diagnostic-default references to their intended qualified IDs. Mounting a source does not rewrite references; profile inheritance remains within its sibling mapping. Root configuration version, when supplied, is now a source specification header, distinct from descriptive resource labels.

The migration guide includes identity mappings and before/after prompt examples. The maintained offline example demonstrates explicit composition, source-relative content, scoped preparation, and inventory without contacting a provider.

After adapting configuration and API calls:

go get gitea.maximumdirect.net/eric/promptkit@v0.16.0

Correctness And Efficiency

Collection prompt materialization shares one lazy origin-metadata snapshot, avoiding repeated full metadata copies across collections. Internal prepared snapshots detach optional prompt labels. Smoke diagnostics preserve caller cancellation and report actual inference destinations and known-zero usage when no generation request was dispatched.

COPYRIGHT | LICENSE | ATTRIBUTION