commit d5a0674d01d84174a44ddd05b672f94740354530
parent 0facbdfbfdbffacb9e06b7d59e96af28b0d3740e
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Mon, 21 Sep 2026 02:14:08 -0400
plans: correct two claims about the metadata scan that were already wrong
`needsMedia` was recorded as false; jobKinds.ts declares it TRUE and explains
why at length — the scan's target set is "listed, minus what is on disk", so
it opens data/, and against an unmounted drive it would re-request the whole
channel. Writing no media is a different question from reading the media dir.
And `pauseLaneFor` is "download" as of this slice, not null. The bullet now
points at the section that changed it rather than contradicting it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat:
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/plans/FACTS.md b/plans/FACTS.md
@@ -4128,11 +4128,16 @@ never pulls `reader-fs.ts` into a client chunk.
- **The scan is a catalogued operation**, `metadata-scan`: second channel-scoped
entry in `operationCatalog()`, `trigger: "backlog"` (sync stays the ONE
`"cadence"` entry — that is how `/operations/sync` is chosen), platform download
- queue, `needsMedia: false`, and `pauseLaneFor` answers null for it. It is
- deliberately NOT held by the downloads pause: it fetches no media, and the
- operator runs it precisely to decide what a paused lane should fetch when it
- resumes. Its backlog is `snapshot.metadataScan.unscanned`, which must keep
+ queue. Its backlog is `snapshot.metadataScan.unscanned`, which must keep
meaning exactly what `metadataScanTargets()` will fetch.
+ **TWO CORRECTIONS, 2026-09-21.** Its job kind declares **`needsMedia: TRUE`**,
+ not false — `jobKinds.ts` says why at length: the scan's target set is
+ "listed, minus what is already on disk", so it OPENS `data/`, and against an
+ unmounted drive it would re-request the whole channel. (It writes no media;
+ that is a different question.) And `pauseLaneFor` answers **`"download"`**
+ now, because the download runner dispatches it — see the follow-ups section
+ below. What the old exemption was FOR is intact and now belongs to the Run
+ button, which checks the platform cooldown and no gate at all.
- **A scan error suppresses a re-scan of that id for 24 h**
(`METADATA_SCAN_ERROR_COOLDOWN_MS`). Without it a members-only video keeps the
backlog above zero forever and the operation page never stops offering work.