upload-artifact@v4 needs GitHub's artifact backend, which the Gitea act_runner doesn't implement — it failed the build job with exit 1 even though build:embedded + smoke-check passed. The publish job rebuilds from source, so the artifact was only a convenience. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>