Skip to content

v0.2.0

Choose a tag to compare

@just5ky just5ky released this 21 Jun 07:36
· 2 commits to main since this release

What's Changed

πŸ”’ Security

  • crypto/rand for auth salt β€” replaced math/rand (not a CSPRNG) in Subsonic token generation
  • HTTP response size cap β€” io.LimitReader at 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_PASSWORD env var β€” password no longer required on the command line (avoids ps aux exposure)

πŸ” 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 β€” .tmp state file removed on failed os.Rename
  • Report write errors surfaced β€” CSV write/flush failures in unmatched report are now logged instead of silently dropped
  • State-save failure β€” logged at ERROR level instead of warning

βœ… 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 URI etc.

πŸ“„ Docs

  • Added AUDIT_REPORT.md (full security audit findings)