Restructure the release workflow so build jobs upload workflow artifacts
instead of creating GitHub releases directly. A single finalize-release
job downloads all artifacts and creates the release only when every
platform build succeeds. Also removes the unused gradle bundle step
from the Android job and adds retry logic to gradlew assembleRelease.
Replaced test.yml with ci.yml, added a built-app smoke runner in scripts/smoke-web-app.js, and inserted a release preflight so tags run the same core checks before packaging.
Remove unnecessary rename steps that were adding duplicate architecture suffixes to AppImage and ZIP filenames. Electron Forge already includes architecture in AppImage filenames, and ZIPs include it in the darwin-arch pattern.
Fix Android Capacitor compatibility by downgrading tar to 6.2.1. Add Windows-specific icon file for Squirrel installer. Update electron-forge to 7.8.0 and change DMG format to ULFO for macOS Sequoia compatibility. Add retry logic for transient SSL errors on Mac Intel runners.
Fix route parameter name in use-initial-theme hook (communityAddress -> boardIdentifier), correct release workflow artifact paths (dist -> out/make), add BUILD_ARCH env var for Linux arm64 builds, fix macOS app name dev check, and update capacitor webDir to match vite output.
Make yarn install resilient to transient network failures by adding retry loop (3 attempts), network timeout/concurrency flags, and caching electron binaries across runs. Fixes intermittent "server aborted pending request" errors on Mac Apple Silicon CI runner.