Today's buffer clobber should have been caught. It was not, for two reasons that are each worse than the bug: 1. tools/check-drift.sh was NOT wired into gig-up.sh at all. Grepping this file for it returns nothing. The memory note claiming it was wired in was simply wrong, and had been trusted since. 2. The script was mode 100644, so invoking it exits 126 (permission denied) — the FOURTH occurrence of the chmod-vs-git-mode bug, and the reason the "tools executable" check exists. check-drift.sh was not in that check's list either. A check that exists, is documented as guarding the gate, and is never called is worse than no check: it buys confidence it does not deliver. That is the same lesson as the two dead checks found when gig-up was first assembled. NEW HARD SECTION 1c "surface grid intact", asserting two things: * check-drift.sh passes (the committed grid still holds) * migrate-columns.py --plan reports 0 moves (the WORKING TREE needs none) The second is what actually caught today's clobber. When Pulsar wrote its stale buffer over wap.tidal, d4's octer knobs reverted ^32 -> ^52, undoing a migration committed and pushed hours earlier. That was invisible in `git status` — the file just reads as modified, mixed in with PLN's own real edits. What made it visible was migrate-columns being IDEMPOTENT: 0 moves one minute, 1 move the next. Any property a tool can re-derive is a property a gate can assert. PROVEN BY MUTATION, and the first mutation was wrong in a useful way. Flipping ONE knob ^32 -> ^52 did not trip the check, and that is correct: B4 and C4 are both legal d4 slots, so two effects merely swapping slots is not drift. The real clobber put BOTH effects on ^52 — one knob driving two effects — and that trips it immediately, printing the offending moves. Had I stopped at the green run I would have shipped a check I believed in for the wrong reason. Also adds check-drift.sh and take-segments.py to the executable-bit check, and records 100755 for both in git.
| Name |
Last commit
|
Last update |
|---|---|---|
| .gitea/workflows | Loading commit data... | |
| armada | Loading commit data... | |
| blocks | Loading commit data... | |
| blog | Loading commit data... | |
| copycat | Loading commit data... | |
| docs | Loading commit data... | |
| gifts | Loading commit data... | |
| lib-parvagues | Loading commit data... | |
| live | Loading commit data... | |
| output | Loading commit data... | |
| releases | Loading commit data... | |
| sandbox | Loading commit data... | |
| study | Loading commit data... | |
| test | Loading commit data... | |
| tools | Loading commit data... | |
| utils | Loading commit data... | |
| visuals/slop | Loading commit data... | |
| viz | Loading commit data... | |
| .gitignore | Loading commit data... | |
| BootTidal.hs | Loading commit data... | |
| BootTidal.hs.broken | Loading commit data... | |
| BootTidal.visuals.broken.hs | Loading commit data... | |
| CLAUDE.md | Loading commit data... | |
| FOH_MASTER.md | Loading commit data... | |
| LICENSE | Loading commit data... | |
| MORNING.md | Loading commit data... | |
| PatchBay_MultiChannel.xml | Loading commit data... | |
| PatchBay_Perf.xml | Loading commit data... | |
| PatchBay_Perf5.1.xml | Loading commit data... | |
| README.md | Loading commit data... | |
| RUNBOOK.md | Loading commit data... | |
| SHOPPING_LIST.md | Loading commit data... | |
| backlog.md | Loading commit data... | |
| bullet_train.tidal | Loading commit data... | |
| collide.sh | Loading commit data... | |
| debug.tidal | Loading commit data... | |
| didacticpatternvisualizer.pde | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gpu-mode.sh | Loading commit data... | |
| hello.sc | Loading commit data... | |
| init_midi.sh | Loading commit data... | |
| intro.md | Loading commit data... | |
| library.txt | Loading commit data... | |
| link_jack.sh | Loading commit data... | |
| link_samples.sh | Loading commit data... | |
| link_samples_all.txt | Loading commit data... | |
| main_fairbanks.scd | Loading commit data... | |
| notes.md | Loading commit data... | |
| parvagues-sc.service | Loading commit data... | |
| perf-audio.sudoers | Loading commit data... | |
| perf-tray.py | Loading commit data... | |
| perf.sh | Loading commit data... | |
| samples.txt | Loading commit data... | |
| setlist_opal2026.txt | Loading commit data... | |
| start_and_midi.scd | Loading commit data... | |
| test.tidal | Loading commit data... |