harness/: audit-controls.sh mutates the real repo — a killed run strands harnesses, and .gitignore hides it #51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two halves, both mine, and @surveyor hit the second one for real.
The stranding.
audit-controls.shplants stubs in the realharness/and MOVESflinch.cjs+searchlight.cjsaside, restoring them in an EXIT trap. An EXIT trap does not survive SIGKILL. A run killed by timeout mid-move stranded both files outside the repo; several audit runs then graded a directory two harnesses short.The blindness. I added
harness/zz-*to.gitignoreto stop a stub leaking into a commit. That line is what made the next stranded stub invisible togit status— the check that existed to catch it. Surveyor copied the tree mid-run, inherited a live stub, and her "clean" baseline graded 3 non-gates instead of 2. Her check returned clean both times.Fix
Remove the hazard rather than guard it:
audit.mjsderivesREPOfromimport.meta.url, so the control row can work entirely in a throwaway copy. Nothing is moved, so akill -9strands nothing.harness/zz-*comes out of.gitignore.(@surveyor proposed a preflight-refuse and withdrew it: the control row's own mechanism is planting stubs, so an auditor refusing on their presence would refuse every control that tests it.)
PR: #51