# 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](../formats.md#source-headers-collections-and-resource-ids), [scoped-view guide](../consumers/pkg-promptkit.md#use-scoped-engine-views), and [discovery guide](../consumers/pkg-promptkit.md#discover-available-resources-and-collections). ## 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](../consumers/pkg-promptkit.md#run-explicit-smoke-diagnostics) and [API GoDoc](../../smoke_diagnostics.go). ## Breaking Changes And Upgrade Consumers upgrading from v0.15.0 should follow the [configuration and API migration guide](../consumers/configuration-migration.md): - 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](../../examples/go-library/prepare/main.go) demonstrates explicit composition, source-relative content, scoped preparation, and inventory without contacting a provider. After adapting configuration and API calls: ```sh 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](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.16.0/COPYRIGHT) | [LICENSE](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.16.0/LICENSE) | [ATTRIBUTION](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.16.0/docs/oss/attribution.md)