This repository was archived by the owner on Jul 6, 2026. It is now read-only.
v0.2.0 — Security & Architecture
Spottt v0.2.0
Security hardening, architecture cleanup, and dead code removal.
Security
- Token/config files written with
600/700permissions (no longer world-readable) - OAuth
stateparameter validated on callback (CSRF protection) - CORS restricted from
*tonull(blocks cross-origin attacks) /action/endpoint validates against whitelist- API retry capped at 2 attempts (prevents stack overflow on persistent 401/429)
Architecture
- Merged duplicate
_api_put/_api_post→ single_api_request(method, path) - Merged
_exchange_code/_refresh→ shared_token_request() _frame_cachebounded to 10 entries (prevents memory growth)- Content-based ANSI cache key (replaces fragile
id(frame)) ThreadingHTTPServerreplaces single-threadedHTTPServer- Track metadata updates immediately on track change (no UI freeze during art download)
Cleanup
- Removed ~70 lines of dead code (unused properties, compat wrappers, broken keybindings)
Install
- Download
Spottt.dmgbelow - Drag
Spottt.appto Applications - Run — enter your Spotify Client ID when prompted
