helloadhavan/github_issues huggingface dataset:
Repository: electron/electron
Pull request: ci: add timeout to test step


#### Description of Change

This PR adds a timeout to the test step since it appears to sometimes hang on Windows.  Additionally, take a screenshot on timeout so that we can debug why there is a hang

<!--
Thank you for your Pull Request. Please provide a description above and review
the requirements below.

Contributors guide: https://github.com/electron/electron/blob/main/CONTRIBUTING.md
-->

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included
- [x] I have built and tested this PR
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: <!-- Please add a one-line description for app developers to read in the release notes, or 'none' if no notes relevant to app developers. Examples and help on special cases: https://github.com/electron/clerk/blob/main/README.md#examples -->none


Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -214,6 +214,7 @@ jobs:
 
     - name: Run Electron Tests
       shell: bash
+      timeout-minutes: 40
       env:
         MOCHA_REPORTER: mocha-multi-reporters
         MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap
@@ -283,6 +284,19 @@ jobs:
             
           fi
         fi
+    - name: Take screenshot on timeout or cancellation
+      if: ${{ inputs.target-platform != 'linux' && (cancelled() || failure()) }}
+      shell: bash
+      run: |
+        screenshot_dir="src/electron/spec/artifacts"
+        mkdir -p "$screenshot_dir"
+        screenshot_file="$screenshot_dir/screenshot-timeout-$(date +%Y%m%d%H%M%S).png"
+        if [ "${{ inputs.target-platform }}" = "macos" ]; then
+          screencapture -x "$screenshot_file" || true
+        elif [ "${{ inputs.target-platform }}" = "win" ]; then
+          powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; \$bitmap = New-Object System.Drawing.Bitmap(\$screen.Width, \$screen.Height); \$graphics = [System.Drawing.Graphics]::FromImage(\$bitmap); \$graphics.CopyFromScreen(\$screen.Location, [System.Drawing.Point]::Empty, \$screen.Size); \$bitmap.Save('$screenshot_file')" || true
+        fi
+
     - name: Upload Test results to Datadog
       env:
         DD_ENV: ci
@@ -298,7 +312,7 @@ jobs:
         fi
       if: always() && !cancelled()
     - name: Upload Test Artifacts
-      if: always() && !cancelled()
+      if: always()
       uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
       with:
         name: ${{ inputs.target-platform == 'linux' && format('test_artifacts_{0}_{1}_{2}', env.ARTIFACT_KEY, inputs.display-server, matrix.shard) || format('test_artifacts_{0}_{1}', env.ARTIFACT_KEY, matrix.shard) }}
Repository: huggingface/transformers
Pull request: skip 1 invalid test case for higgs_audio_v2


Changed files:
filename: src/transformers/models/higgs_audio_v2/generation_higgs_audio_v2.py
patch: @@ -107,7 +107,7 @@ def __init__(
 
     @add_start_docstrings(LOGITS_PROCESSOR_INPUTS_DOCSTRING)
     def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor) -> torch.FloatTensor:
-        scores = scores.reshape(-1, self.num_codebooks, self.codebook_size)
+        scores = scores.clone().reshape(-1, self.num_codebooks, self.codebook_size)
         batch_size = scores.shape[0]
 
         # we only look at the n-th last tokens to initialize the bos and eos delay patterns, where n is the delay pattern size

filename: tests/models/higgs_audio_v2/test_modeling_higgs_audio_v2.py
patch: @@ -286,6 +286,12 @@ def test_resize_tokens_embeddings(self):
     def test_tied_weights_keys(self):
         pass
 
+    @pytest.mark.skip(
+        reason="This test does not apply to HiggsAudioV2 since audio_input_ids must be provided along input_ids"
+    )
+    def test_flash_attention_2_continue_generate_with_position_ids(self):
+        pass
+
     def _check_scores(self, batch_size, scores, generated_length, config):
         expected_shape = (batch_size, config.num_codebooks, config.codebook_size)
         self.assertIsInstance(scores, tuple)
Repository: vercel/next.js
Pull request: Fix missing const generic parameter in turbo-persistence lookup call

### What?

Fix a compilation error in `turbo-persistence` test code where the `StaticSortedFile::lookup` call was missing the required `FIND_ALL` const generic parameter.

### Why?

After the `FIND_ALL: bool` const generic was added to `StaticSortedFile::lookup` in #90754, a call site in the test helper `assert_corruption_detected` was not updated, causing `cargo check --all-targets` to fail with:

```
error[E0284]: type annotations needed
  --> turbopack/crates/turbo-persistence/src/static_sorted_file_builder.rs:1661:19
     |
1661 |         match sst.lookup(entries[0].hash, &entries[0].key, &kc, &vc) {
     |                   ^^^^^^ cannot infer the value of the const parameter `FIND_ALL`
```

### How?

Added explicit turbofish `::<_, false>` to the `lookup` call in the test helper. `false` is the appropriate value since the test only needs to look up a single entry to verify corruption detection.

Changed files:
filename: turbopack/crates/turbo-persistence/src/static_sorted_file_builder.rs
patch: @@ -1658,7 +1658,7 @@ mod tests {
         let sst = open_sst(dir, seq, meta).unwrap();
         let kc = make_cache();
         let vc = make_cache();
-        match sst.lookup(entries[0].hash, &entries[0].key, &kc, &vc) {
+        match sst.lookup::<_, false>(entries[0].hash, &entries[0].key, &kc, &vc) {
             Err(err) => {
                 let msg = format!("{err}");
                 assert!(
Repository: facebook/react
Pull request: [DevTools] Don't select on hover

We should only persist a selection once you click. Currently, we persist the selection if you just hover which means you lose your selection immediately when just starting to inspect. That's not what Chrome Elements tab does - it selects on click.

Changed files:
filename: packages/react-devtools-shared/src/backend/views/Highlighter/index.js
patch: @@ -366,8 +366,6 @@ export default function setupHighlighter(
     // Don't pass the name explicitly.
     // It will be inferred from DOM tag and Fiber owner.
     showOverlay([target], null, agent, false);
-
-    selectElementForNode(target);
   }
 
   function onPointerUp(event: MouseEvent) {
Repository: electron/electron
Pull request: ci: add timeout to test step

Backport of #50186

See that PR for details.


Notes: none

Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -208,6 +208,7 @@ jobs:
 
     - name: Run Electron Tests
       shell: bash
+      timeout-minutes: 40
       env:
         MOCHA_REPORTER: mocha-multi-reporters
         MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap
@@ -258,6 +259,19 @@ jobs:
             
           fi
         fi
+    - name: Take screenshot on timeout or cancellation
+      if: ${{ inputs.target-platform != 'linux' && (cancelled() || failure()) }}
+      shell: bash
+      run: |
+        screenshot_dir="src/electron/spec/artifacts"
+        mkdir -p "$screenshot_dir"
+        screenshot_file="$screenshot_dir/screenshot-timeout-$(date +%Y%m%d%H%M%S).png"
+        if [ "${{ inputs.target-platform }}" = "macos" ]; then
+          screencapture -x "$screenshot_file" || true
+        elif [ "${{ inputs.target-platform }}" = "win" ]; then
+          powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; \$bitmap = New-Object System.Drawing.Bitmap(\$screen.Width, \$screen.Height); \$graphics = [System.Drawing.Graphics]::FromImage(\$bitmap); \$graphics.CopyFromScreen(\$screen.Location, [System.Drawing.Point]::Empty, \$screen.Size); \$bitmap.Save('$screenshot_file')" || true
+        fi
+
     - name: Upload Test results to Datadog
       env:
         DD_ENV: ci
@@ -273,7 +287,7 @@ jobs:
         fi
       if: always() && !cancelled()
     - name: Upload Test Artifacts
-      if: always() && !cancelled()
+      if: always()
       uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
       with:
         name: test_artifacts_${{ env.ARTIFACT_KEY }}_${{ matrix.shard }}
Repository: rust-lang/rust
Pull request: std: sys: net: uefi: Make TcpStream Send

- Since UEFI has no threads, this should be safe.
- Makes compiling remote-test-server simpler.


Changed files:
filename: library/std/src/sys/net/connection/uefi/tcp.rs
patch: @@ -9,6 +9,9 @@ pub(crate) enum Tcp {
     V4(tcp4::Tcp4),
 }
 
+// SAFETY: UEFI has no threads.
+unsafe impl Send for Tcp {}
+
 impl Tcp {
     pub(crate) fn connect(addr: &SocketAddr, timeout: Option<Duration>) -> io::Result<Self> {
         match addr {
Repository: huggingface/transformers
Pull request: [tiny] Add olmo_hybrid to tokenizer auto-mapping

Register `olmo_hybrid` in `TOKENIZER_MAPPING_NAMES` so auto-tokenizer resolution works, matching the other auto-registrations already in place for this model.

Changed files:
filename: src/transformers/models/auto/tokenization_auto.py
patch: @@ -234,6 +234,7 @@
         ("olmo", "GPTNeoXTokenizer" if is_tokenizers_available() else None),
         ("olmo2", "GPTNeoXTokenizer" if is_tokenizers_available() else None),
         ("olmo3", "TokenizersBackend" if is_tokenizers_available() else None),
+        ("olmo_hybrid", "TokenizersBackend" if is_tokenizers_available() else None),
         ("olmoe", "GPTNeoXTokenizer" if is_tokenizers_available() else None),
         ("omdet-turbo", "CLIPTokenizer" if is_tokenizers_available() else None),
         ("oneformer", "CLIPTokenizer" if is_tokenizers_available() else None),
Repository: electron/electron
Pull request: ci: add timeout to test step

Backport of #50186

See that PR for details.


Notes: none


Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -209,6 +209,7 @@ jobs:
 
     - name: Run Electron Tests
       shell: bash
+      timeout-minutes: 40
       env:
         MOCHA_REPORTER: mocha-multi-reporters
         MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap
@@ -259,6 +260,19 @@ jobs:
             
           fi
         fi
+    - name: Take screenshot on timeout or cancellation
+      if: ${{ inputs.target-platform != 'linux' && (cancelled() || failure()) }}
+      shell: bash
+      run: |
+        screenshot_dir="src/electron/spec/artifacts"
+        mkdir -p "$screenshot_dir"
+        screenshot_file="$screenshot_dir/screenshot-timeout-$(date +%Y%m%d%H%M%S).png"
+        if [ "${{ inputs.target-platform }}" = "macos" ]; then
+          screencapture -x "$screenshot_file" || true
+        elif [ "${{ inputs.target-platform }}" = "win" ]; then
+          powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; \$bitmap = New-Object System.Drawing.Bitmap(\$screen.Width, \$screen.Height); \$graphics = [System.Drawing.Graphics]::FromImage(\$bitmap); \$graphics.CopyFromScreen(\$screen.Location, [System.Drawing.Point]::Empty, \$screen.Size); \$bitmap.Save('$screenshot_file')" || true
+        fi
+
     - name: Upload Test results to Datadog
       env:
         DD_ENV: ci
@@ -274,7 +288,7 @@ jobs:
         fi
       if: always() && !cancelled()
     - name: Upload Test Artifacts
-      if: always() && !cancelled()
+      if: always()
       uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
       with:
         name: test_artifacts_${{ env.ARTIFACT_KEY }}_${{ matrix.shard }}
Repository: vercel/next.js
Pull request: Publish @next/playwright to npm as part of canary releases

@next/playwright is an experimental package that provides Playwright helpers for testing Next.js navigation behavior. Its main feature is an `instant()` API that lets you assert whether a route is correctly structured for instant navigation — rendering only cached/prefetched content without waiting for dynamic data.

The package requires Cache Components to be enabled. It works by setting a cookie that tells Next.js to serve only cached data during navigations, deferring dynamic content until the cookie is cleared. The design is intentionally thin so that other testing frameworks can replicate the same mechanism.

Removing the "private" field so the package is included in the next canary publish.

Changed files:
filename: packages/next-playwright/package.json
patch: @@ -1,7 +1,6 @@
 {
   "name": "@next/playwright",
   "version": "16.2.0-canary.70",
-  "private": true,
   "repository": {
     "url": "vercel/next.js",
     "directory": "packages/next-playwright"
Repository: facebook/react
Pull request: [DevTools] The bridge event types should only be defined in one direction

This revealed that a lot of the event types were defined on the wrong end of the bridge.

It was also a problem that events with the same name couldn't have different arguments.

Changed files:
filename: packages/react-devtools-shared/src/bridge.js
patch: @@ -217,10 +217,15 @@ export type BackendEvents = {
   selectElement: [number],
   shutdown: [],
   stopInspectingHost: [boolean],
-  syncSelectionFromBuiltinElementsPanel: [],
   syncSelectionToBuiltinElementsPanel: [],
   unsupportedRendererVersion: [],
 
+  extensionComponentsPanelShown: [],
+  extensionComponentsPanelHidden: [],
+
+  resumeElementPolling: [],
+  pauseElementPolling: [],
+
   // React Native style editor plug-in.
   isNativeStyleEditorSupported: [
     {isSupported: boolean, validAttributes: ?$ReadOnlyArray<string>},
@@ -240,8 +245,6 @@ type FrontendEvents = {
   clearWarningsForElementID: [ElementAndRendererID],
   copyElementPath: [CopyElementPathParams],
   deletePath: [DeletePath],
-  extensionComponentsPanelShown: [],
-  extensionComponentsPanelHidden: [],
   getBackendVersion: [],
   getBridgeProtocol: [],
   getIfHasUnsupportedRendererVersion: [],
@@ -265,7 +268,7 @@ type FrontendEvents = {
   shutdown: [],
   startInspectingHost: [],
   startProfiling: [StartProfilingParams],
-  stopInspectingHost: [boolean],
+  stopInspectingHost: [],
   scrollToHostInstance: [ScrollToHostInstance],
   stopProfiling: [],
   storeAsGlobal: [StoreAsGlobalParams],
@@ -275,6 +278,8 @@ type FrontendEvents = {
   viewAttributeSource: [ViewAttributeSourceParams],
   viewElementSource: [ElementAndRendererID],
 
+  syncSelectionFromBuiltinElementsPanel: [],
+
   // React Native style editor plug-in.
   NativeStyleEditor_measure: [ElementAndRendererID],
   NativeStyleEditor_renameAttribute: [NativeStyleEditor_RenameAttributeParams],
@@ -295,19 +300,13 @@ type FrontendEvents = {
   overrideProps: [OverrideValue],
   overrideState: [OverrideValue],
 
-  resumeElementPolling: [],
-  pauseElementPolling: [],
-
   getHookSettings: [],
 };
 
 class Bridge<
   OutgoingEvents: Object,
   IncomingEvents: Object,
-> extends EventEmitter<{
-  ...IncomingEvents,
-  ...OutgoingEvents,
-}> {
+> extends EventEmitter<IncomingEvents> {
   _isShutdown: boolean = false;
   _messageQueue: Array<any> = [];
   _scheduledFlush: boolean = false;

filename: packages/react-devtools-shared/src/devtools/views/Components/InspectHostNodesToggle.js
patch: @@ -26,7 +26,7 @@ export default function InspectHostNodesToggle(): React.Node {
         logEvent({event_name: 'inspect-element-button-clicked'});
         bridge.send('startInspectingHost');
       } else {
-        bridge.send('stopInspectingHost', false);
+        bridge.send('stopInspectingHost');
       }
     },
     [bridge],
Repository: electron/electron
Pull request: ci: add timeout to test step

Backport of #50186

See that PR for details.


Notes: none

Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -209,6 +209,7 @@ jobs:
 
     - name: Run Electron Tests
       shell: bash
+      timeout-minutes: 40
       env:
         MOCHA_REPORTER: mocha-multi-reporters
         MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap
@@ -259,6 +260,19 @@ jobs:
             
           fi
         fi
+    - name: Take screenshot on timeout or cancellation
+      if: ${{ inputs.target-platform != 'linux' && (cancelled() || failure()) }}
+      shell: bash
+      run: |
+        screenshot_dir="src/electron/spec/artifacts"
+        mkdir -p "$screenshot_dir"
+        screenshot_file="$screenshot_dir/screenshot-timeout-$(date +%Y%m%d%H%M%S).png"
+        if [ "${{ inputs.target-platform }}" = "macos" ]; then
+          screencapture -x "$screenshot_file" || true
+        elif [ "${{ inputs.target-platform }}" = "win" ]; then
+          powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; \$bitmap = New-Object System.Drawing.Bitmap(\$screen.Width, \$screen.Height); \$graphics = [System.Drawing.Graphics]::FromImage(\$bitmap); \$graphics.CopyFromScreen(\$screen.Location, [System.Drawing.Point]::Empty, \$screen.Size); \$bitmap.Save('$screenshot_file')" || true
+        fi
+
     - name: Upload Test results to Datadog
       env:
         DD_ENV: ci
@@ -274,7 +288,7 @@ jobs:
         fi
       if: always() && !cancelled()
     - name: Upload Test Artifacts
-      if: always() && !cancelled()
+      if: always()
       uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
       with:
         name: test_artifacts_${{ env.ARTIFACT_KEY }}_${{ matrix.shard }}
Repository: rust-lang/rust
Pull request: fix/extend some mir-opt comments

Looks like CopyProp was refactored without updating that comment.

And for GVN, I think this is what you had in mind @cjgillot but would be great if you could have a look.

Changed files:
filename: compiler/rustc_mir_transform/src/copy_prop.rs
patch: @@ -58,7 +58,8 @@ impl<'tcx> crate::MirPass<'tcx> for CopyProp {
     }
 }
 
-/// Utility to help performing substitution of `*pattern` by `target`.
+/// Utility to help performing substitution: for all key-value pairs in `copy_classes`,
+/// all occurrences of the key get replaced by the value.
 struct Replacer<'a, 'tcx> {
     tcx: TyCtxt<'tcx>,
     unified: DenseBitSet<Local>,

filename: compiler/rustc_mir_transform/src/gvn.rs
patch: @@ -48,8 +48,15 @@
 //! # Handling of references
 //!
 //! We handle references by assigning a different "provenance" index to each Ref/RawPtr rvalue.
-//! This ensure that we do not spuriously merge borrows that should not be merged. Meanwhile, we
-//! consider all the derefs of an immutable reference to a freeze type to give the same value:
+//! This ensure that we do not spuriously merge borrows that should not be merged. For instance:
+//! ```ignore (MIR)
+//! _x = &_a;
+//! _a = 0;
+//! _y = &_a; // cannot be turned into `_y = _x`!
+//! ```
+//!
+//! On top of that, we consider all the derefs of an immutable reference to a freeze type to give
+//! the same value:
 //! ```ignore (MIR)
 //! _a = *_b // _b is &Freeze
 //! _c = *_b // replaced by _c = _a
Repository: nodejs/node
Pull request: doc: update previous version links in BUILDING

## Situation

[BUILDING.md > Previous versions of this document](https://github.com/nodejs/node/blob/main/BUILDING.md#previous-versions-of-this-document) provides links:

* [Node.js 21](https://github.com/nodejs/node/blob/v21.x/BUILDING.md)
* [Node.js 20](https://github.com/nodejs/node/blob/v20.x/BUILDING.md)
* [Node.js 18](https://github.com/nodejs/node/blob/v18.x/BUILDING.md)

## Change

In [BUILDING.md > Previous versions of this document](https://github.com/nodejs/node/blob/main/BUILDING.md#previous-versions-of-this-document):

1. remove end-of-life Node.js versions 21 and 18
2. add supported LTS versions 24 and 22

Changed files:
filename: BUILDING.md
patch: @@ -222,9 +222,9 @@ Supported platforms and toolchains change with each major version of Node.js.
 This document is only valid for the current major version of Node.js.
 Consult previous versions of this document for older versions of Node.js:
 
-* [Node.js 21](https://github.com/nodejs/node/blob/v21.x/BUILDING.md)
+* [Node.js 24](https://github.com/nodejs/node/blob/v24.x/BUILDING.md)
+* [Node.js 22](https://github.com/nodejs/node/blob/v22.x/BUILDING.md)
 * [Node.js 20](https://github.com/nodejs/node/blob/v20.x/BUILDING.md)
-* [Node.js 18](https://github.com/nodejs/node/blob/v18.x/BUILDING.md)
 
 ## Building Node.js on supported platforms
Repository: vercel/next.js
Pull request: Change names of logged times

## What?

Reduces confusion of time spent in Next.js compared to application code executing

Changed files:
filename: packages/next/src/server/dev/log-requests.ts
patch: @@ -126,15 +126,18 @@ function logIncomingRequests(
       frameworkTime -= middlewareTime
     }
     // Insert as the first item to be rendered in the list
-    times.unshift(['compile', frameworkTime])
+    times.unshift(['next.js', frameworkTime])
 
     // Insert after compile, before render based on the execution order.
     if (devGenerateStaticParamsDuration) {
       // Pages Router getStaticPaths are technically "generate params" as well.
       times.push(['generate-params', devGenerateStaticParamsDuration])
     }
 
-    times.push(['render', requestEndTime - devRequestTimingInternalsEnd])
+    times.push([
+      'application-code',
+      requestEndTime - devRequestTimingInternalsEnd,
+    ])
   }
 
   return writeLine(

filename: test/e2e/app-dir/app-middleware-proxy/app-middleware-proxy.test.ts
patch: @@ -13,7 +13,7 @@ describe('app-dir with proxy', () => {
     it('should log compilation time', async () => {
       await next.browser('/')
       expect(next.cliOutput).toMatch(
-        /GET \/ 200 in .* \(compile:.*, proxy.ts:.*, render:.*\)/
+        /GET \/ 200 in .* \(next\.js:.*, proxy\.ts:.*, application-code:.*\)/
       )
     })
   }
Repository: ollama/ollama
Pull request: modelfile.md has been renamed into modelfile.mdx, fix 404.

minor doc link fix.

Changed files:
filename: docs/README.md
patch: @@ -12,7 +12,7 @@
 ### Reference
 
 * [API Reference](https://docs.ollama.com/api)
-* [Modelfile Reference](./modelfile.md)
+* [Modelfile Reference](https://docs.ollama.com/modelfile)
 * [OpenAI Compatibility](https://docs.ollama.com/api/openai-compatibility)
 
 ### Resources
Repository: facebook/react
Pull request: Update Code Sandbox CI to Node 20 to Match .nvmrc

## Summary
Update the CodeSandbox CI configuration to use Node 20 instead of Node 18, so that it matches the Node version specified in .nvmrc. This ensures consistency between local development environments and CI builds, reducing the risk of version-related build issues.

Closes #34328

## How did you test this change?
- Verified that .nvmrc specifies Node 20 and .codesandbox/ci.json is updated accordingly.
- Locally switched to Node 20 using nvm use 20 and successfully ran build scripts for all packages: `react`, `react-dom`, `react-server-dom-webpack`, and `scheduler`.
- Confirmed there are no Node 20–specific build errors or warnings locally.
- CI on the feature branch will now run with Node 20, and all builds are expected to succeed.


Changed files:
filename: .codesandbox/ci.json
patch: @@ -1,7 +1,7 @@
 {
   "packages": ["packages/react", "packages/react-dom", "packages/react-server-dom-webpack", "packages/scheduler"],
   "buildCommand": "download-build-in-codesandbox-ci",
-  "node": "18",
+  "node": "20",
   "publishDirectory": {
     "react": "build/oss-experimental/react",
     "react-dom": "build/oss-experimental/react-dom",