Deluan
ca201d3f4e
fix(playlists): keep smart playlist tracks when a refresh is interrupted
...
A smart playlist refresh deleted its tracks and inserted the new ones as separate statements. A cancelled request (for example, a closed browser tab) could stop it in between, leaving the playlist with no tracks but its old song_count. The cover rebuild then never fired, because it treated song_count == 0 as "was empty".
The delete, insert, counters and evaluated_at update now run in one transaction, and the delete's row count decides whether the playlist was empty, so playlists left empty by earlier interruptions also get their cover. Child playlists, the percentage-limit count and the query build run before the transaction, so it holds the write lock only for the playlist's own tracks.
2026-10-11 00:43:25 -04:00
..
2026-09-25 18:06:10 -04:00
2026-09-28 22:50:13 -04:00
2026-09-28 22:50:13 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-07-03 08:58:55 -04:00
2026-09-25 18:06:10 -04:00
2026-09-19 21:05:58 -04:00
2026-09-19 21:05:58 -04:00
2025-02-19 20:35:17 -05:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-08-23 14:31:37 -04:00
2026-08-23 14:31:37 -04:00
2026-09-25 18:06:10 -04:00
2026-10-02 05:05:32 -04:00
2026-10-02 05:05:32 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-27 21:56:58 -04:00
2026-09-27 21:56:58 -04:00
2026-09-25 18:06:10 -04:00
2026-10-11 00:43:25 -04:00
2026-09-28 08:07:05 -04:00
2026-09-28 08:07:05 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-01-14 19:22:48 -05:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-10-11 00:43:25 -04:00
2026-10-11 00:43:25 -04:00
2026-09-25 18:06:10 -04:00
2026-09-28 22:50:13 -04:00
2026-09-25 18:06:10 -04:00
2026-09-27 21:56:58 -04:00
2026-09-27 21:56:58 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-02-23 08:51:54 -05:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-02-23 08:51:54 -05:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00
2026-09-25 18:06:10 -04:00