You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 93bb181
Browse filesBrowse the repository at this point in the historyBrowse files
fix(ci): the invisible-character gate never matched anything (#49)
**Measured 2026-08-27: this gate caught 0 of 6 invisible-character test
cases.** It has never detected an NBSP, zero-width space, BOM, soft
hyphen, bidi override or word joiner.
## Root cause
The pattern used UTF-8 **byte sequences** (`\xc2\xa0`) while `grep -P`
matches **characters**. Bytes `c2 a0` are *one* character U+00A0;
`\xc2\xa0` asks for *two*, U+00C2 then U+00A0 — never present.
```
grep -P '\xc2\xa0' -> miss
grep -P '\x{a0}' -> MATCH
```
Only `\x00` worked, being single-byte in both readings. The gate ran,
passed, and could not see what it exists to see.
## Fixed
- **codepoint escapes** in place of byte sequences
- **C0 controls** `\x01-\x08,\x0B,\x0C,\x0E-\x1F` added (TAB/LF/CR
excluded)
- **`grep -a`** — without it grep skips any NUL-bearing file as binary
The C0 range matters: a stray **backspace byte** made a workflow
unparseable in `developer-ecosystem`, so it never ran — and this linter
called it clean.
Canonical fix: hyperpolymath/empty-linter#70. **1 file(s)** here.
**Verified:** YAML re-parsed, and the corrected pattern was confirmed to
catch a real NBSP before the change was kept.
---------
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: codacy-production[bot] <61871480+codacy-production[bot]@users.noreply.github.com>
0 commit comments