Tasks follow the architecture spec phases: - Phase 0: key field on UElement (2 tasks + review) - Phase 1: reactive-host bridge / fiber tree (4 tasks + review) - Phase 2: key-based children reconciliation (3 tasks + review) - Phase 3: unmount & dispose support (4 tasks) - Phase 4: TypeBox value optimizations (4 tasks) Validated with taskgraph CLI: no cycles, 15 parallel generations, 3 high-risk tasks identified (signal-driven-updates, commit-mutations, fiber-disposal).
1.7 KiB
1.7 KiB
id, name, status, depends_on, created, modified, scope, risk, impact, level
| id | name | status | depends_on | created | modified | scope | risk | impact | level | |
|---|---|---|---|---|---|---|---|---|---|---|
| value-equal-bailout | Value.Equal bail-out for unchanged subtrees | pending |
|
2026-05-18T16:22:57.339429429Z | 2026-05-18T16:22:57.339429873Z | narrow | low | component | implementation |
Description
Add Value.Equal as the first TypeBox optimization layer. When reconciling, if a fiber's cached node is deep-equal to the next node, skip the entire subtree — no prepareUpdate, no commitUpdate, no children reconciliation.
This is the highest-impact optimization according to the architecture doc because it skips entire subtrees. It's also the simplest to implement and has no constraints (unlike Value.Hash which has the global accumulator issue).
The optimization is applied during reconcileProps:
if Value.Equal(fiber.cachedNode, nextNode):
return // skip this fiber and all children
Acceptance Criteria
Value.Equalcheck added before property reconciliation- If fiber's cached node equals next node, skip
prepareUpdateand children reconciliation - Cached node stored on fiber (new
cachedNodefield or reusepropssnapshot) - Correctness: behavior is identical with and without the optimization
- Existing tests pass
- New test: unchanged subtree skips
prepareUpdate/commitUpdate - New test: changed prop still triggers
prepareUpdate - New test: deeply nested unchanged subtree is fully skipped
References
- docs/architecture/reconciler.md — TypeBox Optimization Layer, Value.Equal row
- docs/architecture/reconciler.md — Optimization Strategy (step 1)
Notes
To be filled by implementation agent
Summary
To be filled on completion