- Settings: 'Playlists Folder' path field (Unlock pattern, separate-root help text), a Symlinks/Copies selector, and a 'Rebuild playlist folders now' button (standard test-button style). Wired through PATH_INPUT_IDS / load / save, plus 'playlists' added to the settings save allowlist so it persists. - POST /api/playlists/materialize/rebuild → rebuild_organized_playlists_from_db: rebuilds every organize-by-playlist folder from CURRENT ownership, re-matching each track with check_track_exists (name, not IDs) so it self-heals after a reorganize / membership change. +1 test. 70 materialize tests + JS integrity pass; settings round-trip wiring verified. |
||
|---|---|---|
| .. | ||
| sources | ||
| __init__.py | ||
| explorer.py | ||
| lb_series.py | ||
| materialize.py | ||
| materialize_service.py | ||
| organize_download.py | ||
| pipeline.py | ||
| source_refs.py | ||