-
fix(check-tracks): the pre-gig gate could not run — it read a setlist that never existed · 99f8466f
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.PLN (Algolia) authored99f8466f
×