Archilyzer · Source

archilyzer

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

commit 99cc00a5c14ea40e0917fcd804713228c9e07a97
parent 823af47cec260d0084f4eb1f22f5c378a26d0b02
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Mon, 21 Sep 2026 02:52:59 -0400

FACTS: what the umtool suite does without the song data

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

Diffstat:
Mplans/FACTS.md | 28++++++++++++++++++++++++++++
1 file changed, 28 insertions(+), 0 deletions(-)

diff --git a/plans/FACTS.md b/plans/FACTS.md @@ -4833,3 +4833,31 @@ or an explicit clips total, a count on the storage page, and an eviction rule"). 60 s, 32 entries; `measureTree` is BANNED in `noCorpusWalkInRenderPaths.test.ts` with an allow map naming that one file, and the ban's match is word-bounded so `measureTreeCached` is distinguishable. + +### The umtool suite skips instead of going red without the song data + +- **`make-fixture.mjs` used to throw on its first readdir of `SONG_DATA`**, + taking the ENTIRE suite down before the test server started — including the + two dozen specs that have nothing to do with the song project. It tolerates + a missing or partial source now. +- **`fixtures/song-capabilities.mjs` is the one rule, read by two callers.** + `make-fixture.mjs` writes `fixture-capabilities.json` as the record (and + warns on stderr); `e2e/capabilities.ts` answers the same question for the + specs, **from the SOURCE directories rather than from that file** — Playwright + loads spec modules to build its test list and the fixture is built by a + `webServer` command, so on a fresh checkout the file is not there yet and a + helper that failed closed on its absence would skip the song suite on a + machine that HAS the data. +- Three capabilities, because they are three halves of the same absent archive: + `song` (cand2 + wav48), `media` (the face deck reads source videos), `asr` + (the phrase console runs against the real corpus). +- Skipped, each confirmed failing on main under the same missing data: browse + (3), deck (2), faces (6), find (whole file), triage (whole file), usage + (whole file), undo (3 of 4 — the empty-journal refusal still runs), projects + (1). +- **`mix.spec.ts` IS ORDER-DEPENDENT, in both directions, on main.** In a full + suite run `:166`/`:201` fail and `:110` passes; in a four-spec run it is the + other way round. The fixture is built once per suite invocation and earlier + specs leave clip windows in `channels/testchan/data/<id>/clips/`, which + `projectCache` folds in — so which file `containing()` picks depends on what + ran first. Not a capability, not skipped, and it predates this work.