soulsync 3.0.3: dev → main
video gets whole-show wishlisting, a match editor, and global automation pause toggles. music side kills four reported bugs, including the corrupt file detector that scanned nothing and the manual match that refused to stick.
video: wishlist a whole show in one click
the show detail page gets a "Wishlist Missing" button next to Get Missing: it loads every season (including ones you never browsed on a tmdb preview), collects every missing aired episode, and wishlists them all with full art context. the get missing modal gets a matching "Select all missing" button that loads all lazy seasons and ticks every missing episode so one Add click covers the entire show. previously both were season-at-a-time.
video: fix a wrong match from the manage panel
movies and shows now have a Matches section in the manage panel, music parity style. per-service rows (tmdb, tvdb for shows, imdb) with match status, a search to re-point the match to the right title, clear, and a paste-an-id field for imdb. re-pointing clears everything the old wrong match filled in (your locked fields and art are never touched) and the existing workers re-enrich by the new id in the background.
video: shows stuck with no status (the 90 day fiance report)
some shows had no airing info and no watchlist button because their tmdb status never landed: an old bug marked their details as synced even when the tmdb call failed, permanently. a one-time migration re-queues those shows so the background worker fills their status in, and the watchlist button plus airing refresh come back on their own.
automations: a global pause per side
both automations pages get a master toggle. it does not touch your individual automation switches, it just gates whether anything runs on that side: scheduled slots skip but keep their schedule, event triggers drop, manual Run still works. music defaults on, video defaults off (most installs predate the video side). stored in the db, flips apply instantly.
corrupt file detector actually finds files now (#1000 follow-up)
abclive's report: "6741 FLAC files decode-tested, 0 corrupt, 6741 skipped" in 0.1 seconds. nothing was decoded: the scan called the path resolver with no search directories, so every docker/nas library path silently resolved to nothing. the resolver now gets the transfer folder + your music paths, the summary reports what was actually decoded vs unresolved, and a total resolution failure logs a loud "check your music paths / mounts" instead of a healthy-looking run. replaygain filler had the same hole, same fix. flac is now in the docker image so the md5-verifying flac -t check is available out of the box.
manual match refuses to work (wolf39us)
when two source entries pointed at the same server track (same song twice in a playlist, both matched to your one library copy), the match engine silently threw the second one away, forever, no matter how many times you re-matched it. both are your calls now, both count. every remaining silent failure in that flow also logs exactly which gate it died at.
reorganize no longer quarantines your own files
full reorganize ran your files through the duration check meant for fresh downloads, so a file that's a different master than the metadata source's tracklist (a long version, say) got a copy quarantined and the track failed with a scary "wrong file" reason. reorganize files are your own library files, identity not in question: the duration check no longer applies to them. real corruption checks still run.
player + diagnostics fixes
- the now playing modal clipped its controls on short or zoomed-in windows (same bug family as the basic search one in 3.0.2). the body scrolls now; tall viewports are pixel-identical
- the "could not resolve path" warning logged once per boot then went silent forever, hiding intermittent mount failures. it now repeats every 10 minutes and names the actual filesystem error plus how many entries each search folder lists, so a dead nfs/bind mount diagnoses itself