- .gitea/workflows/release-build.yml: on release published (plus a manual back-fill trigger), build the Windows NSIS installer and macOS dmg/zip (x64 + arm64) on the self-hosted runners and upload them to the release. - scripts/ci/upload-release-assets.mjs: attaches release/ artifacts via the Gitea API; uploads first, then removes stale same-named assets. - electron-builder.unsigned.yml: ad-hoc fallback config used while the mac runner has no Developer ID identity / notarization credentials. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>