# ConfigKit v0.1.2 This release adds safe enumeration of effective and removed metadata paths. ## Summary `Metadata.HistoricalPaths` returns the semantic paths observed during a load, including paths removed by profiles, CLI overrides, or recorded resolution. This allows applications to discover hidden declarations and inspect their ownership through the existing `Metadata.History` API without reloading configuration or resolving unselected credentials. See the [layered metadata contract](../config.md#layered-metadata) for current behavior. ## Compatibility This is a backward-compatible API addition. Existing APIs, configuration syntax, diagnostic codes, minimum Go version, and supported platforms are unchanged. Existing consumers do not need to change their code or configuration. Returned paths are detached, unique by canonical JSON Pointer spelling, and sorted by that spelling. The enumeration includes defaults and the root, exposes no configuration values, and performs no I/O or secret resolution. The private YAML dependency remains pinned to `go.yaml.in/yaml/v4 v4.0.0-rc.6`, confirmed as the newest available v4 release during candidate preparation. ## Upgrade No action required. Consumers that want historical path discovery can update with: ```sh go get gitea.maximumdirect.net/eric/ConfigKit@v0.1.2 ``` Then iterate over `result.Metadata().HistoricalPaths()` and use `History` for chronological definitions or `Lookup` to determine whether each path remains effective. ## Changes - Added `Metadata.HistoricalPaths` with detached, deterministic path enumeration. - Included effective, default, and removed paths while excluding paths that never existed. - Added coverage for parent removal, mapping-to-sequence shape replacement, escaped mapping keys, detached results, zero metadata, composite base ownership, and avoidance of superseded secret lookup. - Documented historical path enumeration in the current configuration contract.