You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SoulSync/tests
BoulderBadgeDad 40e3dac881
Sync: append mode preserves the playlist image like reconcile (#811)
7 days ago
..
artists
automation Fix standalone mirrored playlist sync and post-sync downloads. 2 weeks ago
blocklist Blocklist Phase 2b: gate manual downloads with a "download anyway?" confirm 1 week ago
database
discovery Sync: append mode preserves the playlist image like reconcile (#811) 7 days ago
downloads Downloads: lazy multi-query quarantine retry — exhaust all queries per source 1 week ago
enrichment Enrichment manager: 6 UX improvements 2 weeks ago
imports Import: don't duration-quarantine manual imports against a re-resolved release (#804) 7 days ago
library Expired Download Cleaner: retention-based cleanup of watchlist/playlist downloads (Boulder) 1 week ago
matching Cover art: a numeric difference is a different release — Vol.4 stops wearing Vol.4.5's cover 1 week ago
media_server Navidrome: pin music-folder selection by id, not name (survives renames) 1 week ago
metadata Multi-artist: pin the Deezer-search -> Tidal-download flow end to end (Netti93 follow-up) 1 week ago
playback Player: log SoulSync web-player plays (recently-played + smart-radio recency) 2 weeks ago
playlists
radio Player revamp Phase 2: smart radio ranking (play-count + popularity) 2 weeks ago
search #798: Spotify Free metadata mode — backend (opt-in, shared spotify tables) 1 week ago
static Fix: mirrored playlist action buttons dead when name has an apostrophe 2 weeks ago
stats
streaming Stream button: the player never learns its stream is ready (2.6.5 regression) 1 week ago
sync Fix #792: 'reconcile' playlist sync mode (edit in place, keep image/description) 1 week ago
text
tools
watchlist
webui
wishlist Fix organize-by-playlist downloads: library entries, wishlist, and stale Spotify cache 2 weeks ago
conftest.py tests: isolate the database so the suite can never touch the real DB 2 weeks ago
test_acoustid_error_reporting.py AcoustID: report errors honestly instead of masking them as 'Skipped' 2 weeks ago
test_acoustid_scanner.py
test_acoustid_skip_logic.py #797: stop AcoustID quarantining correct non-English-artist downloads 1 week ago
test_acoustid_version_mismatch.py AcoustID: report errors honestly instead of masking them as 'Skipped' 2 weeks ago
test_album_bundle.py Fix #796: Soulseek album bundle left completed files in slskd download folder 1 week ago
test_album_bundle_dispatch.py Album bundle: fall back to per-track on an I/O error, don't hard-fail the batch 2 weeks ago
test_album_completeness_job.py
test_album_mbid_consistency.py
test_amazon_outage.py Fix #759: Amazon enrichment floods when its public proxy is down 2 weeks ago
test_archive_pipeline.py
test_art_apply.py Cover art: detect read-only from the actual write, not statvfs (Sokhi false-positive) 1 week ago
test_art_preservation.py Fix #764: import no longer destroys embedded cover art 2 weeks ago
test_artist_albums_cache_poisoning.py Artist pages: stop watchlist probes from poisoning the album-list cache 1 week ago
test_artist_full_detail_source_id.py Fix: enhanced artist view 404s for library artists opened via source ID 2 weeks ago
test_artist_top_tracks_clients.py
test_audiodb_worker_stuck_track.py
test_auth_usage_throttle.py
test_auto_sync_js.py
test_canonical_alternates.py #767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe 1 week ago
test_canonical_columns_migration.py Canonical album version — Stage 1: schema + pure scorer (dormant) 2 weeks ago
test_canonical_db.py Canonical album version — Stage 2 (core): resolver + persistence (dormant) 2 weeks ago
test_canonical_manual_lock.py #758: a manual album match pins + locks the canonical version 1 week ago
test_canonical_orchestration.py Canonical findings: include as much (free) data as possible 2 weeks ago
test_canonical_resolver.py #767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe 1 week ago
test_canonical_version.py Canonical album version — Stage 1: schema + pure scorer (dormant) 2 weeks ago
test_canonical_version_job.py Repair settings: dropdown for fixed-choice settings (canonical source_selection) 2 weeks ago
test_config_save_retry.py
test_content_filter_regex.py
test_context_qualifier_match.py #808: album-context qualifiers stop blocking library-presence matching 1 week ago
test_cover_art_targets.py Cover Art Filler: fix album art or artist art independently (Pache711) 1 week ago
test_create_finding_dedup_counter.py
test_dashboard_events.py
test_database_io_resilience.py
test_database_update_reconcile_hook.py Run auto-reconcile as a scan phase inside the running window 1 week ago
test_db_genres_json_normalization.py DB: normalize legacy comma-separated genres to canonical JSON 2 weeks ago
test_db_integrity.py DB backups: verify integrity + never evict the last good backup 2 weeks ago
test_db_isolation_guard.py tests: isolate the database so the suite can never touch the real DB 2 weeks ago
test_db_migration_ledger.py DB: add schema_migrations ledger + PRAGMA user_version backstop 2 weeks ago
test_db_watchlist_amazon_id_migration.py DB: stop watchlist_artists rebuilds from dropping amazon_artist_id 2 weeks ago
test_debug_info_services.py
test_dedupe_source_ids.py Auto-repair duplicated source ids on startup (one-time migration) 1 week ago
test_deezer_worker_artist_id_guard.py Fix Deezer enrichment stamping one artist id onto multiple artists 1 week ago
test_discogs_collection_source.py
test_discogs_track_count.py
test_discover_section_controller_js.py
test_download_orchestrator_soundcloud.py
test_download_origins.py Download Origins: see (and delete) exactly what watchlist + playlist syncs downloaded 1 week ago
test_download_plugin_conformance.py
test_downloads_pagination.py
test_duplicate_detector_mount_paths.py
test_duplicate_detector_slskd_dedup.py
test_duplicate_keep.py Fix: duplicate detector kept lossy over lossless (rank format first) 2 weeks ago
test_embed_known_source_ids.py Library re-tag: seam tests for the job scan, apply handler, and source-id embed 2 weeks ago
test_enrichment_art_preservation.py Fix #764: import no longer destroys embedded cover art 2 weeks ago
test_enrichment_artist_id_guard.py Apply artist-id name-guard to audiodb/qobuz/tidal workers too 1 week ago
test_enrichment_services.py
test_expired_download_cleaner.py Expired Cleaner: rename the safety toggle to dry_run (default ON), matching Re-tag 1 week ago
test_featured_artist_completion.py
test_genius_backoff.py Genius 429 backoff: fail-fast gate instead of napping the import pipeline 1 week ago
test_hifi_instance_methods.py
test_hls_parsing.py
test_image_cache.py Image cache: reject truncated downloads instead of caching broken covers (#750) 2 weeks ago
test_import_album_match_endpoint.py
test_import_singles_parallel.py
test_import_tag_preservation.py Import: never wipe a clean/matched import's tags when enhancement fails (#804) 7 days ago
test_integrity_failure_marks_task_failed.py
test_lb_series_detect.py
test_library_disk_usage.py
test_library_reorganize.py
test_library_reorganize_orchestrator.py Fix #767: Library Organizer dry run no longer creates folders 2 weeks ago
test_library_retag_job.py Lyrics: add a "Lyrics Filler" maintenance job + lyrics option in the Re-tag tool (Sokhi) 1 week ago
test_library_stream_fallback.py #809 Navidrome playback: stream via the server's API when the library isn't mounted on disk 1 week ago
test_library_tag_payload.py
test_library_track_identity.py
test_lidarr_download_client.py
test_liked_songs_playlist.py Mirrored "Liked Songs" stops 400ing on every auto-refresh (wolf39us) 1 week ago
test_listenbrainz_manager.py
test_listening_stats_batch_queries.py
test_lyrics_reembed_from_sidecar.py Fix CI: drop dead RetagDeps tests + pointless f-string 1 week ago
test_manual_library_match.py Fix #787: Find & Add now records a durable manual match that survives a rescan 1 week ago
test_manual_pick_no_auto_retry.py
test_manual_search_endpoint.py
test_matching_engine_cjk.py
test_memory_tracker.py #802: on-demand memory-growth diagnostic (tracemalloc, browser-drivable) 1 week ago
test_metadata_cache_table_recreate.py Fix: metadata cache tables silently missing after DB recovery (stale migration marker) 2 weeks ago
test_missing_cover_art.py Cover Art Filler: fix album art or artist art independently (Pache711) 1 week ago
test_missing_lyrics_job.py Lyrics Filler: convert track duration ms→s for LRClib (exact-match was silently defeated) 1 week ago
test_navidrome_cover_url.py Fix #766: Navidrome album covers blank in the sync editor (+ other modals) 2 weeks ago
test_navidrome_stream_url.py #809 Navidrome playback: stream via the server's API when the library isn't mounted on disk 1 week ago
test_orphan_file_detector.py
test_personalized_api.py
test_personalized_generators_curated.py
test_personalized_generators_singletons.py
test_personalized_generators_variants.py
test_personalized_manager.py
test_personalized_playlists_id_gate.py Blocklist Phase 1 (backend): artist/album/track bans enforced at the wishlist chokepoint 1 week ago
test_playlist_edit.py Fix #792: reconcile sync mode was clamped back to 'replace' in the backend 1 week ago
test_playlist_reconcile.py #766 follow-on: source rows borrow their matched server track's cover 2 weeks ago
test_playlist_sources_adapters.py
test_provenance_id_persistence.py
test_prowlarr_client.py
test_qobuz_credential_sync.py
test_qobuz_playlists.py
test_recommendation_sources.py Recommendations: explain WHICH of your artists drive each suggestion 2 weeks ago
test_release_dates.py #705: release-date gate — unreleased tracks stay out of the wishlist cycle and Fresh Tape 1 week ago
test_reorganize_alternate_edition.py #767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe 1 week ago
test_reorganize_canonical_source.py Canonical album version — Stage 3: Reorganizer prefers pinned canonical (read) 2 weeks ago
test_reorganize_db_methods.py
test_reorganize_deleted_quarantine.py Reorganize: skip files in the duplicate-cleaner /deleted quarantine (#746) 2 weeks ago
test_reorganize_orphan_format_handling.py
test_reorganize_queue.py
test_reorganize_runner.py
test_reorganize_tag_source.py
test_reorganize_unknown_artist_hint.py
test_repair_worker_album_fill.py
test_repair_worker_unresolvable_folder_error.py
test_replaygain_summary_parse.py
test_request_cleanup_timer.py
test_resolve_mirrored_playlist.py Fix #780: Deezer/non-Spotify organize-by-playlist resolved the wrong row 2 weeks ago
test_retag_planner.py Library re-tag (1/3): pure planner — match source tracklist + per-field tag diff 2 weeks ago
test_runtime_state.py
test_scan_wait_action.py Fix: deep-scan / DB-update automation falsely errors on large libraries (stall-based timeout) 2 weeks ago
test_script_split_integrity.py Blocklist Phase 1 (backfill + API + modal): the Blocklist button on the watchlist page 1 week ago
test_server_playlist_append_mode.py
test_similar_artists_status_codes.py Fix: MusicMap 404s miscounted as errors in similar-artists worker 2 weeks ago
test_similar_artists_worker.py Similar Artists worker: guarantee every stored similar has a source id 2 weeks ago
test_socketio_cors.py
test_soulseek_album_fallback.py Fix #796: Soulseek album bundle left completed files in slskd download folder 1 week ago
test_soulseek_album_poll_stall.py Soulseek album poll: treat 'Aborted'/'Cancelled' transfers as failed 2 weeks ago
test_soulseek_search_throttle.py
test_soundcloud_client.py
test_source_ids_registry.py Source IDs: add canonical registry, adopt at the highest-value sites 2 weeks ago
test_source_title.py Fix #768: playlist sync editor refusing to match certain tracks 2 weeks ago
test_spa_deep_linking.py
test_spotify_free_metadata.py Bridge the Spotify worker to Free when the daily budget is spent (don't pause) 1 week ago
test_spotify_public_api.py SpotipyFree integration confirmed working (236 tracks live); deps + meta tweak 2 weeks ago
test_spotify_token_cache.py Spotify tokens move into the database — daily Docker deauth fixed (wolf39us) 1 week ago
test_spotify_unavailable_reason.py Spotify: log WHY a request was skipped, not a catch-all "Not authenticated" 1 week ago
test_staging_album_provenance.py
test_stats_automations_esc_js.py Fix: mirrored playlist action buttons dead when name has an apostrophe 2 weeks ago
test_status_engine_fallback.py
test_sync_discovery_scan_events.py
test_tag_writer_multi_artist.py
test_tag_writer_placeholder_guard.py #800: Write Tags must not overwrite a real file value with a placeholder 1 week ago
test_tidal_album_tracks.py
test_tidal_auth_instructions.py
test_tidal_auth_redirect_uri.py
test_tidal_collection_tracks.py
test_tidal_favorite_albums_artists.py
test_tidal_qualifier_filter.py
test_tidal_search_shortening.py
test_title_match_guard.py Fix #769: playlist sync matched wrong same-artist track with high confidence 2 weeks ago
test_tool_progress_events.py
test_torrent_client_adapters.py Fix #790: torrent client URL without http:// scheme fails to connect 1 week ago
test_torrent_stall.py Torrents: stalled-torrent handling — abandon a dead magnet instead of holding a worker 6h (noldevin) 1 week ago
test_torrent_usenet_plugins.py Torrents: stalled-torrent handling — abandon a dead magnet instead of holding a worker 6h (noldevin) 1 week ago
test_track_artist_matching.py
test_track_number_repair.py
test_track_repair_canonical.py Canonical album version — Stage 4: Track Number Repair prefers canonical (read) 2 weeks ago
test_track_search_single_query.py
test_unknown_artist_fixer.py
test_usenet_client_adapters.py Fix: Usenet bundle stuck at 99%/100% — SAB reports post-processing in History as non-terminal (#721) 2 weeks ago
test_watchlist_album_match.py
test_watchlist_bulk_add.py
test_watchlist_itunes_id_repair.py Watchlist: repair iTunes ids that are actually Deezer ids (the 37725457 corruption, proven live) 1 week ago
test_watchlist_itunes_match.py Watchlist: iTunes ID backfill never worked in the normal wiring — use the registry client 1 week ago
test_watchlist_scanner_scan.py
test_websocket_client_transport.py
test_websocket_infrastructure.py
test_wishlist_pagination.py
test_worker_artist_match_gate.py Tighten artist matching: 0.85 gate + shared uniqueness guard 1 week ago
test_worker_existing_id_marks_matched.py
test_worker_utils_album_track_count.py
test_yield_policy.py Import speed: downloads pause ALL enrichment workers, discovery pauses the contention five 1 week ago
test_youtube_ffmpeg_no_eager_download.py
test_youtube_js_runtime.py Tests: lock the yt-dlp JS-runtime startup warning seam 1 week ago
test_youtube_search_dash_query.py