0.8.58AUGUST 2026

CLONE · RETAIN · RELEASE

Keep the key.
Keep the draft.

A keyed row can now initialize an independent object draft directly from its item prop, retain it through reorder, and recreate it from the current item after removal.

1Narrow initializer
3Lifecycle proofs
0Component runtimes
P1

KEYED ITEM DRAFT STATE

Clone once.
Own by key.

MOUNT

Clone on mount

Each new key clones its current direct item prop into independent row state.

REORDER

Retain on reorder

The same key preserves its draft and DOM identity while rows move.

REMOVE

Release exactly

Removing a key deletes its row-owned draft with the existing ownership path.

REMOUNT

Start fresh

Re-adding a released key initializes from the latest item instead of stale state.

BOUNDARY

Stay direct

Aliases, property paths, and composed item expressions remain fail-closed.

OUTPUT

Keep static static

Sibling routes without interaction continue to ship complete HTML and no JavaScript.

UPGRADE

Keep Todo-style row drafts in ordinary component syntax.

$npm install @kudzujs/core@^0.8.58