Archilyzer · Source

archilyzer

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

commit 5221cddf6656fd323c88f4a84e94ebe224799a98
parent d044af114ddf70fd38d176e98a1bf916df9469ef
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Sun, 20 Sep 2026 17:49:54 -0400

e2e: put walk-fixture w02 in the cache GAP, not half inside a neighbour

The bench plays the best OVERLAPPING file it has, so a clip nothing HOLDS can
still show a picture borrowed from the file next door -- w02 at 9.00-12.00
overlapped vid1_11.50-15.50 by half a second and rendered a player. Both
states are off the walk (neither can be watched through), but only a clip with
nothing touching it says "nothing fetched for this clip yet", which is what
this fixture is here to pin down.

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

Diffstat:
Mumtool/e2e/clip-bench.spec.ts | 5+++--
Mumtool/e2e/fixtures/make-fixture.mjs | 16+++++++++++-----
2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/umtool/e2e/clip-bench.spec.ts b/umtool/e2e/clip-bench.spec.ts @@ -359,8 +359,9 @@ test("a date that is not a real day is refused, and the bench says so", async ({ // These run against reports/walk-fixture, which is read-only for exactly this // reason: every other test in this file writes verdicts into bench-fixture, so // "ready 2 of 3" would be true there only until one of them ran. Its four -// clips are w01 (fetched, unjudged), w02 (nothing holds 9-12), w03 (fetched, -// already confirmed) and w04 (fetched, unjudged). +// clips are w01 (fetched, unjudged), w02 (in the gap between two cached files, +// so nothing to play at all), w03 (fetched, already confirmed) and w04 +// (fetched, unjudged). // --------------------------------------------------------------------------- test("the walk visits only the clips that need judgement and are fetched", async ({ page }) => { diff --git a/umtool/e2e/fixtures/make-fixture.mjs b/umtool/e2e/fixtures/make-fixture.mjs @@ -849,17 +849,22 @@ const BENCH = writeProject( // 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 +// w02 9.20-11.20 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 // +// w02 sits in the GAP between two cached files rather than merely outrunning +// one: the bench plays the best OVERLAPPING file it has, so a clip half-held by +// a neighbour's download still shows a picture. That is a different state from +// "nothing to play", and the walk skips both -- neither can be watched through. +// // 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: "w02", video: "vid1", start: 9.2, end: 11.2, 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" }, ]), @@ -1051,9 +1056,10 @@ for (const name of ["vid1_10.00-16.00.mp4", "vid1_14.50-18.50.mp4"]) { ); } // 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. +// w04, and NOTHING touching w02 -- 9.20-11.20 falls in the gap between +// 0.00-9.00 and 11.50-15.50, so it has no picture at all rather than half of +// one. 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(