v2.3.1
v2.3.1
Released: 2026-08-11
The dev server no longer rebuilds CSS in an endless loop. Each CSS pass writes the synthesised Tailwind entry as a temp file inside the watched entry directory, which the watcher classified as a style change — producing a fresh temp file, another event, and a visible restyle flash in every open tab every few seconds. Those temp events are now suppressed at the orchestrator's intake layer, and a batch containing nothing else dispatches no tick at all.
Documentation fragment links are correct again. All 23 broken heading anchors used old flat-style IDs, while the docs render with zudo-doc v4+'s hierarchical heading-ID strategy; every fragment was corrected against the real generated IDs, with Japanese targets now using anchors that match their translated headings. The docs drift-gate pins move to 2.3.0 so the existing zfb build
--strict-broken check permanently guards against fragment drift.
Two Rust security advisories are recorded in the cargo deny ledger after confirming neither has a safe upgrade path: rkyv is hard-pinned by parcel_sourcemap, and smartstring is still required by the newest swc_ecma_parser compatible with the workspace's swc_core requirement.
Bug Fixes
fix: suppress zfb-tailwind-entry-* temp watcher events at orchestrator intake (4049289b)
fix(deny): group RUSTSEC-2026-0249 with the other unmaintained entries (ed1ded99)
fix: correct 23 broken docs heading fragments; bump docs zfb pins to 2.3.0 (187ca345)
fix(deny): accept RUSTSEC-2026-0249 (smartstring via swc_ecma_parser) (6dafef43)
fix(deny): accept RUSTSEC-2026-0235 (rkyv via parcel_sourcemap) (29ea4fb6)