# ReleaseKit v0.8.0 ## Summary ReleaseKit adds read-only recovery for source-publication attempts. It attempts to retain evidence before a tag push, lets operators discover and explicitly select a saved attempt, and observes the original destination without repeating candidate validation or changing tags. Source publication and hosted delivery continue to have separate outcomes. ## Publication recovery - `Publish` returns reusable `PublicationEvidence` and attempts to save a private record. The result reports the saved path or a recording error separately from the publication outcome. Go callers can load or list records and reconcile retained evidence through the root facade. - The CLI adds `publication-attempts` for local discovery and `reconcile` for an explicitly selected record. Both support human-readable and structured output. `publish --record-dir` selects an alternate record directory, and failed publication can print a recovery command for the saved attempt. - Recovery uses the captured endpoint and full tag with current supported Git transport settings. It reports publication, current absence, conflict, or an unresolved observation. Current absence does not prove that a version was never published; published versions and their contents remain immutable. - Records preserve exact endpoint and path bytes. Ordinary UTF-8 evidence uses record format 1; format 2 preserves other bytes. Recovery diagnostics redact HTTP(S) URL userinfo, while private records and typed evidence can contain sensitive endpoints. Operators control record retention and removal. ## Consumer tools and compatibility The module path remains `go.maximumdirect.net/releasekit`, and the Go consumer minimum remains 1.26.0. Existing publication calls and release profiles remain supported. Publication now attempts to write a private record by default; a storage failure is reported separately and does not change the publication result. Applications handling results should inspect `RecordError` when a saved recovery handoff matters. Consumers with the CLI registered as a Go tool in their module can run it with `go tool releasekit`. The maintained multi-module launcher and Woodpecker examples use the selected module's tool version. Register the CLI before generating a vendor tree when using a vendored tool. Older recovery CLIs that only support record format 1 cannot load format 2 records; use a CLI that supports format 2. See the [publication guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/consumers/publish.md), [CLI reference](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/cli.md), [publication record formats](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/integrations/publication-records.md), and [consumer adoption guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/consumers/adoption.md) for usage and recovery details. [COPYRIGHT](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/COPYRIGHT) | [LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/LICENSE) | [ATTRIBUTION](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/oss/attribution.md)