Release / release (push) Successful in 58s
`git tag --sort=-v:refname | grep -A1 -x -F "$TAG"` matches nothing when $TAG is not an existing tag, which is the normal case for a workflow_dispatch run: the release is published for a tag nobody has pushed and Gitea creates it. grep then exits 1, and under `set -e -o pipefail` that took the step down before the first echo, so the log showed exit code 1 and no output at all. $TAG is now injected into the list before sorting, so the match is guaranteed and the line before it is the real predecessor. `sort -uV` also orders v2.9 before v2.10, which -v:refname over a list missing $TAG could not. Also asserts the token is non-empty up front rather than failing on an opaque 401 several curls later. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>