On a compile-time configured website (config.js), empty <a> tags — an href
but no visible content — get the href inserted as text. Works with
dynamically rendered content via a MutationObserver (childList,
characterData, href attributes), recursive open-shadow-root watching, and a
periodic safety-net re-scan.
Includes manifest.json, config.js, content.js, README, and a jsdom smoke
test.