diff --git a/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json b/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json
index 8dffe844..b0da3142 100644
--- a/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json
+++ b/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json
@@ -5,11 +5,6 @@
       "version": "4.5.0",
       "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
       "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
-    },
-    "lodash.remove": {
-      "version": "4.7.0",
-      "resolved": "https://registry.npmjs.org/lodash.remove/-/lodash.remove-4.7.0.tgz",
-      "integrity": "sha512-GnwkSsEXGXirSxh3YI+jc/qvptE2DV8ZjA4liK0NT1MJ3mNDMFhX3bY+4Wr8onlNItYuPp7/4u19Fi55mvzkTw=="
     }
   }
 }
diff --git a/packages/react-meteor-data/.versions b/packages/react-meteor-data/.versions
index e6b11aca..96d1b844 100644
--- a/packages/react-meteor-data/.versions
+++ b/packages/react-meteor-data/.versions
@@ -11,29 +11,29 @@ core-runtime@1.0.0
 ddp@1.4.2
 ddp-client@3.1.0
 ddp-common@1.4.4
-ddp-server@3.1.0
+ddp-server@3.1.2
 diff-sequence@1.1.3
 dynamic-import@0.7.4
 ecmascript@0.16.10
 ecmascript-runtime@0.8.3
-ecmascript-runtime-client@0.12.2
+ecmascript-runtime-client@0.12.3
 ecmascript-runtime-server@0.11.1
 ejson@1.1.4
 facts-base@1.0.2
-fetch@0.1.5
+fetch@0.1.6
 geojson-utils@1.0.12
 htmljs@2.0.1
 id-map@1.2.0
 inter-process-messaging@0.1.2
 jquery@3.0.2
-local-test:react-meteor-data@3.0.4-beta.0
-logging@1.3.5
+local-test:react-meteor-data@4.0.0-beta.1
+logging@1.3.6
 meteor@2.1.0
 minimongo@2.0.2
-modern-browsers@0.2.0
+modern-browsers@0.2.1
 modules@0.20.3
 modules-runtime@0.13.2
-mongo@2.1.0
+mongo@2.1.1
 mongo-decimal@0.2.0
 mongo-dev-server@1.1.1
 mongo-id@1.0.9
@@ -43,17 +43,18 @@ ordered-dict@1.2.0
 promise@1.0.0
 random@1.2.2
 react-fast-refresh@0.2.9
-react-meteor-data@3.0.4-beta.0
+react-meteor-data@4.0.0-beta.1
 reactive-dict@1.3.2
 reactive-var@1.0.13
 reload@1.3.2
 retry@1.1.1
 routepolicy@1.1.2
 socket-stream-client@0.6.0
-test-helpers@2.0.2
+test-helpers@2.0.3
 tinytest@1.3.1
 tracker@1.3.4
 typescript@5.6.3
 underscore@1.6.4
-webapp@2.0.5
+webapp@2.0.6
 webapp-hashing@1.1.2
+zodern:types@1.0.13
diff --git a/packages/react-meteor-data/CHANGELOG.md b/packages/react-meteor-data/CHANGELOG.md
index d8fe25e6..a104cf9f 100644
--- a/packages/react-meteor-data/CHANGELOG.md
+++ b/packages/react-meteor-data/CHANGELOG.md
@@ -1,5 +1,10 @@
 # CHANGELOG
 
+## v4.0.0-beta.0, xxx
+*  Breaking change: useFind describes no deps by default [PR#431](https://github.com/meteor/react-packages/pull/431)
+*  Fix concurrency issue with useFind [PR#419](https://github.com/meteor/react-packages/pull/419)
+*  Improve `useFind` and `useSubscribe` React suspense hooks [PR#420](https://github.com/meteor/react-packages/pull/429), [PR#430](https://github.com/meteor/react-packages/pull/430) and [PR#441](https://github.com/meteor/react-packages/pull/441)
+
 ## v3.0.3, 2024-12-30
 *  Add `useSubscribeSuspenseServer` hook to be used in SSR.
 
diff --git a/packages/react-meteor-data/package-lock.json b/packages/react-meteor-data/package-lock.json
new file mode 100644
index 00000000..de14476c
--- /dev/null
+++ b/packages/react-meteor-data/package-lock.json
@@ -0,0 +1,10 @@
+{
+  "name": "react-meteor-data",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "react-meteor-data"
+    }
+  }
+}
diff --git a/packages/react-meteor-data/package.js b/packages/react-meteor-data/package.js
index c5d0673f..9386d552 100644
--- a/packages/react-meteor-data/package.js
+++ b/packages/react-meteor-data/package.js
@@ -3,7 +3,7 @@
 Package.describe({
   name: 'react-meteor-data',
   summary: 'React hook for reactively tracking Meteor data',
-  version: '3.0.6',
+  version: '4.0.0-beta.1',
   documentation: 'README.md',
   git: 'https://github.com/meteor/react-packages'
 })
@@ -17,7 +17,7 @@ Package.onUse((api) => {
   api.use('tracker')
   api.use('ecmascript')
   api.use('typescript')
-  api.use('zodern:types@1.0.13', 'server')
+  api.use('zodern:types@1.0.13')
 
   api.mainModule('index.ts', ['client', 'server'], { lazy: true })
 })
diff --git a/packages/react-meteor-data/useFind.ts b/packages/react-meteor-data/useFind.ts
index 59244e3d..4fbc9b6d 100644
--- a/packages/react-meteor-data/useFind.ts
+++ b/packages/react-meteor-data/useFind.ts
@@ -72,24 +72,23 @@ const fetchData = <T>(cursor: Mongo.Cursor<T>) => {
 }
 
 const useSyncEffect = (effect, deps) => {
-  const [cleanup, timeoutId] = useMemo(
-    () => {
-      const cleanup = effect();
-      const timeoutId = setTimeout(cleanup, 1000);
-      return [cleanup, timeoutId];
-    },
-    deps
-  );
-
-  useEffect(() => {
-    clearTimeout(timeoutId);
-
-    return cleanup;
-  }, [cleanup]);
-};
-
-
-const useFindClient = <T = any>(factory: () => (Mongo.Cursor<T> | undefined | null), deps: DependencyList = []) => {
+   const [cleanup, timeoutId] = useMemo(
+     () => {
+       const cleanup = effect();
+       const timeoutId = setTimeout(cleanup, 1000);
+       return [cleanup, timeoutId];
+     },
+     deps
+   );
+
+   useEffect(() => {
+     clearTimeout(timeoutId);
+
+     return cleanup;
+   }, [cleanup]);
+ };
+
+const useFindClient = <T = any>(factory: () => (Mongo.Cursor<T> | undefined | null), deps: DependencyList) => {
   const cursor = useMemo(() => {
     // To avoid creating side effects in render, opt out
     // of Tracker integration altogether.