From b01180ea8316d0a701a6f8f147e7f1c81e24b3d5 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sun, 11 Oct 2026 01:35:09 +0000 Subject: [PATCH] Upgrade ConfigKit, ReleaseKit, and PromptKit --- .woodpecker/release.yml | 1 + docs/config.md | 8 ++--- docs/integrations/openai-compatible-llm.md | 2 +- docs/oss/attribution.md | 18 +++++------ docs/release.md | 12 ++++--- docs/roadmap/imports.md | 37 +++++++++++++++------- go.mod | 6 ++-- go.sum | 12 +++---- scripts/release_test.go | 2 +- 9 files changed, 58 insertions(+), 40 deletions(-) diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml index ecc7d4c..522d20f 100644 --- a/.woodpecker/release.yml +++ b/.woodpecker/release.yml @@ -45,5 +45,6 @@ steps: -o "$${bootstrap_dir}/releasekit" "$${releasekit_module}/cmd/releasekit" "$${bootstrap_dir}/releasekit" ci-deliver \ --repo "$${CI_WORKSPACE}" \ + --prepared \ --commit "$${CI_COMMIT_SHA}" \ "$${CI_COMMIT_TAG}" diff --git a/docs/config.md b/docs/config.md index 6066f43..69fdd78 100644 --- a/docs/config.md +++ b/docs/config.md @@ -29,8 +29,8 @@ native sibling inheritance before typed decoding. Any input mapping may use `extends: `; the child keeps its key, inherits parent settings, and overrides them with its own settings. Selected overlay and CLI values therefore participate in inheritance at their normal precedence. The generic syntax and -resolution rules are defined by ConfigKit v0.5.0's -[sibling inheritance contract](https://gitea.maximumdirect.net/eric/ConfigKit/src/tag/v0.5.0/docs/config.md#sibling-inheritance). +resolution rules are defined by ConfigKit v0.7.1's +[sibling inheritance contract](https://gitea.maximumdirect.net/eric/ConfigKit/src/tag/v0.7.1/docs/config.md#sibling-inheritance). `extends` is reserved structural input in base files, imports, overlays, and other application input mappings, including mapping values supplied by explicit @@ -107,7 +107,7 @@ Presence matters. Explicit `temperature: 0` is sent as zero; omission leaves it unspecified; null suppresses an inherited temperature. Other fields have their own native null and omission rules. Provider `extra_params` maps merge recursively, and a null provider value is sent as JSON null. See the pinned -[PromptKit format reference](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.12.0/docs/formats.md) +[PromptKit format reference](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.14.0/docs/formats.md) for the complete field semantics. Operator documents can also override an embedded prompt/version, including its @@ -128,7 +128,7 @@ the native presence rules before deploying. Select a root whose final definitions have valid backend references; eager validation applies even to unselected definitions. See the complete maintained [local](../examples/minimal-config.yml) and [service](../examples/production-config.yml) examples and the pinned -[consumer migration guide](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.12.0/docs/consumers/pkg-promptkit.md#migrate-from-the-previous-configuration-api). +[consumer migration guide](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.14.0/docs/consumers/pkg-promptkit.md#migrate-from-the-previous-configuration-api). This incompatible profile-format migration is intended for an Audita major release; no automatic file conversion is provided. diff --git a/docs/integrations/openai-compatible-llm.md b/docs/integrations/openai-compatible-llm.md index 448d1dc..8121963 100644 --- a/docs/integrations/openai-compatible-llm.md +++ b/docs/integrations/openai-compatible-llm.md @@ -19,7 +19,7 @@ failures; explicit zero makes one attempt. `llm.repair_attempts` counts additional generations for schema-invalid model output. The operation timeout covers preparation, capacity waiting, retries, generation, and repair. Caller cancellation or an earlier deadline also applies. See [configuration](../config.md#settings) -for defaults and [PromptKit v0.12.0's consumer contract](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.12.0/docs/consumers/pkg-promptkit.md) +for defaults and [PromptKit v0.14.0's consumer contract](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.14.0/docs/consumers/pkg-promptkit.md) for the pinned protocol and retry details. A model operation that exhausts structural repair, a live-parent local operation diff --git a/docs/oss/attribution.md b/docs/oss/attribution.md index c49c06a..a1616e5 100644 --- a/docs/oss/attribution.md +++ b/docs/oss/attribution.md @@ -24,7 +24,7 @@ License and notices: [CC BY-SA 4.0](licenses/CC-BY-SA-4.0.txt) | ## ConfigKit -Selected module: `gitea.maximumdirect.net/eric/ConfigKit` at `v0.5.0`. +Selected module: `gitea.maximumdirect.net/eric/ConfigKit` at `v0.7.1`. Copyright (C) 2026 Eric Rakestraw @@ -32,13 +32,13 @@ SPDX-License-Identifier: LGPL-3.0-or-later License and notices: [LGPL v3](licenses/LGPL-3.0.txt) | [GPL v3](licenses/GPL-3.0.txt) | -[COPYRIGHT](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/dc09959cca4e105f49ec316c6d4ba585bd2340bd/COPYRIGHT). +[COPYRIGHT](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/6fffde4af8f31f99d3ee295c426eb3234cb0fb77/COPYRIGHT). -[Source](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/dc09959cca4e105f49ec316c6d4ba585bd2340bd). +[Source](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/6fffde4af8f31f99d3ee295c426eb3234cb0fb77). ## ReleaseKit -Selected module: `gitea.maximumdirect.net/eric/ReleaseKit` at `v0.3.0`. +Selected module: `gitea.maximumdirect.net/eric/ReleaseKit` at `v0.4.1`. Copyright (C) 2026 Eric Rakestraw @@ -46,9 +46,9 @@ SPDX-License-Identifier: LGPL-3.0-or-later License and notices: [LGPL v3](licenses/LGPL-3.0.txt) | [GPL v3](licenses/GPL-3.0.txt) | -[COPYRIGHT](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/e43df4416e0ed987349b2ea04a2c68c25e552772/COPYRIGHT). +[COPYRIGHT](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469/COPYRIGHT). -[Source](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/e43df4416e0ed987349b2ea04a2c68c25e552772). +[Source](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469). ## Go runtime and standard library @@ -164,7 +164,7 @@ License and notices: [Apache 2.0](licenses/Apache-2.0.txt). ## PromptKit -Selected module: `gitea.maximumdirect.net/eric/promptkit` at `v0.12.0`. +Selected module: `gitea.maximumdirect.net/eric/promptkit` at `v0.14.0`. Copyright (C) 2026 Eric Rakestraw @@ -172,9 +172,9 @@ SPDX-License-Identifier: LGPL-3.0-or-later License and notices: [LGPL v3](licenses/LGPL-3.0.txt) | [GPL v3](licenses/GPL-3.0.txt) | -[COPYRIGHT](https://gitea.maximumdirect.net/eric/promptkit/src/commit/4b8169da286917fde7875425bb32b799b12c6af3/COPYRIGHT). +[COPYRIGHT](https://gitea.maximumdirect.net/eric/promptkit/src/commit/143c6e9b3a675872117b0471e2ff8bcb25055a54/COPYRIGHT). -[Source](https://gitea.maximumdirect.net/eric/promptkit/src/commit/4b8169da286917fde7875425bb32b799b12c6af3). +[Source](https://gitea.maximumdirect.net/eric/promptkit/src/commit/143c6e9b3a675872117b0471e2ff8bcb25055a54). ## Promptkit OpenRouter Catalog diff --git a/docs/release.md b/docs/release.md index af79974..3780396 100644 --- a/docs/release.md +++ b/docs/release.md @@ -111,11 +111,15 @@ an alternate `-modfile`. The bootstrap executable and temporary files remain outside the tagged source. The workflow runs with the selected Go 1.26.8 image, `GOWORK=off`, and `GOTOOLCHAIN=local`. +Delivery uses prepared-checkout mode to verify the existing tag, HEAD, and clean +worktree without repeating the bootstrap's fetch and checkout. + The resulting executable receives: ```sh "$${bootstrap_dir}/releasekit" ci-deliver \ --repo "$${CI_WORKSPACE}" \ + --prepared \ --commit "$${CI_COMMIT_SHA}" \ "$${CI_COMMIT_TAG}" ``` @@ -127,8 +131,8 @@ after source publication; its status and logs report delivery progress or failure. ReleaseKit handles content-aware retries and retained-artifact recovery. See -the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/publish.md) -and [delivery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/delivery.md) +the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.4.1/docs/consumers/publish.md) +and [delivery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.4.1/docs/consumers/delivery.md) for those mechanics. A delivery failure does not undo a confirmed source release. Retry the same immutable tag after resolving the reported state; do not replace published files or a checksum manifest. @@ -141,11 +145,11 @@ captured authoritative endpoint and publication state. Resolve the result against that endpoint before retrying. An exact remote tag-object match, with its source available on remote `main`, can confirm publication. If the remote state cannot be read, the result remains unknown; do not remove or replace the -tag while uncertain. Follow the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/publish.md) +tag while uncertain. Follow the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.4.1/docs/consumers/publish.md) for object-level recovery details. A source-release success and artifact-delivery status are separate. For a partial or uncertain delivery, inspect the job output and follow the pinned -[delivery recovery guidance](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/delivery.md). +[delivery recovery guidance](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.4.1/docs/consumers/delivery.md). A source or published-content correction requires a new appropriate version; leave the original tag and its contents intact. diff --git a/docs/roadmap/imports.md b/docs/roadmap/imports.md index 0f2b32a..5c5abc3 100644 --- a/docs/roadmap/imports.md +++ b/docs/roadmap/imports.md @@ -1,8 +1,8 @@ # Library Updates: ConfigKit, ReleaseKit, and PromptKit **Reviewed:** 2026-10-11. -**Status:** Reviewed and recommended; dependency upgrades and optional feature -adoption are not implemented by this document. +**Status:** Dependency upgrades complete. Optional inspection APIs remain unused +until a concrete application need arises. ## Scope and Reviewed Baseline @@ -12,7 +12,7 @@ the work needed to adopt them. Audita's baseline is commit The local library checkouts were clean and matched the released source commits; the remote annotated tags were checked against their peeled commits. -| Library | Current import | Recommended import | Full reviewed upstream commit | +| Library | Reviewed baseline import | Adopted import | Full reviewed upstream commit | | --- | --- | --- | --- | | ConfigKit | v0.5.0 | v0.7.1 | `6fffde4af8f31f99d3ee295c426eb3234cb0fb77` | | ReleaseKit | v0.3.0 | v0.4.1 | `2d5a8110c61e31daf8698766114ae305d0e0e469` | @@ -233,13 +233,26 @@ performance gains, or operator-facing optional features. Actual implementation should validate its final changed candidate and selected CI behavior. Live delivery remains separate from release completion under the existing policy. -## Open Decisions +## Selected Scope and Completion Record -No decision blocks the basic dependency upgrade. Whether to expose configuration -comparison, definition listings, or requirement diagnostics remains optional. -Recommend upgrading first and designing the chosen operator features separately: -the current API additions are independently useful, and a dependency refresh -need not define a new CLI. A viable alternative is one combined feature effort -that upgrades dependencies and adds selected inspection commands; that can reduce -repeat integration work, but requires decisions about selection syntax, report -scope, disclosure, and command ownership before implementation. +The user selected a simple version upgrade, deferring inspection API exposure +until a concrete need arises. ConfigKit v0.7.1, ReleaseKit v0.4.1, and PromptKit +v0.14.0 are adopted together. The dependency/checksum changes retain Go 1.26.0, +the existing catalogs, and the current application APIs and configuration format. +Attribution and canonical upstream references now identify the selected releases. +CI delivery uses `--prepared`, with the runbook and existing workflow test updated. + +Implementation validation on Go 1.26.8 Linux amd64 passed: + +- The complete offline `go test -count=1 ./...` suite. +- The actual module-selected ReleaseKit builder for Linux amd64 and arm64, using + the disposable build identifier `v0.0.0`; its native injected-version check + passed and produced `audita v0.0.0`. +- Local, inheritance, service, and service-testing-overlay configuration examples, + using a synthetic service credential. +- Selected source revisions, unchanged upstream grants/license texts, and updated + upstream file-link destinations. + +Build artifacts remained outside the repository. No source tag, hosted delivery, +or inference call was performed. Live CI delivery remains unobserved and separate +from this completed upgrade and source-release completion. diff --git a/go.mod b/go.mod index dc1ef12..dd20b55 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module gitea.maximumdirect.net/eric/audita go 1.26.0 require ( - gitea.maximumdirect.net/eric/ConfigKit v0.5.0 - gitea.maximumdirect.net/eric/ReleaseKit v0.3.0 - gitea.maximumdirect.net/eric/promptkit v0.12.0 + gitea.maximumdirect.net/eric/ConfigKit v0.7.1 + gitea.maximumdirect.net/eric/ReleaseKit v0.4.1 + gitea.maximumdirect.net/eric/promptkit v0.14.0 golang.org/x/mod v0.40.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index a7e5b78..5116123 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,9 @@ -gitea.maximumdirect.net/eric/ConfigKit v0.5.0 h1:2KwG10+kApWM3avOoYA+p768xcbHUp7tQ2rqizBNpyg= -gitea.maximumdirect.net/eric/ConfigKit v0.5.0/go.mod h1:tYWpsrbLyu05r8+1MapWp5fN6ZrX9I8hU2xEPedYmYk= -gitea.maximumdirect.net/eric/ReleaseKit v0.3.0 h1:aTMn+50MEpHpHI2RoCCmJYsy7Ohrpa+RSva63Kq0/tU= -gitea.maximumdirect.net/eric/ReleaseKit v0.3.0/go.mod h1:LVodqNQ3OIKv9NBq+fFeyMByd1lHY25YOmmpah/NaNI= -gitea.maximumdirect.net/eric/promptkit v0.12.0 h1:oIFWEg6GPxtmX3Plqv0euP+FnK1LCk/t4xDy6oKCpP4= -gitea.maximumdirect.net/eric/promptkit v0.12.0/go.mod h1:pFOOy5v1zH17stEi9rmHYmfbuLjnfVMcUhfmk+4VtJY= +gitea.maximumdirect.net/eric/ConfigKit v0.7.1 h1:q3HrX4WWCPt1WfMydqFEaAmCf9s6Dq+vknJj0C/mdcI= +gitea.maximumdirect.net/eric/ConfigKit v0.7.1/go.mod h1:C82sbyKHYMV1OwaD2GJanFrwTfcZfjlW2JsGze5b0kA= +gitea.maximumdirect.net/eric/ReleaseKit v0.4.1 h1:Qn+mdebYOzCVCEXgCbuGSO/WHmJtItwaQ8e3XwY3qtI= +gitea.maximumdirect.net/eric/ReleaseKit v0.4.1/go.mod h1:LVodqNQ3OIKv9NBq+fFeyMByd1lHY25YOmmpah/NaNI= +gitea.maximumdirect.net/eric/promptkit v0.14.0 h1:HUzlcrFk18dNGPBgnHqjAw87O0c9Wl/IC1xc/VmzL10= +gitea.maximumdirect.net/eric/promptkit v0.14.0/go.mod h1:2YGvNca3bNXZP+e+pJeGzsNUcxwkHvzvuoc+LNNiT3E= gitea.maximumdirect.net/eric/promptkit-backend-openrouter/v3 v3.20260930.0 h1:lzfCDbzJQRGzIlRPRprnAV9hVVL5zUQy80VMQ0kbYa0= gitea.maximumdirect.net/eric/promptkit-backend-openrouter/v3 v3.20260930.0/go.mod h1:HjS0f+3q0IdHCTEz+VVAEgIwIWJFAZUjuKdAtvtqKdg= gitea.maximumdirect.net/eric/promptkit-backend-rakestrawhome/v3 v3.20260930.0 h1:h12ZTRldAmpLAomj0oQRGteFxHLN1LPE6XDl9zJNbm8= diff --git a/scripts/release_test.go b/scripts/release_test.go index 435679f..7e72762 100644 --- a/scripts/release_test.go +++ b/scripts/release_test.go @@ -118,7 +118,7 @@ func TestDeliveryWorkflowUsesModuleSelectedReleaseKit(t *testing.T) { "git fetch origin", "refs/tags/$${CI_COMMIT_TAG}", "git checkout --detach", "git status --porcelain", "go list", "-modfile=", "-m", "go build", "$${releasekit_module}/cmd/releasekit", - "ci-deliver", "--repo \"$${CI_WORKSPACE}\"", "--commit \"$${CI_COMMIT_SHA}\"", + "ci-deliver", "--repo \"$${CI_WORKSPACE}\"", "--prepared", "--commit \"$${CI_COMMIT_SHA}\"", "\"$${CI_COMMIT_TAG}\"", } { if !strings.Contains(command, fragment) {