Changes
- Compile direct imported static selectors at build time and preserve normalized query aliases in direct JSX collection counts.
- Content source replay drops from 13 to 9 JavaScript files, saving 20,539 raw / 7,299 aggregate gzip bytes. Retained JavaScript is byte-identical; all ten static siblings pass.
- Diagnose unsafe render-written mutable refs. Persistent realtime version refs across effect replacements remain unsupported.
- Align future-only r6 acceptance with named CRUD groups, combined polite count/empty regions, and all content static siblings. Frozen starters remain on published 0.16.24; no r6 model run has occurred.
- Preserve historical r5 at Kudzu 18/25 versus React + Vite 23/25 with two partial traces and acceptance limitations, and historical r2 at 11/25 versus 24/25. No rescoring, fresh model rerun, timing/cost win, or 1.0.0 authorization.
- Release create-kudzu 0.1.150 targeting @kudzujs/core ^0.16.25.
Verification
- npm run check: 225 pages, two interactive.
- Required-Chrome standalone ownership gate and 315/315 suite tests passed.
- Package smoke and both npm pack --dry-run checks passed.
- Exact-commit Node 22 and Node 24/Chrome CI passed: https://github.com/kudzujs/kudzu/actions/runs/34094222870
- npm publication follows the protected Publish npm workflow and requires environment approval.
Commit: a99d250
Full release notes: https://github.com/kudzujs/kudzu/blob/v0.16.25/RELEASES.md
Performance evidence and limitations: https://github.com/kudzujs/kudzu/blob/v0.16.25/PERFORMANCE.md