soulsync/tests/downloads
dev 9af31c3706 fix(downloads): stop phantom-completing stuck post_processing tasks
A task stuck in 'post_processing' past the cutoff was force-marked 'completed'
("assume it worked"). In a large batch, post-processing (AcoustID + quality +
import) is serialized and backs up, so tasks sit in post_processing while merely
QUEUED — then got falsely completed, showing as downloaded with no file on disk
(/Transfer empty).

Now: the cutoff is 30 min (was 5) so legit backlog isn't cut off, and when it
does fire the task is only completed if it actually produced a file
(final_file_path exists on disk) — otherwise marked failed (honest + retryable).
Applied at both stuck-detection sites (check_batch_completion + _v2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 23:25:33 +02:00
..
__init__.py
test_album_bundle_staging_sweep.py
test_album_serialize_drain.py
test_background_download_worker.py
test_candidate_ordering.py feat(downloads): best-quality search mode + clearer fallback UI 2026-06-14 18:46:01 +02:00
test_deezer_pinning.py
test_download_engine.py
test_download_orchestrator.py
test_downloads_cancel.py fix(downloads): keep terminal tasks visible during active batch + concurrent pool 2026-06-14 20:08:56 +02:00
test_downloads_candidates.py
test_downloads_cleanup.py
test_downloads_history.py
test_downloads_lifecycle.py fix(downloads): stop phantom-completing stuck post_processing tasks 2026-06-14 23:25:33 +02:00
test_downloads_master.py Playlists: wire materialize triggers + retire per-track routing flag 2026-06-12 13:37:59 -07:00
test_downloads_post_processing.py
test_downloads_staging.py
test_downloads_status.py fix(downloads): stop active tasks from starving terminal rows out of the list 2026-06-14 21:36:27 +02:00
test_downloads_task_worker.py feat(downloads): best-quality search mode + clearer fallback UI 2026-06-14 18:46:01 +02:00
test_downloads_validation.py
test_file_finder.py Fix: a '/' in a song title was treated as a path separator (#835) 2026-06-10 16:29:09 -07:00
test_hifi_pinning.py
test_lidarr_pinning.py
test_orchestrator_search_mode.py feat(downloads): best-quality search mode + clearer fallback UI 2026-06-14 18:46:01 +02:00
test_playlist_folder_exists.py
test_qobuz_pinning.py
test_rate_limit_policy.py
test_soulseek_pinning.py
test_soundcloud_pinning.py
test_tidal_pinning.py
test_track_detail.py
test_track_link.py
test_track_metadata_backfill.py
test_wishlist_aggregator.py
test_youtube_pinning.py