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

4.1 KiB

Promptkit v0.12.0

This release replaces Promptkit's configuration loader with ConfigKit and migrates maintained catalogs to keyed /v3 assets. It intentionally changes the public construction API and configuration format.

Summary

Backends, profiles, and versioned prompts now share one layered configuration snapshot built when NewEngine is called. ConfigKit supplies composition, inheritance, presence, and source history; Promptkit validates the final effective definitions and captures prompt content and templates. Consumers can inspect the captured configuration explicitly without triggering a reload.

Compatibility

This is an incompatible minor release under Promptkit's pre-1.0 versioning policy. The former source options, Config.PromptDir, Config.ProfileDir, and the old profile/backend convenience values have been removed. Configuration documents now use literal keys beneath backends, profiles, and prompts; embedded id/version fields and base_profile are no longer accepted. Source groups compose strictly within a group and overlay in the supplied order. Explicit zero, false, empty, and null values can now differ from omission; maps overlay recursively, and an empty map does not clear an inherited map.

All final definitions, including unused ones, are validated during engine construction. Prompt text and static templates are captured then; an existing engine does not automatically reload changed configuration or message files. Request artifacts, schemas, credentials, and provider operations retain their runtime boundaries. See the format reference for the current configuration contract and the consumer migration guide for API and source-selection changes.

Maintained OpenRouter and Rakestrawhome catalogs are selected as /v3 modules, both at v3.20260930.0. Their asset format changed; consumers that read catalog assets directly must adopt the keyed format. The maintained Promptkit profile IDs remain available under the catalog compatibility policy, which does not promise fixed profile data.

Upgrade

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

Replace removed source and backend registration options with Config.Sources, explicitly ordered ConfigKit underlays, and optionally a highest-priority main input. Use DirectoryInputs or FilesystemInputs for selected directories, ProfileSource and BackendSource for typed programmatic values, or configkit.Mapping for explicit null and combined documents. Move profile base_profile to extends and embedded identities to mapping keys. Review zero/false/null values and any assumptions that replacing a model or backend discards unrelated explicit settings. Rebuild the engine when definitions or referenced message files change. The consumer guide provides the migration details and maintained examples.

Changes

  • Add ConfigKit v0.5.0 as the configuration boundary and consume released OpenRouter and Rakestrawhome /v3 catalog modules.
  • Add keyed backend, profile, and prompt definitions with final-value domain validation, explicit presence/null behavior, and source-relative content capture.
  • Add ConfigurationSources, directory discovery helpers, programmatic profile/backend source builders, and read-only configuration inspection.
  • Preserve execution workflows while rendering captured templates, applying backend defaults after inheritance, and honoring explicit suppression of provider settings.
  • Remove superseded loader, catalog preflight, and inheritance machinery; update examples, format guidance, and internal documentation.

COPYRIGHT | LICENSE | ATTRIBUTION