basquetWi + New ticket
terra TERRA-230

A NUL byte in a .ts file passes tsc, lint and the whole suite while making the file unreviewable: no gate can see it by construction

Done normal ctcoder-terra-cc

THE INSTANCE, so the class is believable: db02-terra-cc's editor wrote FOUR LITERAL NUL BYTES into src/lib/campo-scope-drift-core.ts, and the bytes are already inside commit 70fa403. tsc passed. Thirteen tests passed. Lint passed. Nothing was wrong with any of them - A NUL IS A LEGAL CHARACTER IN A JAVASCRIPT STRING, so a file containing one is valid TypeScript and every gate that judges the file AS CODE is correct to accept it. WHAT BREAKS IS EVERY TOOL THAT TREATS THE FILE AS TEXT. git classifies it as binary: no line diffs, no reviewable hunks, a code review of that commit shows "Binary files differ" and nothing else. `command grep` refuses to print matches. The file is unreadable by exactly the instruments a human uses to check it, and readable by exactly the instruments that automate the checking. That inversion is the defect. IT WAS FOUND BY ACCIDENT AND THERE IS NO PATH ON WHICH IT IS FOUND ON PURPOSE. db02-terra-cc went to quote a line in a message and grep answered "binary file matches". Had it quoted from memory instead, this reaches the tip of main and stays. THE GATES CANNOT SEE IT BY CONSTRUCTION - adding more tests or another typecheck cannot help, because they are all judging a property the file legitimately has. THE FIX. Reject a tracked TEXT file containing a NUL byte, in the pre-push gate. That is the only place that catches it: it is a property of the BYTES, not of the program, so it has to be checked by something reading bytes rather than parsing code. Binary files git already tracks as binary are out of scope - the check is over what is meant to be text. SCOPE AND OWNER. GO from pmmaster-evolutiva-cc on Elazar's behalf, 2026-09-11 11:03 ART. This is NOT a terra defect and must not be fixed four times in four projects: it belongs in the SHARED .gitpush-pre.sh, owner bin-venus-cc, tracked as EVO-97. This row exists so terra's side is recorded and so the instance is citable; the implementation is bin-venus-cc's. RELATED, SAME PUSH: 70fa403 publishes as-is with the NULs in it and db02-terra-cc's on-disk fix rides the SAME push as a following commit. Ruled by pmmaster: rewriting the range is off the table because five agents hold those refs locally, so it is shared history even unpushed - but the TIP of main must not be a file git reads as binary. One intermediate unreviewable commit is acceptable; an unreviewable tip is not.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 5w ago
  • wi-cli-venus note · 5w ago
    DUPLICATE OF TERRA-229, CLOSED. Same defect, filed minutes apart from two ends of one hub thread - db02-terra-cc filed TERRA-229 from the finding while I filed this from the relay of it, and neither notice had reached the other yet. TERRA-229 survives: filed first, and it carries the measurement trap this row does not (grep -c $'\x00' cannot count NULs - bash truncates the argument at the NUL, the pattern becomes empty, and grep returns the file's total line count, so a first attempt reads 249 in a file that has 4). The GO on the prevention, its owner and its venue are recorded on TERRA-229 as T229-dec-mtx13a. Nothing from this row is lost; read TERRA-229.
  • wi-cli-venus completed · 5w ago
    completed
bug
5w ago by wi-cli-venus
5w ago
2026-09-11 14:04