what's changed
patch release: the CLI's machine-readable output now tells the truth on multi-track runs, plus a round of command-line polish. GUI behavior is untouched.
fixed
- playlist and album CLI runs now report what actually happened. the engine announces each finished track from its download worker threads; without the GUI's Qt event loop those cross-thread signals were silently dropped, so
--jsonruns emitted no per-track events andrun_summaryclaimedlanded: 0, skipped: 0while the files themselves downloaded fine. signal delivery is now direct, and a new engine signal feeds manifest-resumed tracks into the summary'sskippedcount. single-track runs and the GUI were never affected. if you script against the NDJSON contract, this release is the one to take.
added
- mistyped commands error instead of silently launching the app.
sunnify downlaod <url>exits 2 withdid you mean 'download'?(case-insensitive); double-click launcher argv still opens the GUI as always. sunnify help [command]works git-style.sunnify doctorreports release status. aversioncheck tells you when a newer release exists, names github's unauthenticated rate limit instead of a bare http code, and never fails the run - headless commands still make no network calls you didn't ask for.--helplinks the hosted CLI reference instead of a repo-relative path.- monthly dependency bumps ride along in the shipped binaries (certifi 2026.7.22, charset-normalizer 3.4.9; yt-dlp stays 2026.7.4).
verifying this release: every asset is covered by SLSA build L3 provenance - gh attestation verify <asset> --repo sunnypatell/sunnify-spotify-downloader, or check checksums.txt with sha256sum -c.
install via homebrew (macos):
brew tap sunnypatell/sunnify https://github.com/sunnypatell/sunnify-spotify-downloader
brew install --cask sunnifyfull changelog: v2.2.0...v2.2.1
⭐ if sunnify saved you time, star the repo - stars are how people find it.
attestations from this build
direct links to each attestation generated by the workflow run that produced these binaries (sigstore-signed, public-good rekor log entry, SLSA build L3 via the release-build.yml reusable workflow):
- build provenance: Sunnify-Windows.exe
- build provenance: Sunnify-Linux
- build provenance: Sunnify-macOS.zip
- build provenance: Sunnify-macOS-Intel.zip
- sbom attestation for the binaries
- build provenance for the source tarball
the *.sigstore.json assets attached above are the same attestations as offline-verifiable bundles. these get auto-refreshed on every release re-build, so the links above always correspond to the binaries currently attached to this release.