## Summary --- ## Type of change - [ ] Bug fix — non-breaking change that resolves an issue - [ ] New feature — non-breaking addition of functionality - [ ] Breaking change — alters existing behavior or public API - [ ] Documentation update - [ ] Refactor — no functional change, no new API surface - [ ] Test improvement --- ## Description --- ## Testing - [ ] I added or updated tests that cover my changes - [ ] All tests pass locally — `go test ./...` - [ ] No formatting issues — `gofmt -l .` produces no output - [ ] No vet warnings — `go vet ./...` is clean --- ## Checklist - [ ] At most one exported type per non-test `.go` file (CT-6) - [ ] No new external dependencies added without prior discussion in an issue - [ ] Public API changes are reflected in `CHANGELOG.md` - [ ] Breaking changes include a migration note in the PR description above --- ## Contributor License Agreement > **This PR will not be merged until the CLA comment is present.** Before a Maintainer reviews your code, you must post the following text **as a comment on this PR** — not here in the description. PR description checkboxes can be silently toggled by anyone; a comment is a timestamped, author-attributed record that cannot be quietly removed. **Copy and post this exact text as a PR comment:** --- > I have read the Einherjar Contributor License Agreement (CLA.md) and I agree to all its terms. > I confirm this Contribution is my original work. I grant the Maintainers the rights described > therein, including the right to relicense, and I retain ownership of my copyright. > This agreement covers all future Contributions I submit to any Einherjar repository under > this account. --- First time contributing? Read [CLA.md](../CLA.md) for the full agreement before posting the comment. If you are contributing on behalf of a company, an authorized representative of that company must post the comment.