docs(plex,jellyfin): the scan doors are not waiters; supersedes b82655d

`status` compares a recorded timestamp with `--after`. Measured 2026-11-04: Plex
answered `settled` in the same second its own trigger was accepted (stamp
19:46:59Z for a request accepted 19:46:58Z) and still answered `settled` from that
one stamp 30 minutes later while the walk ran. So no epoch survives it — a journal
mtime fails and the trigger's epoch fails, because the trigger satisfies the door it
was asked to wait for. That is the correction of b82655d, which prescribed the
trigger's epoch for this door.

Jellyfin's `EndTimeUtc` only advances when a scan finishes, so there the trigger's
epoch is sound and a file mtime is not; its `wait` already refuses an epoch an
earlier task passes. The proof a scan did its work stays `media-verify.py`
replaying the journal: a scan can clear rows but cannot invent one.
This commit is contained in:
dank committed 2026-11-04 12:20:59 -08:00
1 parent b82655d30a
commit 146c28da9f
2 files changed
+28 -17

No files matched your search

+6 -2
View File
@@ -314,8 +314,12 @@ trigger`, then `… wait`. It calls the library settled only on the rule below
task seen `Running` (or a run that finished while it watched) first, then
`--require-quiet` reads with no scan and no writes — and refuses by name when the
scan never started, because a watcher that saw no `Running` would otherwise report
the pre-scan library as the fresh one. `… status --after $(stat -c %Y <journal>)`
is the "has the scan reached my moves" answer, read from the task's `EndTimeUtc`.
the pre-scan library as the fresh one. `… status --after <the trigger's epoch>` is the
"has the scan reached my moves" answer, read from the task's `EndTimeUtc` — and that
timestamp only advances when a scan *finishes*, so the epoch must be one your trigger
could not have followed: a journal mtime is already passed by whatever scan ran before
you asked, and bare `status` cannot tell that walk from yours, while `wait` refuses such
an epoch by name. The Plex door is worse still — [[Plex]].
It carries every law below. Hand-written, the door is a `curl -K` on a mode-600
config: the scan key lives in `~/.config/secrets/jellyfin` (mode 600; the same