# 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)