..
artists
automation
blocklist
database
Preserve Navidrome album cover art
2026-05-25 19:51:38 -07:00
discovery
#702 : make mirrored-playlist cancel/reset/delete idempotent (un-wedge LB weekly sync)
2026-06-11 12:55:55 -07:00
downloads
enrichment
imports
Fix import artist override and verification review
2026-06-11 01:28:31 +02:00
library
matching
#845 tests: lift history-path resolver to core/ + seam-test the delete-safety
2026-06-11 11:07:25 -07:00
media_server
metadata
Multi-artist tags: Search → Download Now finally knows its metadata source (Netti93)
2026-06-09 17:20:16 -07:00
playback
playlists
radio
repair_jobs
search
static
stats
streaming
sync
text
tools
watchlist
webui
wishlist
Wishlist: manual "add to wishlist" now skips already-owned tracks ( #825 )
2026-06-09 10:55:45 -07:00
conftest.py
tests: isolate the database so the suite can never touch the real DB
2026-05-31 23:36:57 -07:00
test_acoustid_error_reporting.py
AcoustID: report errors honestly instead of masking them as 'Skipped'
2026-05-31 20:10:31 -07:00
test_acoustid_normalize_angle_annotations.py
test_acoustid_scanner.py
test_acoustid_skip_logic.py
test_acoustid_version_mismatch.py
test_admin_gating.py
test_album_bundle.py
test_album_bundle_dispatch.py
test_album_completeness_job.py
Fix: maintenance findings badge inflated when scan dedup-skipped
2026-05-04 08:55:13 -07:00
test_album_mbid_consistency.py
Update mbid consistency test mock to match new create_finding bool contract
2026-05-04 09:11:01 -07:00
test_amazon_outage.py
Fix #759 : Amazon enrichment floods when its public proxy is down
2026-06-01 13:10:51 -07:00
test_archive_pipeline.py
test_art_apply.py
test_art_preservation.py
Fix #764 : import no longer destroys embedded cover art
2026-06-02 08:40:05 -07:00
test_artist_album_list_cache_nonspotify.py
test_artist_albums_cache_poisoning.py
test_artist_full_detail_source_id.py
test_artist_sync_stale_guard.py
Artist Sync: unify with deep scan — server-diff stale removal, scoped to one artist
2026-06-10 19:43:25 -07:00
test_artist_top_tracks_clients.py
test_atomic_audio_save.py
test_audiodb_worker_stuck_track.py
AudioDB worker: stop infinite loop on direct-ID lookup failure ( #553 )
2026-05-11 14:18:55 -07:00
test_auth_proxy.py
Security: trust a forward-auth proxy user header (Tier 3)
2026-06-10 20:57:48 -07:00
test_auth_usage_throttle.py
test_auto_sync_js.py
Add node:test contract for auto-sync.js helpers
2026-05-25 00:01:34 -07:00
test_canonical_alternates.py
#767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe
2026-06-06 10:53:13 -07:00
test_canonical_columns_migration.py
Canonical album version — Stage 1: schema + pure scorer (dormant)
2026-06-02 11:30:58 -07:00
test_canonical_db.py
Canonical album version — Stage 2 (core): resolver + persistence (dormant)
2026-06-02 11:36:19 -07:00
test_canonical_manual_lock.py
#758 : a manual album match pins + locks the canonical version
2026-06-05 23:28:19 -07:00
test_canonical_orchestration.py
test_canonical_resolver.py
test_canonical_version.py
test_canonical_version_job.py
test_config_save_retry.py
Stop config retry tests from writing to the real DB
2026-04-30 14:07:00 -07:00
test_content_filter_regex.py
Fix watchlist content filters: live false positives + auto-scan bypass
2026-04-21 19:16:25 -07:00
test_context_qualifier_match.py
test_cover_art_targets.py
test_create_finding_dedup_counter.py
Repair job card badge — show pending count, not last-scan count
2026-05-07 08:28:17 -07:00
test_credentials_endpoints.py
test_dashboard_events.py
Realign test file names
2026-04-17 21:25:01 +03:00
test_database_io_resilience.py
test_database_update_reconcile_hook.py
Run auto-reconcile as a scan phase inside the running window
2026-06-05 19:10:31 -07:00
test_db_genres_json_normalization.py
test_db_integrity.py
test_db_isolation_guard.py
tests: isolate the database so the suite can never touch the real DB
2026-05-31 23:36:57 -07:00
test_db_migration_ledger.py
DB: add schema_migrations ledger + PRAGMA user_version backstop
2026-05-29 12:14:20 -07:00
test_db_watchlist_amazon_id_migration.py
test_dead_file_cleaner_guard.py
test_debug_info_services.py
test_dedupe_source_ids.py
test_deezer_worker_artist_id_guard.py
Fix Deezer enrichment stamping one artist id onto multiple artists
2026-06-05 07:32:51 -07:00
test_discogs_collection_id_tagging.py
Discogs ( #848 follow-up): tag collection album IDs for consistency
2026-06-11 08:33:26 -07:00
test_discogs_collection_source.py
Discogs: strip artist disambiguation suffixes at every name surface ( #634 )
2026-05-27 09:05:47 -07:00
test_discogs_id_typing.py
Discogs: fix master/release ID collision fetching the wrong album
2026-06-10 15:01:31 +02:00
test_discogs_track_count.py
Discogs: count rows with empty type_ as real tracks too
2026-04-25 08:27:44 -07:00
test_discover_section_controller_js.py
Discover controller — Cin pre-review polish
2026-05-07 20:35:10 -07:00
test_download_orchestrator_soundcloud.py
test_download_origins.py
test_download_plugin_conformance.py
test_downloads_pagination.py
Lift shared runtime state into core
2026-04-27 19:54:44 +03:00
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)
2026-06-01 12:49:34 -07:00
test_embed_known_source_ids.py
test_enrichment_art_preservation.py
Fix #764 : import no longer destroys embedded cover art
2026-06-02 08:40:05 -07:00
test_enrichment_artist_id_guard.py
Apply artist-id name-guard to audiodb/qobuz/tidal workers too
2026-06-05 07:47:59 -07:00
test_enrichment_services.py
Consolidate enrichment bubble routes behind a service registry
2026-05-01 20:14:30 -07:00
test_existing_album_folder.py
test_expired_download_cleaner.py
Expired Cleaner: rename the safety toggle to dry_run (default ON), matching Re-tag
2026-06-07 22:13:30 -07:00
test_featured_artist_completion.py
Match featured-artist tracks across discography completion
2026-04-30 19:31:11 -07:00
test_genius_backoff.py
test_hifi_instance_methods.py
Fix "no such table: hifi_instances" via defensive lazy-create
2026-05-06 17:49:44 -07:00
test_hls_parsing.py
test_image_cache.py
Image cache: reject truncated downloads instead of caching broken covers ( #750 )
2026-05-30 17:45:01 -07:00
test_import_album_match_endpoint.py
test_import_singles_parallel.py
test_import_tag_preservation.py
test_integrity_failure_marks_task_failed.py
Fix: tasks showed Completed when file was quarantined
2026-05-03 18:28:32 -07:00
test_issue_837_find_add_preserves_playlist.py
Fix: manual Find & Add recreated the Jellyfin/Emby playlist ( #837 )
2026-06-10 16:55:08 -07:00
test_jellyfin_album_thumb.py
Jellyfin/Emby: populate album thumb_url during the library scan (root cause of "flags every album")
2026-06-08 09:40:27 -07:00
test_launch_lock_gate.py
Fix: launch PIN re-triggered the first-run setup wizard every visit ( #842 )
2026-06-10 11:40:47 -07:00
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
2026-06-02 10:32:06 -07:00
test_library_retag_job.py
Lyrics: add a "Lyrics Filler" maintenance job + lyrics option in the Re-tag tool (Sokhi)
2026-06-07 17:27:52 -07:00
test_library_stream_fallback.py
test_library_tag_payload.py
Add _build_library_tag_db_data helper
2026-05-25 18:48:45 -07:00
test_library_track_identity.py
Make extract_external_ids recognize all source-tagging conventions
2026-05-02 18:26:12 -07:00
test_lidarr_download_client.py
Fix three Lidarr bugs that prevented it from being a real download source
2026-05-03 15:49:38 -07:00
test_liked_songs_playlist.py
test_listenbrainz_manager.py
Auto-Sync: fix LB pipelines stuck on "Refreshing:" for 5+ minutes
2026-05-27 18:04:55 -07:00
test_listening_stats_batch_queries.py
test_login_endpoints.py
Login recovery (DB + backend): security question to reset a forgotten password
2026-06-10 22:24:54 -07:00
test_login_gate.py
test_lyrics_reembed_from_sidecar.py
test_manual_library_match.py
Fix #787 : Find & Add now records a durable manual match that survives a rescan
2026-06-04 13:46:24 -07:00
test_manual_pick_no_auto_retry.py
Add torrent and usenet release staging support
2026-05-21 14:22:21 -07:00
test_manual_search_endpoint.py
test_matching_engine_cjk.py
test_memory_tracker.py
#802 : on-demand memory-growth diagnostic (tracemalloc, browser-drivable)
2026-06-06 18:31:14 -07:00
test_metadata_cache_table_recreate.py
test_missing_cover_art.py
Cover Art Filler: scan falls back to the raw file path when mapping fails (Sokhi #fix)
2026-06-08 17:32:38 -07:00
test_missing_lyrics_job.py
Lyrics Filler: convert track duration ms→s for LRClib (exact-match was silently defeated)
2026-06-07 19:45:10 -07:00
test_navidrome_cover_url.py
test_navidrome_stream_url.py
#809 Navidrome playback: stream via the server's API when the library isn't mounted on disk
2026-06-07 13:52:14 -07:00
test_orphan_file_detector.py
Fix Picard albumartist orphan false positives
2026-05-22 08:43:57 -07:00
test_path_resolve_confusables.py
test_personalized_api.py
Personalized playlists (3/N): standardized API endpoints
2026-05-15 17:15:25 -07:00
test_personalized_generators_curated.py
test_personalized_generators_singletons.py
test_personalized_generators_variants.py
Personalized playlists (2/N): all 8 generators wired through manager
2026-05-15 17:02:08 -07:00
test_personalized_manager.py
Personalized pipeline: auto-refresh stale snapshots after watchlist scan
2026-05-15 20:53:03 -07:00
test_personalized_playlists_id_gate.py
Blocklist Phase 1 (backend): artist/album/track bans enforced at the wishlist chokepoint
2026-06-07 15:18:25 -07:00
test_pin_rate_limit.py
Security: brute-force limiter on the launch-PIN unlock (Tier 2)
2026-06-10 20:47:46 -07:00
test_playlist_edit.py
test_playlist_reconcile.py
#766 follow-on: source rows borrow their matched server track's cover
2026-06-02 11:08:35 -07:00
test_playlist_sources_adapters.py
Fix: auto-sync capped public Spotify playlists at 100 tracks ( #838 )
2026-06-10 18:31:43 -07:00
test_profile_context.py
Automations: run each as its OWNER profile in the background (part 1 of per-profile sync)
2026-06-10 15:37:56 -07:00
test_profile_password.py
test_profile_recovery.py
test_profile_spotify_resolution.py
Profiles: per-profile Spotify builds for own-app creds OR a token cache
2026-06-10 12:28:03 -07:00
test_provenance_id_persistence.py
Persist source IDs at download time + backfill onto tracks on sync
2026-05-02 17:44:10 -07:00
test_prowlarr_client.py
test_qobuz_credential_sync.py
test_qobuz_playlists.py
test_recommendation_sources.py
test_release_dates.py
test_reorganize_alternate_edition.py
#767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe
2026-06-06 10:53:13 -07:00
test_reorganize_canonical_source.py
Canonical album version — Stage 3: Reorganizer prefers pinned canonical (read)
2026-06-02 11:45:31 -07:00
test_reorganize_db_methods.py
Reorganize queue: race + dedupe fixes from kettui review
2026-04-26 08:40:24 -07:00
test_reorganize_deleted_quarantine.py
Reorganize: skip files in the duplicate-cleaner /deleted quarantine ( #746 )
2026-05-30 00:15:06 -07:00
test_reorganize_orphan_format_handling.py
Reorganize: move orphan-format siblings alongside the canonical
2026-05-10 19:58:31 -07:00
test_reorganize_queue.py
Reorganize queue: race + dedupe fixes from kettui review
2026-04-26 08:40:24 -07:00
test_reorganize_runner.py
Library reorganize: FIFO queue with live status panel
2026-04-25 18:01:32 -07:00
test_reorganize_tag_source.py
Reorganize: optional embedded-tag mode ( closes #592 )
2026-05-15 07:56:18 -07:00
test_reorganize_unknown_artist_hint.py
test_repair_worker_album_fill.py
test_repair_worker_unresolvable_folder_error.py
Album Completeness: surface diagnostic when resolver can't find album folder
2026-05-12 14:04:15 -07:00
test_replaygain_summary_parse.py
Fix: ReplayGain wrote same +52 dB gain to every track
2026-05-03 19:08:35 -07:00
test_request_cleanup_timer.py
test_resolve_mirrored_playlist.py
test_retag_planner.py
test_reverse_proxy_mode.py
test_runtime_state.py
Tighten metadata and import safety
2026-04-27 20:28:05 +03:00
test_scan_wait_action.py
Fix: deep-scan / DB-update automation falsely errors on large libraries (stall-based timeout)
2026-06-01 16:30:28 -07:00
test_script_split_integrity.py
test_search_tracks_relevance.py
Fix: Find & Add library search buried exact matches (case-sensitive ordering)
2026-06-10 17:23:13 -07:00
test_server_playlist_append_mode.py
test_service_credentials.py
Profiles: review fixes — close two gating gaps + reject whitespace secrets
2026-06-10 00:48:03 -07:00
test_settings_redaction.py
Security: stop GET /api/settings from shipping decrypted secrets to the browser
2026-06-09 22:50:18 -07:00
test_similar_artists_status_codes.py
test_similar_artists_worker.py
test_socketio_cors.py
test_soulseek_album_fallback.py
Fix #796 : Soulseek album bundle left completed files in slskd download folder
2026-06-04 21:56:07 -07:00
test_soulseek_album_poll_stall.py
Soulseek album poll: treat 'Aborted'/'Cancelled' transfers as failed
2026-05-29 19:29:55 -07:00
test_soulseek_search_throttle.py
Add min delay between slskd searches (Bell Canada anti-abuse fix)
2026-05-12 19:11:12 -07:00
test_soundcloud_client.py
test_source_ids_registry.py
Source IDs: add canonical registry, adopt at the highest-value sites
2026-05-29 12:19:59 -07:00
test_source_title.py
test_spa_deep_linking.py
feat: artist-detail deep linking — /artist-detail/:source/:id
2026-05-18 13:07:54 -07:00
test_spotify_free_metadata.py
test_spotify_public_api.py
SpotipyFree integration confirmed working (236 tracks live); deps + meta tweak
2026-06-02 22:50:04 -07:00
test_spotify_token_cache.py
Spotify tokens move into the database — daily Docker deauth fixed (wolf39us)
2026-06-07 12:01:33 -07:00
test_spotify_unavailable_reason.py
Spotify: log WHY a request was skipped, not a catch-all "Not authenticated"
2026-06-06 09:40:52 -07:00
test_staging_album_provenance.py
refactor(staging): inject batch-field accessor instead of importing runtime_state
2026-05-20 20:43:35 -07:00
test_stale_guard.py
Artist Sync: guard stale-removal against an unreachable mount + gate it admin-only
2026-06-10 19:33:44 -07:00
test_stats_automations_esc_js.py
test_status_engine_fallback.py
test_subtitle_qualifier_match.py
Matcher: bracketed subtitles no longer read as different songs ( #825 )
2026-06-09 16:03:11 -07:00
test_sync_discovery_scan_events.py
test_tag_writer_multi_artist.py
test_tag_writer_placeholder_guard.py
Full release dates: store + write yyyy-mm-dd end to end ( #824 part 2)
2026-06-08 23:32:42 -07:00
test_tidal_album_tracks.py
Your Albums: selectable wishlist modal + Tidal album resolution
2026-05-11 12:36:16 -07:00
test_tidal_auth_instructions.py
test_tidal_auth_redirect_uri.py
test_tidal_collection_tracks.py
test_tidal_favorite_albums_artists.py
Tidal: rewire favorite albums + artists to V2 user-collection endpoints
2026-05-11 10:03:27 -07:00
test_tidal_qualifier_filter.py
fix(tidal): honour version field in matching and back off on rate limits
2026-06-08 13:50:19 -04:00
test_tidal_rate_limit_backoff.py
test_tidal_search_shortening.py
Reject Tidal streams that silently downgrade from the requested quality
2026-04-24 13:12:30 -07:00
test_title_match_guard.py
Fix #769 : playlist sync matched wrong same-artist track with high confidence
2026-06-02 09:14:26 -07:00
test_tool_progress_events.py
test_torrent_cleanup_orphan.py
Torrents: fix stall handling on "downloading metadata" + stop orphaning in qbit
2026-06-11 14:37:46 -07:00
test_torrent_client_adapters.py
Fix #790 : torrent client URL without http:// scheme fails to connect
2026-06-04 11:57:53 -07:00
test_torrent_stall.py
test_torrent_usenet_plugins.py
test_track_artist_matching.py
test_track_number_repair.py
Fix CI test failures from incomplete dummy config and encoding
2026-04-19 13:04:55 -07:00
test_track_repair_canonical.py
Canonical album version — Stage 4: Track Number Repair prefers canonical (read)
2026-06-02 11:47:42 -07:00
test_track_search_single_query.py
test: api_search_tracks single-query track search
2026-04-19 15:22:24 -07:00
test_unknown_artist_fixer.py
test_usenet_client_adapters.py
test_verification_admin_gate.py
test_verification_status_backfill.py
test_verification_tag_roundtrip.py
feat(verification): status vocabulary, DB column, SOULSYNC_VERIFICATION tag
2026-06-11 01:27:29 +02:00
test_watchlist_album_match.py
Watchlist: stop treating different decimal-volume albums as duplicates (Sokhi — the real bug)
2026-06-08 20:46:40 -07:00
test_watchlist_bulk_add.py
Complete MusicBrainz watchlist source parity
2026-05-18 19:19:25 -07:00
test_watchlist_itunes_id_repair.py
Watchlist: repair iTunes ids that are actually Deezer ids (the 37725457 corruption, proven live)
2026-06-07 11:27:28 -07:00
test_watchlist_itunes_match.py
test_watchlist_scan_history.py
Watchlist: bespoke live scan deck + persistent per-run Scan History ( #831 round 2)
2026-06-09 20:35:16 -07:00
test_watchlist_scanner_scan.py
test_websocket_client_transport.py
Repoint websocket transport test to core.js after split
2026-04-22 11:30:39 -07:00
test_websocket_infrastructure.py
Split metadata source and Spotify status
2026-05-02 22:02:00 +03:00
test_wishlist_pagination.py
test: wishlist SQL pagination and category filter
2026-04-19 15:22:24 -07:00
test_worker_artist_match_gate.py
test_worker_existing_id_marks_matched.py
test_worker_utils_album_track_count.py
test_ws_connect_gate.py
#852 : gate the WebSocket handshake — close the launch-PIN/login bypass
2026-06-11 13:27:03 -07:00
test_yield_policy.py
Import speed: downloads pause ALL enrichment workers, discovery pauses the contention five
2026-06-06 19:05:56 -07:00
test_youtube_ffmpeg_no_eager_download.py
test_youtube_js_runtime.py
Tests: lock the yt-dlp JS-runtime startup warning seam
2026-06-06 16:52:52 -07:00
test_youtube_search_dash_query.py
test_youtube_sync_idempotent_endpoints.py
#702 : make mirrored-playlist cancel/reset/delete idempotent (un-wedge LB weekly sync)
2026-06-11 12:55:55 -07:00