Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit b9e2849d2c90bbcc4e0544c471ec6318af974c2f
parent c5819828c5a08a52d18e419f10dae3dc4a100ec0
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Mon,  5 Oct 2026 05:22:52 -0400

umtool cues: a cited report site is named as such (it publishes no transcripts), not reported as a missing channel

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mumtool/report-to-video/cues.mjs | 10++++++++++
Mumtool/report-to-video/cues.test.mjs | 11+++++++++++
2 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/umtool/report-to-video/cues.mjs b/umtool/report-to-video/cues.mjs @@ -208,6 +208,16 @@ export function createCueSource({ async function channelEntry(origin, channelSlug) { const corpus = await getJson(`${origin}/corpus.json`); + // A cited report site (corpus spec 5, `site.scope: "cited"`) publishes its + // reports and the moments they cite — no channels, no transcript shards — + // so there are no cues to walk to. Say that, not "channel not found". + if (corpus.site?.scope === "cited") { + throw new CueLookupError( + `${origin} is a cited report site (corpus.json site.scope "cited"): it publishes no transcripts, ` + + `so cues cannot be read from it — point the manifest at a full archive or use a local corpus`, + { channelSlug, videoId: null, tried: [`${origin}/corpus.json`] }, + ); + } const found = (corpus.channels ?? []).find((c) => c.slug === channelSlug); if (!found) { throw new CueLookupError( diff --git a/umtool/report-to-video/cues.test.mjs b/umtool/report-to-video/cues.test.mjs @@ -474,6 +474,17 @@ test("a channel absent from corpus.json is reported as such", async () => { }); }); +test("a cited report site is named as such: it has no cues to read", async () => { + const cited = { + [`${ORIGIN}/corpus.json`]: { spec: 5, site: { scope: "cited" }, channels: [] }, + }; + await assert.rejects(() => source({ fetchImpl: stubFetch(cited) }).load("chan", "vid1"), (err) => { + assert.match(err.message, /cited report site/); + assert.match(err.message, /publishes no transcripts/); + return true; + }); +}); + // --- reality check ---------------------------------------------------------- // Opt-in: `LIVE=1 pnpm test:scripts`. The stubs above encode assumptions about a