Build and release image / build (push) Successful in 11s
`actions/checkout` fetches the tag by commit sha into refs/tags/<tag>, which replaces the annotated tag with a lightweight one. `git tag -l` then reports the *commit* message as the tag message, which is why the last attempt published my commit message as the release notes. The annotation was never lost, it just was not what that ref named any more. The steps that read it are gone and the tag object is now fetched by its own sha into refs/release-notes/<tag>, a namespace checkout cannot collide with. Checked against a simulated runner checkout — fetch by sha into refs/tags, then the workflow's own commands — and the notes come out byte-identical to docs/releases/v0.1.3.md.