0.8.18AUGUST 2026

COMPONENT OWNERSHIP

Own state explicitly.
Allocate it exactly as before.

State, setters, props, refs, IDs, and specialized component calls now form one JSON-safe source result while build-time rendering keeps final route ownership unchanged.

6Explicit ownership kinds
0 BRuntime graph delta
167/167Tests passing
01

WHAT CHANGED

Trace lexical ownership.
Preserve runtime allocation.

RESULT

JSON-safe analysis

Every compiled non-Worker source retains ordered owners and specializations without AST nodes, maps, sets, closures, or symbols.

STATE

Per-signal owners

Commands resolve each state independently, including mixed parent, specialized child, keyed row, and Context Provider ownership.

PROPS

Explicit links

Specialized props record defaults and the parent, reducer, or Context signals they carry across the supported boundary.

HOOKS

Refs and IDs

Ordinary and specialized refs, deterministic IDs, state, and setters retain ordered slots and honest source ranges.

BOUNDARY

No component runtime

The result describes compile-time ownership only. It does not serialize JSX or retain a browser component tree.

OUTPUT

Byte parity

Before release content, the complete build modules, plans, HTML, and browser assets matched 0.8.17 byte for byte.

UPGRADE

Make ownership explicit.

$npm install @kudzujs/core@^0.8.18