Last.fm radio cache cap: 5 → 10

User-visible behavior: at most 10 mirrored Last.fm Radio rows
exist at any time. When the cache prunes the 11th-newest +
older lastfm_radio rows, the existing cascade-delete hook
(``_cascade_delete_mirrored_for_mbids``) removes their matching
``source='lastfm'`` mirror rows in the same transaction.

5 was too aggressive — users seeding multiple radios in a row
were losing earlier downloads' provenance before they had time
to act on the tracks. 10 gives a few weeks of breathing room
without letting the Mirrored tab balloon.
pull/709/head
Broque Thomas 1 month ago
parent 862cedde9d
commit d8cc2f5f01

@ -418,13 +418,17 @@ class ListenBrainzManager:
# the new rolling series mirrors (Phase 1c.2.1).
self._cleanup_per_period_series_mirrors(cursor)
# For each playlist type, keep only the N most recent
# lastfm_radio keeps fewer since they're auto-regenerated weekly
# For each playlist type, keep only the N most recent.
# Last.fm radios are per-seed-track snapshots that don't update
# on the Last.fm side — capping the cache (and via the cascade
# below, the matching mirror rows) keeps the Mirrored tab from
# accumulating one row per random seed track the user ever
# picked. 10 is the user-facing limit.
playlist_type_limits = {
'created_for': 25,
'user': 25,
'collaborative': 25,
'lastfm_radio': 5,
'lastfm_radio': 10,
}
for playlist_type, keep_count in playlist_type_limits.items():

Loading…
Cancel
Save