• # Promptkit v0.12.0

    eric released this 2026-10-03 01:27:30 +00:00 | 165 commits to main since this release

    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

    Validated commit: 4b8169da28

    Downloads