0.8.43AUGUST 2026

FORWARD · VALIDATE · ERASE

Cross a third boundary.
Keep ownership direct.

Setters, simple state callbacks, and object refs can pass through two presentation forwarding components while Kudzu still emits direct leaf capabilities, not component instances.

3Direct component boundaries
0 BBrowser runtime added
208/208Tests passing
P1

CALLBACK OWNERSHIP

Validate every boundary.
Erase every forwarding layer.

SIGNALS

Keep the parent signal

The leaf handler retains the original parent SignalIR through two direct forwarding components.

ORDER

Expand before substitution

Each authored component is validated while its callback prop is still a direct identifier, then specialized into the leaf.

HOOKS

Preserve leaf ownership

Local state, effects, deterministic IDs, and object refs retain exact conditional cleanup and fresh remount behavior.

OUTPUT

Erase forwarding functions

Presentation components do not survive in emitted browser JavaScript and static siblings remain zero-JavaScript.

REFS

Release with the DOM

Parent refs resolve to the intrinsic leaf, become null on removal, and resolve to fresh DOM after remount.

FAIL CLOSED

Stop at four

A fourth callback boundary, aliases, spreads, intermediate adapters, and repeated uses remain rejected.

UPGRADE

Keep composing ordinary presentation components.

$npm install @kudzujs/core@^0.8.43