Stable v2.8.28
- feat(security): detect login anomalies — new-network privileged login + distributed account brute-force
- fix(backup): record async prune failure cause so prune_error is no longer empty
- chore(changelog): regenerate testing index
- docs: 'Verifying releases' guide (G10 — import key, verify signed SHA256SUMS, reproduce)
- fix(release): use NEW_VERSION (not undefined VERSION) in the checksum-publish step
- chore(changelog): regenerate testing index
- release(supply-chain): publish signed SHA256SUMS to get.enconf.com/checksums (G10)
- build(supply-chain): resolve RELEASE_SIGN_KEY from packaging/.release-sign-key fallback
- chore(changelog): regenerate testing index
- docs: whats-new notes (G1 denials, G10 verifiable releases) + doc updates
- chore(changelog): regenerate testing index
- feat(supply-chain): reproducible builds + checksums, signing-ready (G10)