fix(check-tracks): the pre-gig gate could not run — it read a setlist that never existed
check-tracks.sh is THE empirical gate: it boots every track in the set and proves
each declared orbit makes sound, which is also the only compile check a .tidal file
can have (there is no static typechecker for a GHCi fragment). The comment at the
top says to run it the day before the gig.
It read `setlist_opal2026.txt` from the repo ROOT. That file has never existed. So
the gate has been unrunnable since it was written — and it failed in the least
helpful way possible, printing "no such file" per track from an empty list rather
than saying the setlist was missing.
Now points at `armada/setlist_opal2026.txt`, the file added for #68, so ONE list
drives both questions: "does every orbit sound" (this) and "which orbits ghost
across each transition" (orphan-orbits.py). Reorder the gig, re-answer both.
Two fixes it needed to actually read that file:
* strip TRAILING comments, not just full-line ones — the setlist annotates each
path with its codename and BPM (`live/…/wap.tidal # WAP [133]`), and leaving
that on the line makes every track report "no such file";
* fail loudly when the setlist is absent, instead of silently iterating nothing.
Also: `--help` was taken as a track name, so asking for help answered
"FAIL — no such file", which reads like the rig is broken.
Verified: all 13 tracks resolve through the shell reader. Pinned by two tests —
one asserts check-tracks.sh and orphan-orbits.py name the SAME setlist file (a
broken gate is invisible until the day you need it), the other runs the actual sed
pipeline and asserts no comment text leaks into a path.
Suite 435 -> 437, all green. NOT run end-to-end: it needs audio, and it is ~45 s
per track by design (a tight loop lands evals on a half-loaded interpreter and
reports false failures). It is the natural companion to tomorrow's run-through.
Showing
Please
register
or
sign in
to comment