From 7ff65526c23fbd9bfe203c78a15dfdb47f9be62e Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Sat, 26 Sep 2026 03:29:51 +0000 Subject: [PATCH] A gate for the mistake I shipped: a name used but never bound MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I broke both composites on main. Editing them with a pattern-match script, I replaced an import line by matching text that had already changed, so the replacement silently matched nothing and three names — RTL_LOCALES, getRuntimeLocale, detectLocale — were used and never imported. Setup threw a ReferenceError and both elements rendered nothing until a hotfix landed. ★ IT PASSED EVERY GATE, AND THAT IS THE INTERESTING PART. It compiled, because a free identifier is valid JavaScript until it RUNS. It passed my grep of the built bundle for the new code, because the code was genuinely there. It passed template-literal, sfc-parse, composite-freshness and SRI, because not one of them evaluates a setup function. The evidence I had could not distinguish a working composite from a dead one, and I called it "verified headless". So this asks the one question those gates cannot: is every name a component uses actually bound — imported, declared, a parameter, or a known global? It reads the same source the compiler reads, tracks real scopes (module, function, block, catch, class), and runs in milliseconds with no browser. Fleet-wide, over every .vue in plugin-designs/ and library/, because the mistake was a text-editing habit rather than anything about one plugin. WRITTEN BY RUNNING IT, which is the only way an allowlist gets honest. The first run reported 4,259 findings — every one a false positive from a real bug in my own walker: a helper that takes a node TYPE was being handed the NODE, so the function branch never fired and every parameter read as unbound. The second run found the globals this tree genuinely uses (d3, customElements, ShadowRoot, CSS, Function, self, the typed arrays) and vite's build-time defines. The third found a real gap in the gate: an SFC may have BOTH a plain