soulsync/tests/quality
dev e594ac9799 fix(downloads): keep terminal tasks visible during active batch + concurrent pool
Three fixes from on-device testing of best-quality mode:

1. clear_completed_local no longer prunes terminal tasks that belong to a
   STILL-ACTIVE batch (one with non-terminal work remaining). The 5-min
   "Clean Completed Downloads" automation was yanking completed/failed/
   unverified rows out of download_tasks mid-run — and failed/cancelled
   aren't in library_history — so they only reappeared after the batch
   ended. Now the whole active batch stays intact until it finishes.

2. search_all_sources runs every source CONCURRENTLY (asyncio.gather)
   instead of sequentially, so the pool waits only for the slowest source
   (e.g. usenet/Prowlarr) in parallel rather than summing all latencies.

3. The pool log now reports per-source contribution counts
   (e.g. "usenet=0, hifi=11, soulseek=1") instead of just echoing the
   chain, so a release-level source that returns nothing for a track-title
   query is visible rather than appearing to have been searched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 20:08:56 +02:00
..
test_engine_fallback.py feat(quality): quality-aware source fall-through in search_with_fallback 2026-06-14 12:33:34 +02:00
test_model.py test(quality): guard reason content, force_import isolation, bitrate-as-threshold 2026-06-14 12:46:39 +02:00
test_search_all_sources.py fix(downloads): keep terminal tasks visible during active batch + concurrent pool 2026-06-14 20:08:56 +02:00
test_search_mode.py feat(downloads): best-quality search mode + clearer fallback UI 2026-06-14 18:46:01 +02:00
test_selection.py feat(quality): quality-aware source fall-through in search_with_fallback 2026-06-14 12:33:34 +02:00
test_source_map.py feat(quality): source mappers + populate real quality on streaming results 2026-06-14 12:27:03 +02:00
test_source_tier.py feat(quality): derive per-source download tier from the global profile 2026-06-14 13:18:01 +02:00
test_track_result_quality.py feat(quality): source mappers + populate real quality on streaming results 2026-06-14 12:27:03 +02:00