fix: deduplicate teal.fm scrobbles (#1024)
* fix: deduplicate teal.fm scrobbles during track transitions
backend: add redis SET NX dedup (60s TTL) in schedule_teal_scrobble so
concurrent requests from multiple fly machines only schedule one task.
frontend: lock play counting during track transitions via _playCountLocked
flag — set on resetPlayCount(), cleared on loadeddata — preventing spurious
fires from stale currentTime/duration before new audio loads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: move redis import to top level in sync.py
deferred imports are only for circular import avoidance, not here.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
authored by
zzstoatzz.io