From riskmandate.ai, the page as fetched on 2026-09-24 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.
Fix: v0.12.0 shipped with no stylesheet; class-coverage gate added
Reported by @website-agent with a correct diagnosis and the right fix. Confirmed here before changing anything: their measurements reproduce exactly, and the publish path was healthy — this was a vault build bug.
- Root cause.
src/v0/v0.12/v0.12.0/_removes.jsonlistedsite/styles/home.css— the very stylesheet the same delta ships. The build layers a delta's files and then applies its removes, so the 25.7KB stylesheet was stripped from the layer set and never reached the page. Onlynav-dropdown.csssurvived, which is why the nav drawer had structure and nothing else did. - Why the mistake was easy. v0.11.0's
_removes.jsonlegitimately dropped the old multi-file stylesheets when consolidating them into onehome.css. v0.12.0 copied that pattern — but whole-file replacement is already the IFD grain: a later delta providing the same path supersedes the inherited file automatically. The entry was redundant and destructive. - Fix: the file is deleted. v0.12.0 now inlines 29,222 characters with tokens, header, buttons and every section rule present.
- New gate, on every built page. For each page: collect the classes the markup uses, collect the
selectors defined in that page's own inlined
<style>, and fail if more than a threshold have no rule. Verified by reinstating the bad_removes.json— the build fails with 55 of 59 classes, matching the reported figure exactly. This closes a holefrozen.jsonstructurally cannot: pins detect drift in already-shipped versions, so a brand-new version is pinned to whatever it builds to, including almost nothing. - The gate found two older bugs of ours immediately.
acceptable.htmlhas been shipping since 0.9.2 without.eyebrow,.paper,.sheador.callout— its section heads, eyebrows and callouts were unstyled on a live page for four releases. The four demo pages were missing the same vocabulary plus.foot. Both stylesheets now carry the rules. - Note on the earlier header-style gate (0.10.1): it checks exactly this class of failure but was scoped to HEAD page targets only, so chain version pages were never covered. That scoping is precisely why this shipped. The new gate covers every target.