Repository navigation
v0.9.0
Minor Changes
- b5475d5: Add
Retree.materializeAsyncto run bounded generator steps across host tasks. It preserves proxy and memo caches between slices, rejects stale or cancelled work, reports progress, and returns only the completed result.
Patch Changes
-
bff2f99: Make unchanged automatic memo reads constant-time when all reads have managed owners. Validate only recently written owners, retain dependency replay values, and fall back to full validation for silent writes and bounded-history overflow. Ignored data and unscoped getters retain their validation behavior.
Track returned managed-node identities as well as property owners so terminal child reads invalidate correctly. Fall back to full validation when WeakRef is unavailable, preserving ordinary writes in those runtimes.
-
4abe8cd: Store each managed node's base and current view in one record. Invalidate unobserved ancestor identities on writes and create their views on first read. Observers and intermediate transaction reads still receive fresh identities. Retained views share the base node's live parent edge across adoption and detachment.
-
eb671d5: Accumulate transaction change records in linear time and avoid scheduling unused ancestor payloads. Traverse deep tree listeners iteratively while preserving change order and React identities.
-
f6d0748: Keep direct snapshot writes constant-time after the first root lookup. Settle subtree versions only when their root is read, coalesce shared ancestor work, and cache tree-listener paths. Preserve pending versions across moves and detachments without enabling expensive writes through unrelated listeners.
-
b040d1c: Normalize nested managed references in new input so raw trees remain proxy-free before their children are read. Reuse the existing managed identity when rooting an already-managed raw object.
Keep plain ancestors lazy when an input contains an existing managed leaf, so deep inputs do not enter recursive proxy construction.
-
26b5161: Keep raw child lookup correct after silent structural writes by validating its slot index against write history instead of React render versions. Unrelated writes reuse the index; unknown or expired history triggers a conservative rebuild.
Shorten repeated ownership, move, and uninitialized-support diagnostics while retaining their failure conditions and recovery guidance.
-
b040d1c: Resolve only the requested raw child in useRaw. Pass
toManaged(row, { key: index })to skip the raw slot lookup when the index, property, or Map key is known. Existing value lookup remains supported and indexes raw slots once per node version without materializing other children.Share raw slot and result validation with the prepared child resolver to avoid duplicate reads during keyed resolution.
-
514c0bc: Retain active dependency records across lifecycle refreshes, preserve pending comparison baselines, and remove consumed entries from the prior-record lookup instead of building a second key set.
Packages
@retreejs/core@0.9.0@retreejs/query@0.9.0@retreejs/react@0.9.0@retreejs/devtools@0.9.0@retreejs/convex@0.9.0@retreejs/react-convex@0.9.0@retreejs/create@0.9.0