`npm run publish-apk` builds the APK (assembleDebug by default — the release build type is unsigned) and uploads it to the apk-latest Gitea release, replacing the old .apk asset, so the web download button always serves the latest build. Config via env or a gitignored scripts/.env.release (GITEA_URL/REPO/TOKEN, APK_GRADLE_TASK). Release title tracks versionName. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>