Kudzu 0.8.20 - Explicit keyed ownership
Kudzu 0.8.20 gives keyed collection sites one deterministic JSON-safe ownership result while preserving final DOM allocation and browser behavior.
Highlights
- Records explicit KeyedBlockIR parent and child ownership.
- Links collection signals, calculated bindings, selectors, handlers, effects, expressions, and conditions to keyed blocks.
- Retains complete recursive component-specialization membership.
- Retains row state and ref ownership with source provenance.
- Removes transformer-wide keyed AST side tables.
- Adds no public API, accepted syntax, VDOM, hydration, or browser component runtime.
Validation
npm run checkpasses with 135 generated pages and 2 interactive pages.npm testpasses 168/168.- Focused compiler tests and production build pass on Node 22.
- The complete pre-release-content site and seven representative keyed fixture trees retain output parity with 0.8.19.
- The keyed list runtime remains 21,831 B raw / 6,930 B gzip.
- The interleaved 21-run clean-build median changed by -0.52%.
- A packed 0.8.20 tarball installs, typechecks, and builds a clean generated starter.
Upgrade
npm install @kudzujs/core@^0.8.20create-kudzu remains 0.1.101 because its unchanged template already accepts @kudzujs/core@^0.8.15.