## Context The existing Electron Forge packaging pipeline needs Linux arm64, macOS universal, and Windows MSI outputs, plus consistent artifact naming and SHA-256 checksum outputs for cross-platform release parity. ## Goals / Non-Goals - Goals: - Cover Linux arm64 artifacts (`deb`/`rpm`/`AppImage`) - Provide macOS `x64`/`arm64`/`universal` dmg artifacts - Add MSI artifacts for Windows - Include architecture markers in artifact names and output SHA-256 checksums - Non-Goals: - Change existing update logic (`latest*.yml` remains unchanged) - Modify runtime application behavior ## Decisions - Decision: Build Linux arm64 on a dedicated arm64 runner, without cross-compilation. - Decision: Build macOS universal via `--arch=universal` or by merging app bundles before dmg packaging. - Decision: Generate Windows MSI with the official Forge maker (Wix/MSI) in parallel with Squirrel. - Decision: Use `productName + version + arch` naming; Linux uses `amd64/aarch64`, macOS/Windows use `x64/arm64/universal`. ## Alternatives Considered - x64-only artifacts: rejected because it does not meet user requirements. - universal-only dmg: rejected due to weaker debugging/rollback capability and lack of architecture distinction. ## Risks / Trade-offs - Linux arm64 builds may be affected by native dependency compilation (for example, `better-sqlite3`, `keytar`). - Windows MSI requires extra tooling (Wix), which may increase CI duration and failure rate. - The universal dmg pipeline requires validation for signing and update-flow consistency. ## Migration Plan 1) Introduce CI multi-arch jobs with naming and checksum outputs. 2) Add MSI maker and universal dmg packaging. 3) Stabilize the workflow after release validation. ## Open Questions - Should artifact naming strictly match sample format (underscore vs hyphen)? - Should checksum output be separate `.sha256` files or a single consolidated manifest?