From a78ef0159d63cd1299f1802247c222c597abaaff Mon Sep 17 00:00:00 2001 From: jfet97 Date: Thu, 22 Oct 2026 13:29:28 +0200 Subject: [PATCH 1/2] Keep Nix compiler wrappers on the patched Node runtime --- .changeset/patched-node-toolchain.md | 5 +++++ flake.nix | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 .changeset/patched-node-toolchain.md diff --git a/.changeset/patched-node-toolchain.md b/.changeset/patched-node-toolchain.md new file mode 100644 index 000000000..14402a840 --- /dev/null +++ b/.changeset/patched-node-toolchain.md @@ -0,0 +1,5 @@ +--- + +--- + +Pin development and release tooling to Node 24.22.1, including Nix-generated TypeScript launchers. diff --git a/flake.nix b/flake.nix index 0bb19098a..44dc69a2c 100644 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,8 @@ nodejsSrc = nodejsSources.${system} or (throw "no nodejs ${nodejsVersion} binary for ${system}"); nodejs = pkgs.stdenv.mkDerivation { pname = "nodejs"; + passthru.python = pkgs.python3; + meta.platforms = builtins.attrNames nodejsSources; version = nodejsVersion; src = pkgs.fetchurl nodejsSrc; sourceRoot = "node-v${nodejsVersion}-${ @@ -95,6 +97,10 @@ runHook postInstall ''; }; + # keep generated compiler launchers on the patched runtime + typescript = pkgs.typescript.override { + buildNpmPackage = pkgs.buildNpmPackage.override { inherit nodejs; }; + }; tools = with pkgs; [ git nixfmt-classic From 0da96bf190dc5a14e7f31072dfcb12d43b0b2f10 Mon Sep 17 00:00:00 2001 From: jfet97 Date: Thu, 22 Oct 2026 13:33:05 +0200 Subject: [PATCH 2/2] Await suspense setup before invalidation lifecycle assertions --- packages/vue/test/inactiveInvalidation.test.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/vue/test/inactiveInvalidation.test.ts b/packages/vue/test/inactiveInvalidation.test.ts index 448bd3b64..83810a469 100644 --- a/packages/vue/test/inactiveInvalidation.test.ts +++ b/packages/vue/test/inactiveInvalidation.test.ts @@ -69,11 +69,10 @@ const mountSuspense = (atom: any) => { return { app, getPromise: () => promise } } -const settle = (p: Promise | undefined) => - Promise.race([ - Promise.resolve(p).then(() => "resolved" as const, () => "rejected" as const), - new Promise<"pending">((resolve) => setTimeout(() => resolve("pending"), 40)) - ]) +const settle = async (promise: Promise | undefined) => { + expect(promise).toBeDefined() + await promise +} const fullKeyOf = (self: { id: string }) => [...makeQueryKey(self), undefined]