..
artists
Direct ID lookup in Enhance Quality, like Download Discography
2 months ago
automation
Remove old auto-acting Quality Scanner tool (replaced by Quality Upgrade Finder job)
2 weeks ago
blocklist
Blocklist Phase 2b: gate manual downloads with a "download anyway?" confirm
3 weeks ago
database
#901 : one-time backfill — stable ids for EXISTING file-import mirrored tracks
4 days ago
discovery
#913 : add group_similars_by_seed assembly helper (pure, tested)
2 days ago
downloads
#915 : post-processing hydrates lean album context from the PRIMARY source (parity with Reorganize)
2 days ago
enrichment
#868 : disambiguate same-name artists by owned-catalog overlap during enrichment
2 weeks ago
exports
#903 : re-export updates the same ListenBrainz playlist in place (no duplicates)
3 days ago
imports
fix: atomic file placement so Jellyfin can't index a half-written track (null-disc)
2 days ago
library
#915 : redownload pulls full album_data from the primary source for iTunes/Deezer too
2 days ago
matching
Cover art: a sequel digit glued to a CJK title ('…サウンドトラック2') now blocks the wrong-album match
1 week ago
media_server
Navidrome: pin music-folder selection by id, not name (survives renames)
3 weeks ago
metadata
Cover art: a sequel digit glued to a CJK title ('…サウンドトラック2') now blocks the wrong-album match
1 week ago
playback
Player: log SoulSync web-player plays (recently-played + smart-radio recency)
4 weeks ago
playlists
#901 : give file-import playlist tracks a stable id so manual matches stick
4 days ago
radio
Player revamp Phase 2: smart radio ranking (play-count + popularity)
4 weeks ago
repair_jobs
Quality Upgrade: best-in-class matching (direct track-ID tier, dedup-skip, duration guard)
2 weeks ago
search
Multi-artist tags: Search → Download Now finally knows its metadata source (Netti93)
2 weeks ago
static
Fix: mirrored playlist action buttons dead when name has an apostrophe
4 weeks ago
stats
Lift /api/stats/* and /api/listening-stats/* into core/stats/
2 months ago
streaming
Stream button: the player never learns its stream is ready (2.6.5 regression)
3 weeks ago
sync
Sync: re-resolve a manual match against live Plex when its stored key went stale
4 days ago
text
Address Cin review: extract helpers, indexed pool fetch, tidy nits
1 month ago
tools
test(amazon): update search_albums test for derived-from-tracks behavior
1 month ago
watchlist
Complete MusicBrainz watchlist source parity
1 month ago
webui
Fix missing album placeholder asset path
1 month ago
wishlist
#897 : surface the ignore-list on the wishlist page + stop blocking manual re-adds
4 days ago
conftest.py
Remove old auto-acting Quality Scanner tool (replaced by Quality Upgrade Finder job)
2 weeks ago
test_acoustid_error_reporting.py
AcoustID: report errors honestly instead of masking them as 'Skipped'
4 weeks ago
test_acoustid_normalize_angle_annotations.py
feat(verification): persist status (db+tag), surface on Downloads, scan-aware force-imports
2 weeks ago
test_acoustid_scanner.py
Fix import artist override and verification review
2 weeks ago
test_acoustid_skip_logic.py
#797 : stop AcoustID quarantining correct non-English-artist downloads
3 weeks ago
test_acoustid_version_mismatch.py
AcoustID: report errors honestly instead of masking them as 'Skipped'
4 weeks ago
test_admin_gating.py
tests: use soulsync-testdb- prefix in the web_server endpoint tests
2 weeks ago
test_album_bundle.py
#857 : custom in-container completed-downloads path for Torrent/Usenet sources (settings + UI; resolver already consumed the keys)
2 weeks ago
test_album_bundle_dispatch.py
Album bundle: fall back to per-track on an I/O error, don't hard-fail the batch
3 weeks ago
test_album_completeness_job.py
Fix: maintenance findings badge inflated when scan dedup-skipped
2 months ago
test_album_mbid_consistency.py
Update mbid consistency test mock to match new create_finding bool contract
2 months ago
test_amazon_outage.py
Fix #759 : Amazon enrichment floods when its public proxy is down
3 weeks ago
test_archive_pipeline.py
feat(downloads): add archive_pipeline module for torrent/usenet downloads
1 month ago
test_aria2_adapter.py
Add Aria2 to the torrent client list (Shdjfgatdif's request)
2 weeks ago
test_art_apply.py
Cover Art Filler: write cover.jpg to the RESOLVED folder, not the raw DB path (Sokhi — the actual bug)
2 weeks ago
test_art_preservation.py
Fix #764 : import no longer destroys embedded cover art
3 weeks ago
test_artist_album_list_cache_nonspotify.py
#853 follow-up: don't cache a partial Deezer discography on mid-pagination error
2 weeks ago
test_artist_albums_cache_poisoning.py
Artist pages: stop watchlist probes from poisoning the album-list cache
3 weeks ago
test_artist_catalog_disambiguation.py
#868 : disambiguate same-name artists by owned-catalog overlap during enrichment
2 weeks ago
test_artist_db_record_endpoint.py
Artist detail: "DB Record" inspector — everything the DB knows about an artist
2 weeks ago
test_artist_export.py
Export: combine watchlist + library into one button with a scope selector
2 weeks ago
test_artist_full_detail_source_id.py
Fix: enhanced artist view 404s for library artists opened via source ID
4 weeks ago
test_artist_sync_stale_guard.py
Artist Sync: unify with deep scan — server-diff stale removal, scoped to one artist
2 weeks ago
test_artist_the_prefix_variations.py
Dedup: match artists across a leading "The" so "The X" and "X" don't download twice
4 days ago
test_artist_top_tracks_clients.py
Add download buttons + bulk action to artist top-tracks sidebar
2 months ago
test_atomic_audio_save.py
Import: atomic tag saves so an interrupted/OOM save can't destroy the file ( #819 )
2 weeks ago
test_audiodb_worker_stuck_track.py
AudioDB worker: stop infinite loop on direct-ID lookup failure ( #553 )
2 months ago
test_auth_proxy.py
Security: trust a forward-auth proxy user header (Tier 3)
2 weeks ago
test_auth_usage_throttle.py
test: auth last_used_at write throttle
2 months ago
test_auto_sync_js.py
Add node:test contract for auto-sync.js helpers
1 month ago
test_base_title_search_fallback.py
Find & Add: match a Spotify 'Title - Remix' query to the base-titled library track
2 weeks ago
test_caa_release_art.py
Special-edition cover art: prefer the pinned release own cover over the release-group representative
4 days ago
test_canonical_alternates.py
#767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe
3 weeks ago
test_canonical_columns_migration.py
Canonical album version — Stage 1: schema + pure scorer (dormant)
3 weeks ago
test_canonical_db.py
Canonical album version — Stage 2 (core): resolver + persistence (dormant)
3 weeks ago
test_canonical_manual_lock.py
#758 : a manual album match pins + locks the canonical version
3 weeks ago
test_canonical_orchestration.py
Canonical findings: include as much (free) data as possible
3 weeks ago
test_canonical_resolver.py
#767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe
3 weeks ago
test_canonical_version.py
Canonical album version — Stage 1: schema + pure scorer (dormant)
3 weeks ago
test_canonical_version_job.py
Repair settings: dropdown for fixed-choice settings (canonical source_selection)
3 weeks ago
test_config_save_retry.py
Stop config retry tests from writing to the real DB
2 months ago
test_content_filter_regex.py
Fix watchlist content filters: live false positives + auto-scan bypass
2 months ago
test_context_qualifier_match.py
#808 : album-context qualifiers stop blocking library-presence matching
3 weeks ago
test_cover_art_targets.py
Cover art: stop crying "(read-only?)" when files are simply already arted (Sokhi/Boulder)
3 weeks ago
test_create_finding_dedup_counter.py
Repair job card badge — show pending count, not last-scan count
2 months ago
test_credentials_endpoints.py
Security: trust a forward-auth proxy user header (Tier 3)
2 weeks ago
test_dashboard_events.py
Realign test file names
2 months ago
test_database_io_resilience.py
Handle transient SQLite IO during maintenance
1 month ago
test_database_update_health.py
#859 : DB-update stall watchdog + UI self-heal (no more wedged 'Starting...' / frozen bar)
2 weeks ago
test_database_update_reconcile_hook.py
Run auto-reconcile as a scan phase inside the running window
3 weeks ago
test_db_genres_json_normalization.py
DB: normalize legacy comma-separated genres to canonical JSON
4 weeks ago
test_db_integrity.py
DB backups: verify integrity + never evict the last good backup
4 weeks ago
test_db_isolation_guard.py
tests: isolate the database so the suite can never touch the real DB
4 weeks ago
test_db_migration_ledger.py
DB: add schema_migrations ledger + PRAGMA user_version backstop
4 weeks ago
test_db_watchlist_amazon_id_migration.py
DB: stop watchlist_artists rebuilds from dropping amazon_artist_id
4 weeks ago
test_dead_file_cleaner_guard.py
Dead File Cleaner: don't flag a whole library when paths just aren't reachable ( #828 )
2 weeks ago
test_debug_info_services.py
Fix Copy Debug Info music_source + surface missing services
1 month ago
test_dedupe_source_ids.py
Auto-repair duplicated source ids on startup (one-time migration)
3 weeks ago
test_deezer_track_positions.py
Deezer playlists: tag the REAL album track number, not the playlist index
4 days ago
test_deezer_worker_artist_id_guard.py
Fix Deezer enrichment stamping one artist id onto multiple artists
3 weeks ago
test_discogs_collection_id_tagging.py
Discogs ( #848 follow-up): tag collection album IDs for consistency
2 weeks ago
test_discogs_collection_source.py
Discogs: strip artist disambiguation suffixes at every name surface ( #634 )
4 weeks ago
test_discogs_id_typing.py
Discogs: fix master/release ID collision fetching the wrong album
2 weeks ago
test_discogs_track_count.py
Discogs: count rows with empty type_ as real tracks too
2 months ago
test_discover_section_controller_js.py
Discover controller — Cin pre-review polish
2 months ago
test_download_orchestrator_soundcloud.py
Cin-5: Drop per-source attrs from orchestrator
2 months ago
test_download_origins.py
Download Origins: see (and delete) exactly what watchlist + playlist syncs downloaded
3 weeks ago
test_download_plugin_conformance.py
Add torrent usenet PR notes and test updates
1 month ago
test_downloads_pagination.py
Lift shared runtime state into core
2 months ago
test_duplicate_detector_mount_paths.py
Filter same-physical-file duplicates from duplicate detector
2 months ago
test_duplicate_detector_slskd_dedup.py
Fix: maintenance findings badge inflated when scan dedup-skipped
2 months ago
test_duplicate_keep.py
Fix: duplicate detector kept lossy over lossless (rank format first)
3 weeks ago
test_embed_known_source_ids.py
Library re-tag: seam tests for the job scan, apply handler, and source-id embed
3 weeks ago
test_empty_folder_cleaner.py
#912 : Empty Folder Cleaner reads its opt-in from the right config key
2 days ago
test_enrichment_art_preservation.py
Fix #764 : import no longer destroys embedded cover art
3 weeks ago
test_enrichment_artist_id_guard.py
Apply artist-id name-guard to audiodb/qobuz/tidal workers too
3 weeks ago
test_enrichment_services.py
Consolidate enrichment bubble routes behind a service registry
2 months ago
test_enrichment_tag_preservation.py
Metadata: a mid-enrichment crash on an art-less file no longer leaves it UNTAGGED
1 week ago
test_existing_album_folder.py
Downloads: reuse an album's existing folder so batches don't split it ( #829 )
2 weeks ago
test_expired_download_cleaner.py
Expired Cleaner: rename the safety toggle to dry_run (default ON), matching Re-tag
3 weeks ago
test_featured_artist_completion.py
Match featured-artist tracks across discography completion
2 months ago
test_genius_backoff.py
Genius 429 backoff: fail-fast gate instead of napping the import pipeline
3 weeks ago
test_hifi_default_push.py
HiFi: auto-push genuinely-new default instances to existing installs once (so a newly-added working instance reaches everyone, not just Restore-Defaults clickers; removed defaults stay removed)
2 weeks ago
test_hifi_instance_methods.py
Fix "no such table: hifi_instances" via defensive lazy-create
2 months ago
test_hifi_preview_guard.py
HiFi preview: abort the source, don't cascade to a lower-tier preview — #895
4 days ago
test_hls_parsing.py
fix: pick OS-specific ffmpeg binary in hls demux fallback test
2 months ago
test_image_cache.py
Image cache: reject truncated downloads instead of caching broken covers ( #750 )
4 weeks ago
test_import_album_match_endpoint.py
Lift auto-import matching to testable helper + pin contracts
2 months ago
test_import_singles_parallel.py
Restore soulsync logger state between parallel-imports tests
2 months ago
test_import_tag_preservation.py
Import: never wipe a clean/matched import's tags when enhancement fails ( #804 )
3 weeks ago
test_integrity_failure_marks_task_failed.py
Fix: tasks showed Completed when file was quarantined
2 months ago
test_issue_837_find_add_preserves_playlist.py
Fix: manual Find & Add recreated the Jellyfin/Emby playlist ( #837 )
2 weeks ago
test_itunes_album_tracks_limit.py
#918 : iTunes album fetch no longer truncates albums >50 tracks
2 days ago
test_jellyfin_album_thumb.py
Jellyfin/Emby: populate album thumb_url during the library scan (root cause of "flags every album")
3 weeks ago
test_launch_lock_gate.py
Fix: launch PIN re-triggered the first-run setup wizard every visit ( #842 )
2 weeks ago
test_lb_series_detect.py
Roll LB Weekly / Top series into single rolling mirrors (Phase 1c.2.1)
1 month ago
test_library_disk_usage.py
Repair stale media schema during refresh
1 month ago
test_library_reorganize.py
#862 : Library Reorganize falls back to tag-mode when an album has no source ID (media-server libs now actually reorganize)
2 weeks ago
test_library_reorganize_orchestrator.py
Fix #767 : Library Organizer dry run no longer creates folders
3 weeks ago
test_library_retag_job.py
Lyrics: add a "Lyrics Filler" maintenance job + lyrics option in the Re-tag tool (Sokhi)
3 weeks ago
test_library_stream_fallback.py
#809 Navidrome playback: stream via the server's API when the library isn't mounted on disk
3 weeks ago
test_library_tag_payload.py
Add _build_library_tag_db_data helper
1 month ago
test_library_track_identity.py
Make extract_external_ids recognize all source-tagging conventions
2 months ago
test_lidarr_download_client.py
Fix three Lidarr bugs that prevented it from being a real download source
2 months ago
test_liked_songs_playlist.py
Mirrored "Liked Songs" stops 400ing on every auto-refresh (wolf39us)
3 weeks ago
test_listenbrainz_manager.py
Auto-Sync: fix LB pipelines stuck on "Refreshing:" for 5+ minutes
4 weeks ago
test_listening_stats_batch_queries.py
test: listening stats worker batched query paths
2 months ago
test_login_endpoints.py
Login recovery (DB + backend): security question to reset a forgotten password
2 weeks ago
test_login_gate.py
Native login (increment 2/3): login/logout endpoints + require_login gate
2 weeks ago
test_login_provisioning.py
Login mode: enforce "every profile has a password" at every write-point (no gaps)
2 weeks ago
test_lyrics_reembed_from_sidecar.py
Fix CI: drop dead RetagDeps tests + pointless f-string
3 weeks ago
test_m3u_track_resolution.py
M3U export: resolve paths via one bulk read instead of a per-artist search loop (fixes 'Export M3U hangs forever' under active enrichment/scan DB writes)
2 weeks ago
test_manual_library_match.py
Fix #787 : Find & Add now records a durable manual match that survives a rescan
3 weeks ago
test_manual_pick_no_auto_retry.py
Add torrent and usenet release staging support
1 month ago
test_manual_search_endpoint.py
#865 : resolve pasted SoundCloud links (incl. unlisted/private share URLs) via direct yt-dlp resolve; manual-search forces the SoundCloud source
2 weeks ago
test_matching_engine_cjk.py
Fix: duplicate tracks in albums with Japanese / CJK titles ( #722 )
4 weeks ago
test_member_login_password.py
Login mode: let the admin set a member's login password (Manage Profiles)
2 weeks ago
test_memory_tracker.py
#802 : on-demand memory-growth diagnostic (tracemalloc, browser-drivable)
3 weeks ago
test_metadata_cache_table_recreate.py
Fix: metadata cache tables silently missing after DB recovery (stale migration marker)
4 weeks ago
test_mirrored_custom_name.py
Mirrored playlists: custom name alias (overrides display + sync name, survives upstream refresh) — card rename button like the source-ref editor
2 weeks ago
test_missing_cover_art.py
Cover Art Filler: scan falls back to the raw file path when mapping fails (Sokhi #fix)
2 weeks ago
test_missing_lyrics_job.py
Lyrics Filler: convert track duration ms→s for LRClib (exact-match was silently defeated)
3 weeks ago
test_navidrome_cover_url.py
Fix #766 : Navidrome album covers blank in the sync editor (+ other modals)
3 weeks ago
test_navidrome_reconcile.py
#905 (root cause): Navidrome reconcile read current tracks via missing t.id -> playlists doubled
2 days ago
test_navidrome_self_heal.py
Navidrome: self-heal the connection instead of latching disconnected (jimmydotcom)
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
3 weeks ago
test_orphan_file_detector.py
Orphan detector: hard-bail on a mass-orphan flood instead of warn-only
2 weeks ago
test_path_resolve_confusables.py
Delete: resolve the real on-disk file when DB metadata uses curly quotes ( #833 )
2 weeks ago
test_personalized_api.py
Personalized playlists (3/N): standardized API endpoints
1 month ago
test_personalized_generators_curated.py
Personalized playlists (2/N): all 8 generators wired through manager
1 month ago
test_personalized_generators_singletons.py
Personalized playlists (2/N): all 8 generators wired through manager
1 month ago
test_personalized_generators_variants.py
Personalized playlists (2/N): all 8 generators wired through manager
1 month ago
test_personalized_manager.py
Personalized pipeline: auto-refresh stale snapshots after watchlist scan
1 month ago
test_personalized_playlists_id_gate.py
Blocklist Phase 1 (backend): artist/album/track bans enforced at the wishlist chokepoint
3 weeks ago
test_pin_rate_limit.py
Security: brute-force limiter on the launch-PIN unlock (Tier 2)
2 weeks ago
test_playlist_edit.py
Sync: append mode actually dedupes — stop re-adding the whole playlist ( #823 )
2 weeks ago
test_playlist_materialize.py
Playlists: config (separate root + symlink/copy) + pure materializer seam
2 weeks ago
test_playlist_materialize_service.py
Organize-by-playlist: optional custom file naming for the playlist folder
4 days ago
test_playlist_reconcile.py
#766 follow-on: source rows borrow their matched server track's cover
3 weeks ago
test_playlist_sources_adapters.py
Fix: auto-sync capped public Spotify playlists at 100 tracks ( #838 )
2 weeks ago
test_profile_context.py
Automations: run each as its OWNER profile in the background (part 1 of per-profile sync)
2 weeks ago
test_profile_password.py
Native login (increment 1/3): per-profile password DB layer
2 weeks ago
test_profile_recovery.py
Login recovery (DB + backend): security question to reset a forgotten password
2 weeks ago
test_profile_spotify_resolution.py
Profiles: per-profile Spotify builds for own-app creds OR a token cache
2 weeks ago
test_provenance_id_persistence.py
Persist source IDs at download time + backfill onto tracks on sync
2 months ago
test_prowlarr_client.py
test: cover Prowlarr + torrent + usenet adapters
1 month ago
test_qobuz_credential_sync.py
Address Copilot review nits
2 months ago
test_qobuz_playlists.py
Fetch all Qobuz favorite tracks for discovery
1 month ago
test_recommendation_sources.py
Recommendations: explain WHICH of your artists drive each suggestion
3 weeks ago
test_release_dates.py
#705 : release-date gate — unreleased tracks stay out of the wishlist cycle and Fresh Tape
3 weeks ago
test_reorganize_alternate_edition.py
#767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe
3 weeks ago
test_reorganize_canonical_source.py
Canonical album version — Stage 3: Reorganizer prefers pinned canonical (read)
3 weeks ago
test_reorganize_db_methods.py
Reorganize queue: race + dedupe fixes from kettui review
2 months ago
test_reorganize_deleted_quarantine.py
Reorganize: skip files in the duplicate-cleaner /deleted quarantine ( #746 )
4 weeks ago
test_reorganize_feat_matching.py
#914 : Reorganize matches bare local titles to iTunes '(feat. X)' tracks
2 days ago
test_reorganize_orphan_format_handling.py
Reorganize: move orphan-format siblings alongside the canonical
2 months ago
test_reorganize_queue.py
Reorganize queue: race + dedupe fixes from kettui review
2 months ago
test_reorganize_runner.py
Library reorganize: FIFO queue with live status panel
2 months ago
test_reorganize_tag_source.py
Reorganize: optional embedded-tag mode ( closes #592 )
1 month ago
test_reorganize_unknown_artist_hint.py
Reorganize: hint at Unknown Artist Fixer for placeholder-metadata rows
2 months ago
test_repair_scheduler_tz.py
#885 : repair-job scheduling is timezone-independent (Australia/Sydney loop)
1 week ago
test_repair_worker_album_fill.py
fix(album-completeness): block cross-artist auto-fill
1 month ago
test_repair_worker_unresolvable_folder_error.py
Album Completeness: surface diagnostic when resolver can't find album folder
1 month ago
test_replaygain_filler_job.py
#437 : add ReplayGain Filler library-maintenance job
2 weeks ago
test_replaygain_summary_parse.py
Fix: ReplayGain wrote same +52 dB gain to every track
2 months ago
test_request_cleanup_timer.py
test: api/request periodic cleanup timer
2 months ago
test_resolve_mirrored_playlist.py
Playlists: resolve synthetic mirrored batch refs (youtube_mirrored_<pk>/auto_mirror_<pk>) to PK
2 weeks ago
test_resolve_secret.py
#870 : Deezer ARL 'resets itself' — test the SAVED token, not the redaction mask
2 weeks ago
test_retag_planner.py
Library re-tag (1/3): pure planner — match source tracklist + per-field tag diff
3 weeks ago
test_reverse_proxy_mode.py
Security: add gated security headers in reverse-proxy mode (Tier 2)
2 weeks ago
test_runtime_state.py
Tighten metadata and import safety
2 months ago
test_scan_wait_action.py
Fix: deep-scan / DB-update automation falsely errors on large libraries (stall-based timeout)
3 weeks ago
test_script_split_integrity.py
Profiles: per-profile Spotify self-auth (shared app) + My Accounts modal + read wiring
2 weeks ago
test_search_tracks_relevance.py
Fix: Find & Add library search buried exact matches (case-sensitive ordering)
2 weeks ago
test_server_playlist_append_mode.py
Sync: append mode actually dedupes — stop re-adding the whole playlist ( #823 )
2 weeks ago
test_service_credentials.py
Profiles: review fixes — close two gating gaps + reject whitespace secrets
2 weeks ago
test_settings_redaction.py
#879 : a failed settings load must never overwrite the saved config
1 week ago
test_similar_artists_status_codes.py
Fix: MusicMap 404s miscounted as errors in similar-artists worker
3 weeks ago
test_similar_artists_worker.py
Similar Artists worker: guarantee every stored similar has a source id
3 weeks ago
test_socketio_cors.py
Socket.IO CORS: handle self-review nits
2 months ago
test_soulseek_album_fallback.py
Fix #796 : Soulseek album bundle left completed files in slskd download folder
3 weeks ago
test_soulseek_album_poll_stall.py
Soulseek album poll: treat 'Aborted'/'Cancelled' transfers as failed
4 weeks ago
test_soulseek_search_throttle.py
Add min delay between slskd searches (Bell Canada anti-abuse fix)
1 month ago
test_soundcloud_client.py
#865 : resolve pasted SoundCloud links (incl. unlisted/private share URLs) via direct yt-dlp resolve; manual-search forces the SoundCloud source
2 weeks ago
test_source_ids_registry.py
Source IDs: add canonical registry, adopt at the highest-value sites
4 weeks ago
test_source_title.py
Fix #768 : playlist sync editor refusing to match certain tracks
3 weeks ago
test_spa_deep_linking.py
feat: artist-detail deep linking — /artist-detail/:source/:id
1 month ago
test_spotify_free_metadata.py
Spotify: rename "Spotify Free" → "Spotify (no auth)", default enrichment to it
2 weeks ago
test_spotify_free_status.py
Spotify (no-auth): report connected + 'Spotify (no-auth)' test result instead of a Deezer fallback
2 weeks ago
test_spotify_public_api.py
SpotipyFree integration confirmed working (236 tracks live); deps + meta tweak
3 weeks ago
test_spotify_token_cache.py
Spotify tokens move into the database — daily Docker deauth fixed (wolf39us)
3 weeks ago
test_spotify_unavailable_reason.py
Spotify: log WHY a request was skipped, not a catch-all "Not authenticated"
3 weeks ago
test_spotify_worker_status.py
#887 : Spotify enrichment shows 'Running (Spotify Free)' for no-auth users, not 'Not Authenticated'
1 week ago
test_staging_album_provenance.py
refactor(staging): inject batch-field accessor instead of importing runtime_state
1 month ago
test_stale_guard.py
Orphan detector: hard-bail on a mass-orphan flood instead of warn-only
2 weeks ago
test_stats_automations_esc_js.py
Fix: mirrored playlist action buttons dead when name has an apostrophe
4 weeks ago
test_status_engine_fallback.py
Manual picks: stream results, don't auto-retry, fix stuck-at-0%
2 months ago
test_subtitle_qualifier_match.py
Matcher: bracketed subtitles no longer read as different songs ( #825 )
2 weeks ago
test_sync_dedupe.py
#905 (part 1): push the deduped track list to the media server, not the raw matched list
2 days ago
test_sync_discovery_scan_events.py
Realign test file names
2 months ago
test_tag_writer_multi_artist.py
AcoustID scanner: multi-candidate match + duration guard + multi-value retag
1 month ago
test_tag_writer_placeholder_guard.py
Full release dates: store + write yyyy-mm-dd end to end ( #824 part 2)
2 weeks ago
test_tidal_album_tracks.py
Your Albums: selectable wishlist modal + Tidal album resolution
2 months ago
test_tidal_auth_instructions.py
Show Tidal callback port (not Spotify's) in auth instructions
2 months ago
test_tidal_auth_redirect_uri.py
Honor configured Tidal redirect_uri, drop request-host fallback
2 months ago
test_tidal_collection_tracks.py
#880 : retry 429 mid-walk when paginating Tidal Favorite Tracks (don't truncate)
1 week ago
test_tidal_favorite_albums_artists.py
Tidal: rewire favorite albums + artists to V2 user-collection endpoints
2 months ago
test_tidal_playlist_batch_chunking.py
#867 : Tidal playlist discovery shows all tracks (was capped to ~21)
2 weeks ago
test_tidal_qualifier_filter.py
fix(tidal): honour version field in matching and back off on rate limits
2 weeks ago
test_tidal_rate_limit_backoff.py
fix(tidal): honour version field in matching and back off on rate limits
2 weeks ago
test_tidal_search_shortening.py
Reject Tidal streams that silently downgrade from the requested quality
2 months ago
test_title_match_guard.py
Fix #769 : playlist sync matched wrong same-artist track with high confidence
3 weeks ago
test_tool_progress_events.py
Remove old auto-acting Quality Scanner tool (replaced by Quality Upgrade Finder job)
2 weeks ago
test_torrent_cleanup_orphan.py
Torrents: fix stall handling on "downloading metadata" + stop orphaning in qbit
2 weeks ago
test_torrent_client_adapters.py
Fix #790 : torrent client URL without http:// scheme fails to connect
3 weeks ago
test_torrent_stall.py
Torrents: fix stall handling on "downloading metadata" + stop orphaning in qbit
2 weeks ago
test_torrent_usenet_plugins.py
Torrents: stalled-torrent handling — abandon a dead magnet instead of holding a worker 6h (noldevin)
3 weeks ago
test_track_artist_matching.py
Add fallback negative-case test for track-artist matching
2 months ago
test_track_number_repair.py
Fix CI test failures from incomplete dummy config and encoding
2 months ago
test_track_repair_canonical.py
Canonical album version — Stage 4: Track Number Repair prefers canonical (read)
3 weeks ago
test_track_search_single_query.py
test: api_search_tracks single-query track search
2 months ago
test_tracks_year_migration.py
#910 : add the per-track 'year' column the Full Refresh insert needs
2 days ago
test_unknown_artist_fixer.py
fix(repair): rewire Unknown Artist Fixer deferred imports ( #646 )
1 month ago
test_usenet_client_adapters.py
NZBGet: import from the final location, not the incomplete '….#NZBID' dir
1 week ago
test_verification_admin_gate.py
#845 follow-up: admin-gate the mutating verification-review endpoints
2 weeks ago
test_verification_status_backfill.py
#845 tests: cover the verification_status migration backfill
2 weeks ago
test_verification_tag_roundtrip.py
feat(verification): status vocabulary, DB column, SOULSYNC_VERIFICATION tag
2 weeks ago
test_watchlist_album_match.py
Watchlist: stop treating different decimal-volume albums as duplicates (Sokhi — the real bug)
2 weeks ago
test_watchlist_auto_download.py
Watchlist: per-artist 'auto-download' toggle (follow-only) — off = discover/surface releases but skip the wishlist add; default on
2 weeks ago
test_watchlist_bulk_add.py
Complete MusicBrainz watchlist source parity
1 month ago
test_watchlist_itunes_id_repair.py
Watchlist: repair iTunes ids that are actually Deezer ids (the 37725457 corruption, proven live)
3 weeks ago
test_watchlist_itunes_match.py
Watchlist: iTunes ID backfill never worked in the normal wiring — use the registry client
3 weeks ago
test_watchlist_scan_history.py
Watchlist: bespoke live scan deck + persistent per-run Scan History ( #831 round 2)
2 weeks ago
test_watchlist_scanner_scan.py
Watchlist: per-artist 'auto-download' toggle (follow-only) — off = discover/surface releases but skip the wishlist add; default on
2 weeks ago
test_websocket_client_transport.py
Repoint websocket transport test to core.js after split
2 months ago
test_websocket_infrastructure.py
Split metadata source and Spotify status
2 months ago
test_wishlist_pagination.py
test: wishlist SQL pagination and category filter
2 months ago
test_worker_artist_disambiguation.py
#868 : disambiguate same-name artists by owned-catalog overlap during enrichment
2 weeks ago
test_worker_artist_match_gate.py
Tighten artist matching: 0.85 gate + shared uniqueness guard
3 weeks ago
test_worker_existing_id_marks_matched.py
test: enrichment worker re-processing fix and migration backfill
2 months ago
test_worker_utils_album_track_count.py
Repair stale media schema during refresh
1 month ago
test_ws_connect_gate.py
#852 tests: cover the login-mode WS gate (the reported bypass was the login modal)
2 weeks ago
test_yield_policy.py
Import speed: downloads pause ALL enrichment workers, discovery pauses the contention five
3 weeks ago
test_youtube_cookies.py
#902 : YouTube Liked Music sync — paste a cookies.txt (server/Docker auth)
3 days ago
test_youtube_ffmpeg_no_eager_download.py
ffmpeg gate also covers is_available — fixes the actual leak path
2 months ago
test_youtube_js_runtime.py
Tests: lock the yt-dlp JS-runtime startup warning seam
3 weeks ago
test_youtube_search_dash_query.py
Escape dash-leading YouTube search queries
1 month ago
test_youtube_sync_idempotent_endpoints.py
#702 : make mirrored-playlist cancel/reset/delete idempotent (un-wedge LB weekly sync)
2 weeks ago
test_youtube_track_meta.py
#863 : derive YouTube track artist from music fields / -Topic channel / 'Artist - Title' instead of the playlist owner
2 weeks ago