Releases: just5ky/SpotSonic
Releases · just5ky/SpotSonic
Release list
v0.3.0
v0.2.0
What's Changed
🔒 Security
crypto/randfor auth salt — replacedmath/rand(not a CSPRNG) in Subsonic token generation- HTTP response size cap —
io.LimitReaderat 10 MiB prevents OOM from malicious servers - HTTP status check — 4xx/5xx responses now fail fast before JSON decode
- State file permissions — tightened from
0644→0600(no longer world-readable) SPOTSONIC_PASSWORDenv var — password no longer required on the command line (avoidsps auxexposure)
🔁 Reliability
- Retry with exponential backoff — transient network errors and HTTP 5xx retry up to 3× (1 s, 2 s); 4xx and API errors fail immediately
- Temp file cleanup —
.tmpstate file removed on failedos.Rename - Report write errors surfaced — CSV write/flush failures in unmatched report are now logged instead of silently dropped
- State-save failure — logged at
ERRORlevel instead ofwarning
✅ Correctness
- Fuzzy matcher rune-aware —
similarity()now uses rune lengths (not byte lengths); fixes inflated scores for non-ASCII track names (CJK, Arabic, etc.) - Case-insensitive CSV headers — column matching now tolerates
track uri/TRACK URIetc.
📄 Docs
- Added
AUDIT_REPORT.md(full security audit findings)
v0.1
Full Changelog: https://github.com/just5ky/SpotSonic/commits/v0.1