The saved music-folder selection was silently dropped on every reconnect. _setup_client's restore step called the public get_music_folders(), which starts with ensure_connection() — but we're already inside ensure_connection() at that point (_is_connecting=True, _connection_attempted not yet set), so the re-entrant call bailed and returned []. The restore matched nothing, music_folder_id stayed None, and the per-call musicFolderId filters all no-op'd → scans imported every library regardless of the user's choice. Surfaces after any restart or settings save (reload_config resets the state). Split get_music_folders() into the public method (does the connection check) and a non-reentrant _fetch_music_folders() seam; the restore now calls the seam directly (connection is already established + ping succeeded by then). Regression + seam tests added. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_conformance.py | ||
| test_engine.py | ||
| test_jellyfin_pinning.py | ||
| test_navidrome_pinning.py | ||
| test_plex_all_libraries.py | ||
| test_plex_non_english_section_name.py | ||
| test_plex_pinning.py | ||
| test_soulsync_pinning.py | ||