helloadhavan/github_issues huggingface dataset:
Repository: vercel/next.js
Pull request: [devtools]: default to issues tab when error overlay is programmatically toggled

When there's a build error and we toggle the error overlay on page load, we should ensure that the issues tab is used rather than the one stored in session storage, to avoid the case where we bring up the modal intending to show the user an error but instead show the settings page.

Drive-by refactor: lifted storage variable to the other places where they're defined
Closes NEXT-4596

Changed files:
filename: packages/next/src/next-devtools/dev-overlay/components/devtools-panel/devtools-panel.tsx
patch: @@ -15,6 +15,7 @@ import {
   STORAGE_KEY_SCALE,
   STORAGE_KEY_POSITION,
   ACTION_ERROR_OVERLAY_CLOSE,
+  STORAGE_KEY_ACTIVE_TAB,
 } from '../../shared'
 import { css } from '../../utils/css'
 import { OverlayBackdrop } from '../overlay'
@@ -26,8 +27,6 @@ import { MinimizeIcon } from '../../icons/minimize'
 
 export type DevToolsPanelTabType = 'issues' | 'route' | 'settings'
 
-const STORAGE_KEY_ACTIVE_TAB = 'nextjs-devtools-active-tab'
-
 function useSessionState<T extends string>(
   key: string,
   initialValue: T
@@ -78,6 +77,9 @@ export function DevToolsPanel({
   if (state.isErrorOverlayOpen !== prevIsErrorOverlayOpen) {
     if (state.isErrorOverlayOpen) {
       setIsFullscreen(true)
+      // We should always show the issues tab initially if we're
+      // programmatically opening the panel to highlight errors.
+      setActiveTab('issues')
     }
     setPrevIsErrorOverlayOpen(state.isErrorOverlayOpen)
   }

filename: packages/next/src/next-devtools/dev-overlay/shared.ts
patch: @@ -85,6 +85,7 @@ export const ACTION_RESTART_SERVER_BUTTON = 'restart-server-button'
 export const STORAGE_KEY_THEME = '__nextjs-dev-tools-theme'
 export const STORAGE_KEY_POSITION = '__nextjs-dev-tools-position'
 export const STORAGE_KEY_SCALE = '__nextjs-dev-tools-scale'
+export const STORAGE_KEY_ACTIVE_TAB = '__nextjs-devtools-active-tab'
 
 export const ACTION_DEVTOOL_UPDATE_ROUTE_STATE =
   'segment-explorer-update-route-state'
Repository: vercel/next.js
Pull request: Fix flakey devtools test

A regression from #81085 @huozhi 


The problem is that `openDevToolsIndicatorPopover` doesn't tell anymore whether the popup menu is open, but if the panel is open, but the "Try Turbopack" text is in the popup menu (only in the old UI).

Closes PACK-4963

Changed files:
filename: test/development/client-dev-overlay/index.test.ts
patch: @@ -2,12 +2,12 @@ import { FileRef } from 'e2e-utils'
 import { Playwright } from 'next-webdriver'
 import { nextTestSetup } from 'e2e-utils'
 import { join } from 'path'
-import { openDevToolsIndicatorPopover, retry } from 'next-test-utils'
+import { assertHasDevToolsIndicator, retry } from 'next-test-utils'
 
 describe('client-dev-overlay', () => {
   const { next, isTurbopack } = nextTestSetup({
     files: {
-      pages: new FileRef(join(__dirname, 'app/pages')),
+      pages: new FileRef(join(__dirname, 'pages')),
     },
     env: {
       // Disable the cooldown period for the dev indicator so that hiding the indicator in a test doesn't
@@ -124,7 +124,14 @@ describe('client-dev-overlay', () => {
   it('should nudge to use Turbopack unless Turbopack is disabled', async () => {
     const browser = await next.browser('/')
 
-    await openDevToolsIndicatorPopover(browser)
+    // Don't use openDevToolsIndicatorPopover because this is asserting something in the old dev tools menu which isn't preset yet in the new UI.
+    const devToolsIndicator = await assertHasDevToolsIndicator(browser)
+    try {
+      await devToolsIndicator.click()
+    } catch (cause) {
+      const error = new Error('No DevTools Indicator to open.', { cause })
+      throw error
+    }
 
     const devtoolsMenu = await browser.elementByCss('#nextjs-dev-tools-menu')
     if (isTurbopack) {

filename: test/lib/next-test-utils.ts
patch: @@ -969,12 +969,10 @@ export async function openDevToolsIndicatorPopover(
 
 export async function hasDevToolsPanel(browser: Playwright) {
   const result = await browser.eval(() => {
-    const portal = [].slice
-      .call(document.querySelectorAll('nextjs-portal'))
-      .find((p) => p.shadowRoot.querySelector('[data-nextjs-dialog-overlay]'))
-
-    const root = portal?.shadowRoot
-    return root?.querySelector('[data-nextjs-dialog-overlay]') != null
+    const portal = document.querySelector('nextjs-portal')
+    return (
+      portal?.shadowRoot?.querySelector('[data-nextjs-dialog-overlay]') != null
+    )
   })
   return result
 }
Repository: ggml-org/llama.cpp
Pull request: vulkan: workaround MoltenVK compile failure in multi_add

Fixes #15498. Fixes #15497.

Remove the readonly/writeonly qualifiers. I did some perf testing and don't see any negative effect on NVIDIA.


Changed files:
filename: ggml/src/ggml-vulkan/vulkan-shaders/multi_add.comp
patch: @@ -23,8 +23,11 @@ layout (push_constant) uniform parameter2
     uint rms_partials;
 } p;
 
-layout (binding = 0) readonly buffer A {A_TYPE data_a[];} a[];
-layout (binding = 0) writeonly buffer D {D_TYPE data_d[];} d[];
+// Workaround for MoltenVK Bug, see https://github.com/ggml-org/llama.cpp/issues/15498
+// layout (binding = 0) readonly buffer A {A_TYPE data_a[];} a[];
+// layout (binding = 0) writeonly buffer D {D_TYPE data_d[];} d[];
+layout (binding = 0) buffer A {A_TYPE data_a[];} a[];
+layout (binding = 0) buffer D {D_TYPE data_d[];} d[];
 
 layout (binding = 0, std430) buffer PartialBuf {float partial_sums[];} partials[];
Repository: denoland/deno
Pull request: fix(compile): multi icon ordering on windows

Fixes https://github.com/denoland/deno/issues/26400. Correctly handle multi-icon icos in `deno compile --icon`.

Ref https://github.com/denoland/sui/commit/bf318ea9c847810b79d6a34a4e744b7b09630ddb

## Explanation

Icons in PE are very sensitive to resource table ordering. Here's what works:

<img width=320 src=https://github.com/user-attachments/assets/8f3e5a18-5f00-42d6-a366-16b6194c711c></img>

We can't use `editpe`'s builtin `set_icon` because it lays out `Icon` and `Icon Group` together before/after the `RCData`. Instead, we need a custom implementation that places RCData between the icon entries. 

This means we defer `Icon Group` to always happen during `PortableExecutable::build`. After the fix:

<img width=440 src=https://github.com/user-attachments/assets/73a9b347-64c2-41e1-a314-918231ba7276></img>



Changed files:
filename: Cargo.lock
patch: @@ -5180,11 +5180,12 @@ dependencies = [
 
 [[package]]
 name = "libsui"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89795977654ad6250d6c0915411b622bac22f9efb4f852af94b2e00964cab832"
+checksum = "7550a110415b4780bf6064d280f2dc5b761fb80d9af92258a72e5dc82ca6f05a"
 dependencies = [
  "editpe",
+ "image",
  "libc",
  "sha2",
  "windows-sys 0.48.0",

filename: Cargo.toml
patch: @@ -219,7 +219,7 @@ libffi = "=3.2.0"
 libffi-sys = "=2.3.0"
 libloading = "0.7"
 libsqlite3-sys = "0.30.1"
-libsui = "0.5.0"
+libsui = "0.7.0"
 libuv-sys-lite = "=1.48.2"
 libz-sys = { version = "1.1.20", default-features = false }
 log = { version = "0.4.20", features = ["kv"] }
Repository: facebook/react
Pull request: [Fizz] Pass cancellation reason to abort

This was implemented correctly for Flight but not Fizz. Hard to keep these many wrappers in sync.

Changed files:
filename: packages/react-dom/src/server/ReactDOMFizzServerBrowser.js
patch: @@ -80,7 +80,7 @@ function renderToReadableStream(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.
@@ -161,7 +161,7 @@ function resume(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.

filename: packages/react-dom/src/server/ReactDOMFizzServerBun.js
patch: @@ -70,7 +70,7 @@ function renderToReadableStream(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.

filename: packages/react-dom/src/server/ReactDOMFizzServerEdge.js
patch: @@ -80,7 +80,7 @@ function renderToReadableStream(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.
@@ -161,7 +161,7 @@ function resume(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.

filename: packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js
patch: @@ -64,7 +64,7 @@ function prerender(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.

filename: packages/react-dom/src/server/ReactDOMFizzStaticEdge.js
patch: @@ -64,7 +64,7 @@ function prerender(
           },
           cancel: (reason): ?Promise<void> => {
             stopFlowing(request);
-            abort(request);
+            abort(request, reason);
           },
         },
         // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.
Repository: nodejs/node
Pull request: test: deflake test-http2-options-max-headers-block-length

The socket can be closed while data is still being written, causing an `ECONNRESET` error to be emitted on the client. Add a listener for it.

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: test/parallel/test-http2-options-max-headers-block-length.js
patch: @@ -22,6 +22,8 @@ server.listen(0, common.mustCall(() => {
   const client = h2.connect(`http://localhost:${server.address().port}`,
                             options);
 
+  client.on('error', () => {});
+
   const req = client.request();
   req.on('response', common.mustNotCall());
Repository: vercel/next.js
Pull request: [turbopack] Defend against json cyles in our execution tests

Handle circular references in Jest test results 

Otherwise failing tests may crash the IPC mechanism. e.g. a test failure induced this

```
──── STDERR:             turbopack-tests::execution test_tests__execution__turbopack__basic__esm_this
Input: /Users/lukesandberg/projects/next.js/turbopack/crates/turbopack-tests/tests/execution/turbopack/basic/esm-this
new file turbopack/crates/turbopack-tests/tests/execution/turbopack/basic/esm-this/issues/Error evaluating Node.js code-4c12f2.txt detected:
--- expected
+++ actual
@@ -0,0 +1,6 @@
+error - [transform] [project]/turbopack/crates/turbopack-tests/tests/execution/turbopack/basic/esm-this/input/index.js  Error evaluating Node.js code
+  TypeError: Converting circular structure to JSON
+      --> starting at object with constructor 'Object'
+      --- property 'foo' closes the circle
+      [at <anonymous>]
+      at run (turbopack:///[turbopack-node]/ipc/evaluate.ts:96:52) [WORKSPACE_ROOT/turbopack/crates/turbopack-tests/tests/execution/turbopack/basic/esm-this/output/[turbopack-node]__b000890d._.js:414:66]
\ No newline at end of file
```

With this change we can see the actual test failure

```
thread 'test_tests__execution__turbopack__basic__esm_this' panicked at turbopack/crates/turbopack-tests/tests/execution.rs:106:9:
Failed with error(s) in the following test(s):

"`this` in esm should be undefined":
Error: expect(received).toBe(expected) // Object.is equality

Expected: undefined
Received: {"foo": [Circular]}
    at Object.eval (file:///Users/lukesandberg/projects/next.js/turbopack/crates/turbopack-tests/tests/execution/turbopack/basic/esm-this/output/b1abf_turbopack-tests_tests_execution_turbopack_basic_esm-this_input_index_021e2195.js:18:19)
    at Promise.then.completed (/Users/lukesandberg/projects/next.js/node_modules/.pnpm/jest-circus@29.5.0/node_modules/jest-circus/build/utils.js:293:28)

```

Closes PACK-4964

Changed files:
filename: turbopack/crates/turbopack-tests/js/jest-entry.ts
patch: @@ -35,7 +35,23 @@ export default async function run() {
 
   await import('TESTS')
 
-  const jestResult = await jest.run()
+  let jestResult = await jest.run()
+  // Jest test results can contain references to arbitrary objects.
+  // Defensively remove circular references to avoid breaking our serialization protocol.
+  const seen = new Set()
+  jestResult = JSON.parse(
+    JSON.stringify(jestResult, (k, v) => {
+      if (v != null && typeof v === 'object') {
+        if (!seen.has(v)) {
+          seen.add(v)
+          return v
+        } else {
+          return 'CIRCULAR_REFERENCE_REMOVED'
+        }
+      }
+      return v
+    })
+  )
 
   // Wait a full tick for unhandledRejection handlers to run -- a microtask is not sufficient.
   await new Promise((resolve) => setTimeout(resolve, 0))
Repository: ggml-org/llama.cpp
Pull request: CUDA: fix half2 -> half conversion for HIP

See https://github.com/ggml-org/llama.cpp/issues/15196 . Even if it doesn't fix the compilation, `__low2half` should be used consistently to eliminate the risk of an unexpected type conversion.

Changed files:
filename: ggml/src/ggml-cuda/fattn-tile-f16.cu
patch: @@ -258,7 +258,7 @@ static __global__ void flash_attn_tile_ext_f16(
             const half val = hexp(sink - kqmax[j0/nwarps]);
             kqsum[j0/nwarps] = kqsum[j0/nwarps] * KQ_max_scale;
             if (threadIdx.x == 0) {
-                kqsum[j0/nwarps].x = __hadd(kqsum[j0/nwarps].x, val);
+                kqsum[j0/nwarps].x = __hadd(__low2half(kqsum[j0/nwarps]), val);
             }
 
 #pragma unroll
Repository: nodejs/node
Pull request: meta: allow penetration testing on live system with prior authorization

While reviewing the entire incident report, I found that this text was too strict. We need researchers to keep hardening our CI. However, we should avoid the kind of fire drill we had in March, and do it in a controlled manner.

Changed files:
filename: SECURITY.md
patch: @@ -72,7 +72,9 @@ When reporting security vulnerabilities, reporters must adhere to the following
 
 3. **Responsible Testing**: When testing potential vulnerabilities:
    * Use isolated, controlled environments.
-   * Do not test on production systems.
+   * Do not test on production systems without prior authorization. Contact
+     the Node.js Technical Steering Committee (<tsc@iojs.org>) for permission or open
+     a HackerOne report.
    * Do not attempt to access or modify other users' data.
    * Immediately stop testing if unauthorized access is gained accidentally.
Repository: ggml-org/llama.cpp
Pull request: scripts: fix compare-llama-bench.py

https://github.com/ggml-org/llama.cpp/pull/15473 broke `scripts/compare-llama-bench.py` because only the list of database field names but not the list of types was edited. This PR fixes the type list.

Changed files:
filename: scripts/compare-llama-bench.py
patch: @@ -37,7 +37,6 @@
     "TEXT",    "INTEGER", "INTEGER", "INTEGER", "INTEGER", "INTEGER",
     "TEXT",    "INTEGER", "INTEGER", "TEXT",    "TEXT",    "INTEGER",
     "TEXT",    "INTEGER", "INTEGER", "INTEGER", "TEXT",    "TEXT",
-    "REAL",
     "INTEGER", "INTEGER", "INTEGER", "INTEGER", "INTEGER", "INTEGER",
     "TEXT",    "INTEGER", "INTEGER", "REAL",    "REAL",
 ]
Repository: huggingface/transformers
Pull request: fix typo in Gemma3n notes

# What does this PR do?

Fixes # (issue)

fix typo in Gemma3n notes

## Before submitting
- [x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#create-a-pull-request),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

<!-- Your PR will be replied to more quickly if you can figure out the right person to tag with @

 If you know how to use git blame, that is the easiest way, otherwise, here is a rough guide of **who to tag**.
 Please tag fewer than 3 people.

Models:

- text models: @ArthurZucker
- vision models: @amyeroberts, @qubvel
- speech models: @eustlb
- graph models: @clefourrier

Library:

- flax: @gante and @Rocketknight1
- generate: @zucchini-nlp (visual-language models) or @gante (all others)
- pipelines: @Rocketknight1
- tensorflow: @gante and @Rocketknight1
- tokenizers: @ArthurZucker
- trainer: @zach-huggingface, @SunMarc and @qgallouedec
- chat templates: @Rocketknight1

Integrations:

- deepspeed: HF Trainer/Accelerate: @SunMarc @zach-huggingface
- ray/raytune: @richardliaw, @amogkam
- Big Model Inference: @SunMarc
- quantization (bitsandbytes, autogpt): @SunMarc @MekkCyber

Documentation: @stevhliu

HF projects:

- accelerate: [different repo](https://github.com/huggingface/accelerate)
- datasets: [different repo](https://github.com/huggingface/datasets)
- diffusers: [different repo](https://github.com/huggingface/diffusers)
- rust tokenizers: [different repo](https://github.com/huggingface/tokenizers)

Maintained examples (not research project or legacy):

- Flax: @Rocketknight1
- PyTorch: See Models above and tag the person corresponding to the modality of the example.
- TensorFlow: @Rocketknight1

 -->


Changed files:
filename: docs/source/en/model_doc/gemma3n.md
patch: @@ -121,7 +121,7 @@ echo -e "Plants create energy through a process known as" | transformers run --t
 ## Notes
 
 -   Use [`Gemma3nForConditionalGeneration`] for image-audio-and-text, image-and-text, image-and-audio, audio-and-text,
-    image-only and aduio-only inputs.
+    image-only and audio-only inputs.
 -   Gemma 3n supports multiple images per input, but make sure the images are correctly batched before passing them to
     the processor. Each batch should be a list of one or more images.
Repository: vercel/next.js
Pull request: Update workflows for nextjs-bot

This updates to use the new bot account specific for Next.js which we've already been using for stale issues for a bit. 

Changed files:
filename: .github/labeler.json
patch: @@ -45,7 +45,7 @@
     ],
     "CI approved": [
       { "type": "user", "pattern": "SukkaW" },
-      { "type": "user", "pattern": "vercel-release-bot" },
+      { "type": "user", "pattern": "nextjs-bot" },
       { "type": "user", "pattern": "raunofreiberg" }
     ],
     "created-by: Next.js team": [

filename: .github/workflows/update_react.yml
patch: @@ -30,7 +30,7 @@ jobs:
 
       - name: Set Git author
         run: |
-          git config user.name "vercel-release-bot"
+          git config user.name "nextjs-bot"
           git config user.email "infra+release@vercel.com"
 
       - name: Setup node

filename: scripts/automated-update-workflow.js
patch: @@ -27,7 +27,7 @@ async function main() {
 
   await exec(`node ${SCRIPT}`)
 
-  await exec(`git config user.name "vercel-release-bot"`)
+  await exec(`git config user.name "nextjs-bot"`)
   await exec(`git config user.email "infra+release@vercel.com"`)
   await exec(`git checkout -b ${branchName}`)
   await exec(`git add -A`)
@@ -76,7 +76,7 @@ async function main() {
   console.log('Created pull request', pullRequest.url)
 
   const previousPullRequests = pullRequests.filter(({ title, user }) => {
-    return title.includes(PR_TITLE) && user.login === 'vercel-release-bot'
+    return title.includes(PR_TITLE) && user.login === 'nextjs-bot'
   })
 
   if (previousPullRequests.length) {

filename: scripts/start-release.js
patch: @@ -46,10 +46,10 @@ async function main() {
   config.set('token', githubToken)
 
   await execa(
-    `git remote set-url origin https://vercel-release-bot:${githubToken}@github.com/vercel/next.js.git`,
+    `git remote set-url origin https://nextjs-bot:${githubToken}@github.com/vercel/next.js.git`,
     { stdio: 'inherit', shell: true }
   )
-  await execa(`git config user.name "vercel-release-bot"`, {
+  await execa(`git config user.name "nextjs-bot"`, {
     stdio: 'inherit',
     shell: true,
   })
Repository: vercel/next.js
Pull request: Update nextjs-bot config

Follow-up from https://github.com/vercel/next.js/pull/81134 updating the email used in commit messages as well. 

Changed files:
filename: .github/workflows/update_react.yml
patch: @@ -31,7 +31,7 @@ jobs:
       - name: Set Git author
         run: |
           git config user.name "nextjs-bot"
-          git config user.email "infra+release@vercel.com"
+          git config user.email "it+nextjs-bot@vercel.com"
 
       - name: Setup node
         uses: actions/setup-node@v4

filename: scripts/automated-update-workflow.js
patch: @@ -28,7 +28,7 @@ async function main() {
   await exec(`node ${SCRIPT}`)
 
   await exec(`git config user.name "nextjs-bot"`)
-  await exec(`git config user.email "infra+release@vercel.com"`)
+  await exec(`git config user.email "it+nextjs-bot@vercel.com"`)
   await exec(`git checkout -b ${branchName}`)
   await exec(`git add -A`)
   await exec(`git commit --message ${branchName}`)

filename: scripts/start-release.js
patch: @@ -53,7 +53,7 @@ async function main() {
     stdio: 'inherit',
     shell: true,
   })
-  await execa(`git config user.email "infra+release@vercel.com"`, {
+  await execa(`git config user.email "it+nextjs-bot@vercel.com"`, {
     stdio: 'inherit',
     shell: true,
   })