Fixed in b260bca. src/components/ScrollToTop.jsx now uses document.getElementById(decodeURIComponent(hash.slice(1))) inside try/catch instead of document.querySelector(hash). Proven in Chromium…
Fixed in 28b07ab. scripts/prerender.js now keys the hero preload on the image React marked with a high fetch priority, matched case-insensitively because React writes fetchPriority camelCase in…
Fixed in 28b07ab. The hoist now parks inline in place; both marker substitutions are a split and join instead of String.replace, so a dollar sign in…
Fixed in fef8b07. buildDescription in src/lib/seo.js replaces clampDescription: composed fragments are joined as sentences (a full stop added where one is missing) and an owner-approved description…
Done in aab0104. Nine em dashes in shipped copy replaced with a comma, colon or full stop, no word changed: SEO.jsx:4 (the share-image alt, emitted twice per page), index.html:25 and :31,…
Fixed in 26136f4. grep now takes -e at scripts/secrets.sh:320 and :335, every pattern is compiled against empty input before the scan (an unreadable one exits 2), the NAME=value pattern also…
Correcting this issue's premise before anyone acts on it. Two of its three claims are wrong, observed live while committing 26136f4.
post-commit does not pass silently. With the push…