Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .changeset/equals-gates-tracked-select.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/name-the-hook-that-got-a-non-node.md

This file was deleted.

46 changes: 23 additions & 23 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions packages/retree-babel-plugin-compiler/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/babel-plugin-compiler

## 0.11.1

## 0.11.0

### Minor Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/retree-babel-plugin-compiler/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/babel-plugin-compiler",
"version": "0.11.0",
"version": "0.11.1",
"description": "Babel plugin that compiles ReactiveNode classes into proxy-free managed classes.",
"author": "Ryan Bliss",
"private": false,
Expand Down Expand Up @@ -28,7 +28,7 @@
},
"peerDependencies": {
"@babel/core": "^7.0.0",
"@retreejs/core": "0.11.0"
"@retreejs/core": "0.11.1"
},
"repository": {
"directory": "packages/retree-babel-plugin-compiler",
Expand Down
4 changes: 2 additions & 2 deletions packages/retree-benchmark-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
},
"dependencies": {
"@inquirer/prompts": "^7.0.0",
"@retreejs/core": "0.11.0",
"@retreejs/react": "0.11.0",
"@retreejs/core": "0.11.1",
"@retreejs/react": "0.11.1",
"jsdom": "^26.1.0",
"react": "^19.2.5",
"react-dom": "^19.2.5"
Expand Down
2 changes: 2 additions & 0 deletions packages/retree-convex/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/convex

## 0.11.1

## 0.11.0

## 0.10.4
Expand Down
10 changes: 5 additions & 5 deletions packages/retree-convex/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/convex",
"version": "0.11.0",
"version": "0.11.1",
"description": "Sync Convex queries into Retree reactive nodes.",
"author": "Ryan Bliss",
"private": false,
Expand All @@ -15,15 +15,15 @@
"publish:package": "dotenv -e .env -- npm publish --access public"
},
"devDependencies": {
"@retreejs/core": "0.11.0",
"@retreejs/query": "0.11.0",
"@retreejs/core": "0.11.1",
"@retreejs/query": "0.11.1",
"convex": "^1.39.1",
"dotenv-cli": "^11.0.0",
"typescript": "^6.0.2"
},
"peerDependencies": {
"@retreejs/core": "0.11.0",
"@retreejs/query": "0.11.0",
"@retreejs/core": "0.11.1",
"@retreejs/query": "0.11.1",
"convex": "^1.39.1"
},
"repository": {
Expand Down
12 changes: 12 additions & 0 deletions packages/retree-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @retreejs/core

## 0.11.1

### Patch Changes

- 36a2f1c: An explicit `equals` now decides whether the tracked forms of `Retree.select` and `useSelect` notify.

When a tracked selector re-ran because a dependency changed, both forms notified (and `useSelect` re-rendered) even when the `equals` option reported the previous and next selections equal. The dependency check existed so a selector returning a stable node reference still notifies when that node's content changes; it now applies only to the default comparison. With `equals` supplied, a re-run whose result compares equal keeps the previous reference and stays silent, which is what lets a component select a derived value such as a sorted order and re-render only when that order changes.

- b3d7872: `useNode`, `useTree`, `useRaw`, `useSelect`, and `Retree.select` now name themselves when they receive a value that is not a Retree node.

Passing an unmanaged value to one of these APIs used to throw Retree's internal invariant, which reported an unproxied object and asked the caller to file a Retree issue — even though the value came straight from application code. The error now names the API that received it and what arrived instead, for example: `useRaw: expected a Retree-managed node but received an unmanaged array. Pass an object returned by Retree.root(...) or read a child from an existing Retree tree.` The internal invariant still covers values that reach the base-proxy lookup through an internal path.

## 0.11.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/retree-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/core",
"version": "0.11.0",
"version": "0.11.1",
"description": "React to changes in your object trees.",
"author": "Ryan Bliss",
"private": false,
Expand Down
2 changes: 2 additions & 0 deletions packages/retree-create/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/create

## 0.11.1

## 0.11.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/retree-create/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/create",
"version": "0.11.0",
"version": "0.11.1",
"description": "Interactive installer that adds Retree packages to an existing project.",
"author": "Ryan Bliss",
"license": "MIT",
Expand Down
2 changes: 2 additions & 0 deletions packages/retree-devtools/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/devtools

## 0.11.1

## 0.11.0

## 0.10.4
Expand Down
6 changes: 3 additions & 3 deletions packages/retree-devtools/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/devtools",
"version": "0.11.0",
"version": "0.11.1",
"description": "Redux DevTools bridge and structured change-log taps for Retree reactive state.",
"author": "Ryan Bliss",
"private": false,
Expand All @@ -16,12 +16,12 @@
"publish:package": "dotenv -e .env -- npm publish --access public"
},
"devDependencies": {
"@retreejs/core": "0.11.0",
"@retreejs/core": "0.11.1",
"dotenv-cli": "^11.0.0",
"typescript": "^6.0.2"
},
"peerDependencies": {
"@retreejs/core": "0.11.0"
"@retreejs/core": "0.11.1"
},
"repository": {
"directory": "packages/retree-devtools",
Expand Down
2 changes: 2 additions & 0 deletions packages/retree-query/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/query

## 0.11.1

## 0.11.0

## 0.10.4
Expand Down
6 changes: 3 additions & 3 deletions packages/retree-query/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/query",
"version": "0.11.0",
"version": "0.11.1",
"description": "Backend-agnostic async query nodes for Retree reactive state.",
"author": "Ryan Bliss",
"private": false,
Expand All @@ -16,12 +16,12 @@
"publish:package": "dotenv -e .env -- npm publish --access public"
},
"devDependencies": {
"@retreejs/core": "0.11.0",
"@retreejs/core": "0.11.1",
"dotenv-cli": "^11.0.0",
"typescript": "^6.0.2"
},
"peerDependencies": {
"@retreejs/core": "0.11.0"
"@retreejs/core": "0.11.1"
},
"repository": {
"directory": "packages/retree-query",
Expand Down
2 changes: 2 additions & 0 deletions packages/retree-react-convex/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @retreejs/react-convex

## 0.11.1

## 0.11.0

## 0.10.4
Expand Down
6 changes: 3 additions & 3 deletions packages/retree-react-convex/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@retreejs/react-convex",
"version": "0.11.0",
"version": "0.11.1",
"description": "Use ConvexReactClient with Retree Convex nodes.",
"author": "Ryan Bliss",
"license": "MIT",
Expand All @@ -16,13 +16,13 @@
"publish:package": "dotenv -e .env -- npm publish --access public"
},
"devDependencies": {
"@retreejs/convex": "0.11.0",
"@retreejs/convex": "0.11.1",
"convex": "^1.39.1",
"dotenv-cli": "^11.0.0",
"typescript": "^6.0.2"
},
"peerDependencies": {
"@retreejs/convex": "0.11.0",
"@retreejs/convex": "0.11.1",
"convex": "^1.39.1"
},
"repository": {
Expand Down
12 changes: 12 additions & 0 deletions packages/retree-react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @retreejs/react

## 0.11.1

### Patch Changes

- 36a2f1c: An explicit `equals` now decides whether the tracked forms of `Retree.select` and `useSelect` notify.

When a tracked selector re-ran because a dependency changed, both forms notified (and `useSelect` re-rendered) even when the `equals` option reported the previous and next selections equal. The dependency check existed so a selector returning a stable node reference still notifies when that node's content changes; it now applies only to the default comparison. With `equals` supplied, a re-run whose result compares equal keeps the previous reference and stays silent, which is what lets a component select a derived value such as a sorted order and re-render only when that order changes.

- b3d7872: `useNode`, `useTree`, `useRaw`, `useSelect`, and `Retree.select` now name themselves when they receive a value that is not a Retree node.

Passing an unmanaged value to one of these APIs used to throw Retree's internal invariant, which reported an unproxied object and asked the caller to file a Retree issue — even though the value came straight from application code. The error now names the API that received it and what arrived instead, for example: `useRaw: expected a Retree-managed node but received an unmanaged array. Pass an object returned by Retree.root(...) or read a child from an existing Retree tree.` The internal invariant still covers values that reach the base-proxy lookup through an internal path.

## 0.11.0

## 0.10.4
Expand Down
Loading
Loading