From ed5eed6d54647f5379bcebd3d55d21ce72ee91fc Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 1 Nov 2026 01:42:02 -0700 Subject: [PATCH] docs(media): the deferred Plex leg, and the guards a detritus sweep must respect --- .../Dankserver/Media Duplicate Prune.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/serverAppConfigs-docs/Dankserver/Media Duplicate Prune.md b/serverAppConfigs-docs/Dankserver/Media Duplicate Prune.md index b87e3ca..6b7b35b 100644 --- a/serverAppConfigs-docs/Dankserver/Media Duplicate Prune.md +++ b/serverAppConfigs-docs/Dankserver/Media Duplicate Prune.md @@ -106,6 +106,21 @@ cross it as inotify events. Scan in the order the rescan law sets — Jellyfin t `Idle`, then Plex's Movies section alone, one accepted refresh each; the requests are owned by [[Jellyfin]] and [[Plex]]. +As of 2026-11-01 the Plex leg is deliberately deferred: Plex is stopped and +**masked** (`systemctl --user stop plex && systemctl --user mask plex`) so its +metadata fetches cannot stack on Jellyfin's live scan, and a masked unit stays +stopped through a reboot — `unmask` before starting it. Its Movies section (key 1) +holds ~187 rows naming held paths until that one refresh is accepted. + +The same evening's detritus pass is a second, separate hold: 423 files (12 MiB) in +`/mnt/entropy/.AGENTTRASH/20261101-detritus-sweep`, plan `detritus-sweep-plan.tsv`, +journal `detritus-sweep.jsonl`, 542 husks removed by `sweep`. It moved files only +from folders whose whole subtree held no media, so it creates no stale rows and +needs no scan. The guards that hold a folder back are the finding: external +subtitle folders (428 of them, 6 GiB) and ripped Blu-ray streams — `.sup` PGS, +`.thd`/`.eac3`/`.dts` audio, `.cci` captions, 25 GiB — are not trash, and an +extension the census does not recognise is a reason to stop, not to sweep. + `scripts/media-verify.py` reads differently for a prune than for a relayout: `landed: 0` is the **correct** end state (no server may index the hold), so the verdict is `still at src: 0` with `REAL: 0`, and the rows that simply vanished