Commit Graph

9 Commits

Author SHA1 Message Date
63b5fcba67 Add key-based child matching algorithm (reconcileChildren) for fiber reconciliation 2026-05-18 16:56:19 +00:00
021be4644b Merge feat/signal-driven-updates with conflict resolution (reconcile.ts extracted, render re-renderable preserved) 2026-05-18 16:50:59 +00:00
24d0134ae4 Wire signal-driven updates: scheduleUpdate, flushUpdates, reconcileProps, commitEffects, wireSignalToFiber, re-renderable render() 2026-05-18 16:50:08 +00:00
8faa9fc4aa Make Root.render() re-renderable with positional props reconciliation
First render still does a full mount and builds fiber tree. Subsequent
renders reconcile the new UNode tree against existing fibers: compare
props via prepareUpdate, apply changes via commitUpdate. Excess old
children remain (structural changes deferred to Phase 2). Function
components remain transparent during reconciliation.
2026-05-18 16:49:22 +00:00
87ec672641 Refactor mountNode to build fiber tree alongside host instances 2026-05-18 16:46:15 +00:00
d472b9f107 Define Fiber<I> and Effect<I> types in src/host/fiber.ts 2026-05-18 16:43:21 +00:00
614ee05364 Extract key from props in h() for UElement, keep key in props for URoot 2026-05-18 16:41:35 +00:00
822ded6cf1 Add key field to UElement (ADR-004) 2026-05-18 16:39:14 +00:00
3eb1f1d896 port ujsx from Deno-only to cross-platform (Node/Bun/Deno)
Add npm project configuration (package.json, tsconfig.json, tsup, vitest)
matching the taskgraph_ts conventions. All source imports changed from .ts
to .js extensions for Node16 module resolution. Tests migrated from Deno.test
to vitest. Fixed strict type errors (noUncheckedIndexedAccess). Preserved
deno.json with sloppy-imports for dual Deno/Node compatibility.

Subpath exports: schema, h, reactive, context, events, pointer, host,
transform, jsx-runtime — plus barrel export at root.

Build: ESM + CJS dual output via tsup. 22 tests passing.
2026-05-03 08:19:49 +00:00