diff --git a/docs/releases/README.md b/docs/releases/README.md index 9f82614..e826128 100644 --- a/docs/releases/README.md +++ b/docs/releases/README.md @@ -1,5 +1,6 @@ # Release Notes +- [Audita v3.0.0](v3.0.0.md) - [Audita v2.0.1](v2.0.1.md) - [Audita v2.0.0](v2.0.0.md) - [Audita v1.1.0](v1.1.0.md) diff --git a/docs/releases/v3.0.0.md b/docs/releases/v3.0.0.md new file mode 100644 index 0000000..bbe365f --- /dev/null +++ b/docs/releases/v3.0.0.md @@ -0,0 +1,59 @@ +# Audita v3.0.0 + +Audita v3 adopts native configuration inheritance and layered PromptKit +definitions, and allows transcript and report destinations to be selected +independently. This is an intentional breaking release: existing PromptKit +profile files require migration from the v2 release format. + +## Changes + +- ConfigKit is updated from v0.4.2 to v0.5.0. Application configuration supports + native sibling inheritance, and configuration explanations include value-free + inheritance provenance. +- PromptKit is updated from v0.11.2 to v0.12.0, with both backend catalogs at + `v3.20260930.0`. Native keyed definitions support profile inheritance and + operator prompt overrides. The selected `profiles_dir` can contain profiles, + backends, and prompts; application backend endpoints, capacity, and credentials + remain authoritative. +- Effective definitions and referenced prompt message contents are captured at + runtime construction. Consumed host configuration and message files are + protected from output collisions. Audita retains its per-call schemas, domain + validators, retry and repair budgets, and resilient processing behavior. +- An explicit `--report-dir` now selects reports for either file or stdout + transcript output. File output without that flag still places reports beside + the transcript. This supports Narratio's independent output destinations; + debug capture remains independently selectable. + +## Upgrading from v2 + +1. Convert each old PromptKit profile to a keyed definition under + `profiles: {: ...}`, remove its inner `id`, and replace + `base_profile` with `extends`. Profile IDs come from mapping keys rather than + filenames. No compatibility loader or automatic conversion is provided. +2. Review explicit zero, omitted, and null generation controls. For example, + `temperature: 0` now sends an explicit zero, omission leaves the control + unspecified, and null suppresses an inherited control. A zero profile timeout + disables PromptKit's generation deadline; Audita's operation deadline still + applies. +3. Select a configuration root whose final definitions are valid. PromptKit now + validates unused definitions too, including backend references, and conflicting + values within a directory source group are errors. The maintained examples + use separate [local](../../examples/profiles/local/) and + [service](../../examples/profiles/service/) roots. Runtime source edits take + effect on the next invocation. +4. Rename any application backend literally named `extends` and update its + profile references. ConfigKit now reserves that key for inheritance. +5. Validate the migrated installation with + `audita config validate --config /path/to/config.yml`, including any selected + testing overlay. Application configuration continues to use `version: 2`. + +The [configuration reference](../config.md#promptkit-profiles-and-operator-prompts) +contains the migrated format and presence rules. Start from the maintained +[local](../../examples/minimal-config.yml), +[service](../../examples/production-config.yml), or +[application inheritance](../../examples/configkit-inheritance.yml) examples. +The [CLI reference](../cli.md) describes report selection, and the +[release procedure](../release.md) describes source publication and asynchronous +Linux binary delivery. + +[COPYRIGHT](https://gitea.maximumdirect.net/eric/audita/src/tag/v3.0.0/COPYRIGHT) | [LICENSE](https://gitea.maximumdirect.net/eric/audita/src/tag/v3.0.0/LICENSE) | [ATTRIBUTION](https://gitea.maximumdirect.net/eric/audita/src/tag/v3.0.0/docs/oss/attribution.md)