Why I Re-Run My Injection Tests Every Time I Bump the Model
I ran a prompt-injection regression suite on my LLM pipeline. A naive guard caught 2 of 11, a structural guard caught all 11, and it flagged my own regression.
archive
356 · Page 4
I ran a prompt-injection regression suite on my LLM pipeline. A naive guard caught 2 of 11, a structural guard caught all 11, and it flagged my own regression.
WebMCP shipped as a Chrome 149 origin trial, but its API already moved: navigator.modelContext is now document.modelContext and provideContext is gone.
Google retired FAQ rich results on May 7, 2026. FAQPage JSON-LD still passes the schema validator but returns DEPRECATED. What to change in code and content.
Chrome 149 said active WebSockets no longer block bfcache. I re-measured on three Chrome 150 builds and notRestoredReasons still returned 'websocket'. Why?
Keyboard focus escaped an aria-modal dialog on the third Tab press while axe reported zero violations. I measured the same markup under aria-hidden and inert.
I added Restaurant structured data to my restaurant-discovery PWA, then fed the same three defects to three validation layers to measure which one catches what.
Six pages, one bfcache blocker each, measured on real back navigations with pageshow.persisted and notRestoredReasons. Only unload blocked the restore.
W3C published a first draft on language and direction metadata for strings. I audited my four-language blog against it, measured where dir=auto guesses wrong, and shipped a build gate.
22×22 pagination links your thumb keeps missing still scored 92 on Lighthouse. I measured WCAG 2.2 SC 2.5.8 (24×24) two ways and coded the spacing exception.
A stray nosnippet no longer hides your snippet only. Google says it blocks the page as AI Overview input. I built broken and fixed pages and a parser to audit.
Same HTML, same bytes, one CSS line, and forced layout dropped from 27.3ms to 1.8ms. I traced content-visibility: auto in Chrome and mapped its a11y traps.
INP replaced FID in Core Web Vitals in 2024. I ran 220ms of work as one blocking task versus sliced with scheduler.yield: 264ms fell to 56ms, in code and logs.