diff --git a/docs/releases/v0.3.1.md b/docs/releases/v0.3.1.md new file mode 100644 index 0000000..d710891 --- /dev/null +++ b/docs/releases/v0.3.1.md @@ -0,0 +1,43 @@ +# ConfigKit v0.3.1 + +This release fixes secrets-directory bootstrap when the directory contains Git +metadata or other dot-prefixed entries. + +## Summary + +`LoadSecretsDir` now ignores dot-prefixed files, directories, and symlinks, +including `.git`, `.gitignore`, and `.DS_Store`. These entries no longer prevent +otherwise valid secrets from loading and are omitted from the bootstrap report. +See the [bootstrap contract](../config.md#explicit-secrets-directory-bootstrap). + +## Compatibility + +This is a backward-compatible bug fix for previously rejected directory contents. +There are no Go API signature changes or migrations for previously accepted +inputs. Validation of non-hidden entries, existing-environment precedence, and +the existing enumeration and content limits remain unchanged. Hidden entries +still count toward the directory enumeration limit. + +The minimum Go version remains 1.25. Linux remains release-validated and macOS +remains best-effort. The explicitly pinned YAML dependency remains +`go.yaml.in/yaml/v4 v4.0.0-rc.6`; reassessment found no newer published version. +Retaining this prerelease pin avoids unrelated parser changes in this patch. + +## Upgrade + +Update the module dependency and rebuild the consuming application: + +```sh +go get gitea.maximumdirect.net/eric/ConfigKit@v0.3.1 +``` + +No configuration migration is required. A secrets directory can retain its +dot-prefixed metadata without treating those entries as secret candidates. + +## Changes + +- Filter hidden entries before filename and metadata validation and reporting. +- Cover hidden-only and mixed directories, including Git metadata and a dangling + hidden symlink, with regression tests. +- Update public API comments and the canonical bootstrap contract. +- Stop tracking local codebase-memory tooling artifacts and ignore their directory.