This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Affected surfaces
ReleasePort's take
Moderate signalThe release adds a global pause toggle to both video and music automation pages, allowing operators to gate all automations without changing individual switches. Existing path‑resolution warnings now repeat every 10 minutes with detailed filesystem error information.
Why it matters: A single toggle simplifies bulk control of video and music automations; repeated warnings every 10 minutes improve observability of path‑resolution failures.
Summary
AI summaryGlobal automation pause toggles added for video and music sides.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Corrupt file detector now scans configured music paths instead of silently skipping all files. Corrupt file detector now scans configured music paths instead of silently skipping all files. Source: llm_adapter@2026-07-15 Confidence: low |
— |
| Feature | Medium |
Show detail page adds "Wishlist Missing" button to wishlist all missing episodes of a show in one click. Show detail page adds "Wishlist Missing" button to wishlist all missing episodes of a show in one click. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Get Missing modal gains "Select all missing" button to tick every missing episode for bulk addition. Get Missing modal gains "Select all missing" button to tick every missing episode for bulk addition. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Video manage panel now includes a Matches section with per‑service match status, re‑point search, clear, and paste‑ID fields. Video manage panel now includes a Matches section with per‑service match status, re‑point search, clear, and paste‑ID fields. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Both automations pages receive a global pause toggle that gates execution without altering individual switches. Both automations pages receive a global pause toggle that gates execution without altering individual switches. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | High |
Manual match now processes both source entries pointing to the same server track instead of silently discarding the second. Manual match now processes both source entries pointing to the same server track instead of silently discarding the second. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Reorganize no longer applies duration check to user‑owned library files, preventing false "wrong file" quarantines. Reorganize no longer applies duration check to user‑owned library files, preventing false "wrong file" quarantines. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
One‑time migration re‑queues shows lacking airing info so watchlist button and status refresh correctly appear. One‑time migration re‑queues shows lacking airing info so watchlist button and status refresh correctly appear. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Now‑playing modal now scrolls its body to prevent control clipping on small or zoomed windows. Now‑playing modal now scrolls its body to prevent control clipping on small or zoomed windows. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Path‑resolution warning now repeats every 10 minutes with detailed filesystem error and folder entry counts. Path‑resolution warning now repeats every 10 minutes with detailed filesystem error and folder entry counts. Source: llm_adapter@2026-07-15 Confidence: high |
— |
Full changelog
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
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]