From bc2580b148414dff0fb12f66fc22c78db2cf7706 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 23 Apr 2026 18:15:42 +0200 Subject: [PATCH] =?UTF-8?q?test(lint):=20static=20reference=20linter=20?= =?UTF-8?q?=E2=80=94=20catches=20dead-code=20+=20orphan=20refs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit You were right that Playwright has been catching the easy bugs while the high-signal bugs (lightbox stranded after the Bedside reorg, PVC clinically wrong, prod not rebuilt) all had to be caught by you as the user. Adding a static linter so the class of bug that produced the lightbox regression fails CI next time instead of the app. scripts/lint-references.js walks public/js and validates every getElementById('X') and querySelector('#X') resolves to an id that is defined SOMEWHERE in the repo — either a static HTML attribute, a .id = 'X' assignment, or an id="X" substring inside a JS template string. It also walks HTML for asset references (data-img-src, ,