The privacy maturation from v1 through v4 teaches a fundamental engineering lesson: post-publication scrubs (v1–v3) are inherently fragile because they operate on generated output. Each new article batch creates a fresh surface for provider-domain fragments. By contrast, emission-time filtering (v4) inserts the blocklist at the generation point — the batch_insert.py redact_provider_domains() function — ensuring no fragment ever reaches the HTML. The regeneration-loop instability that plagued v3 (CDN nodes serving different page states) cannot occur because there are no fragments to regenerate. Architecture over remediation.