mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
e6b58b8f59df058cd51f9c91f873b23f18646deb
The cross-source reconcile went too far: a source switched away from can have waiting rows that promote will never hand over, since it resolves only while active and downloads are only ever started for the active source. Those rows kept the loop alive forever, so it scanned the whole table and ran every second for the life of the process, and the notification sat there claiming to be downloading songs that were not moving. Both now count a row as in flight only when the engine owns it or it belongs to the active source. Reconcile still covers every source, so a download running for a source you switched away from keeps updating. The downloaded-filter DAO test gains a second artist that must be excluded (its first version passed whichever artist clause you wrote), and the preference test covers the legacy three-field value and a downloaded round trip.
Languages
Kotlin
99.1%
Nushell
0.7%
Nix
0.1%