Archilyzer · Source

archilyzer

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

commit 7e34cc17dedda9f9843e3489bebaefaf325327ca
parent 15e50d6e34e50c9e469e7f3186988087593b96f8
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Sun, 20 Sep 2026 17:44:08 -0400

e2e: a read-only walk-fixture, where what the walk skips is fixed

bench-fixture cannot state what the walk visits: every test in that file
writes verdicts into it, so a "ready 2 of 3" assertion would hold only until
somebody pressed y. walk-fixture is four locked vid1 clips -- w01 and w04
fetched and unjudged, w02 with nothing cached that holds it, w03 already
confirmed -- so the walk is w01 <-> w04 over both reasons at once.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Diffstat:
Mumtool/e2e/fixtures/make-fixture.mjs | 41+++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+), 0 deletions(-)

diff --git a/umtool/e2e/fixtures/make-fixture.mjs b/umtool/e2e/fixtures/make-fixture.mjs @@ -838,6 +838,34 @@ const BENCH = writeProject( ]), ); +// A FOURTH copy, for the WALK -- and this one is READ-ONLY. +// +// The walk visits the clips that still need judgement and are fetched, so what +// it skips has to be pinned down by the fixture rather than by whichever spec +// ran last. bench-fixture cannot do it: every test in that file writes verdicts +// into it, so "ready 2 of 3" would be true only until somebody pressed `y`. +// +// Four clips, all on vid1 (whose cues run 0-21, so none of them outruns its +// transcript), locked so none of them raises a decision: +// +// w01 3.00- 6.00 fetched, unjudged -> on the walk +// w02 9.00-12.00 NOT fetched -> skipped; nothing to play +// w03 12.00-15.00 fetched, CONFIRMED -> skipped; already answered +// w04 15.00-18.00 fetched, unjudged -> on the walk +// +// So the walk is w01 <-> w04, over two different reasons, and the counter reads +// `ready 2 of 3`: three clips need judgement, two of them can have it today. +const WALK = writeProject( + "walk-fixture", + manifest("walk-fixture", "The Walk Fixture", { siteOrigin: "https://archive.example" }, [ + { type: "clip", id: "w01", video: "vid1", start: 3.0, end: 6.0, cite: 3, section: 0, lock: true, quote: "and because" }, + { type: "clip", id: "w02", video: "vid1", start: 9.0, end: 12.0, cite: 9, section: 0, lock: true, quote: "another whole sentence" }, + { type: "clip", id: "w03", video: "vid1", start: 12.0, end: 15.0, cite: 12, section: 0, lock: true, quote: "a fourth one", verdict: "confirmed" }, + { type: "clip", id: "w04", video: "vid1", start: 15.0, end: 18.0, cite: 15, section: 0, lock: true, quote: "trailing off" }, + ]), +); + + // -- STUB BINARIES, so a build is offline and deterministic -------------------- // // The pipeline shells out to yt-dlp for the availability preflight and for every @@ -1022,6 +1050,18 @@ for (const name of ["vid1_10.00-16.00.mp4", "vid1_14.50-18.50.mp4"]) { path.join(BENCH, "out", "clips-raw", name), ); } +// walk-fixture's cache: a file holding w01, one holding w03 and one holding +// w04, and NOTHING covering w02 -- 9.00-12.00 falls between 0.00-9.00 and +// 11.50-15.50. The content is the same nine seconds of tone in all three; what +// is being fixed here is which windows are held, not what is in them. +mkdirSync(path.join(WALK, "out", "clips-raw"), { recursive: true }); +for (const name of ["vid1_0.00-9.00.mp4", "vid1_11.50-15.50.mp4", "vid1_14.50-18.50.mp4"]) { + copyFileSync( + path.join(REPORT, "out", "clips-raw", "vid1_0.00-9.00.mp4"), + path.join(WALK, "out", "clips-raw", name), + ); +} + copyFileSync( path.join(REPORT, "out", "clips-raw", "vid1_0.00-9.00.mp4"), path.join(reports, "no-origin-fixture", "out", "no-origin-fixture.mp4"), @@ -1100,5 +1140,6 @@ console.log(` CHANNELS_DIR=${CHANNELS} (testchan/vid1 punctuated, vid2 not)`); console.log(` projects: report-fixture (4 clips, 1 mid-sentence), no-origin-fixture,`); console.log(` localhost-fixture, bike-fixture (sweep), find/ (shadowed),`); console.log(` deep/nested/solo-fixture (collapse case), bench-fixture (writable),`); +console.log(` walk-fixture (read-only: w01/w04 walkable, w02 unfetched, w03 judged),`); console.log(` longform-fixture (cue gap, legacy .bak, ffmeta), longform-edit-fixture, dash-fixture`); console.log(` ${taken} candidate files copied, 2 mix tracks synthesised`);