Skip to content

[devtools] preload sourcemapped stackframes#90734

Draft
eps1lon wants to merge 9 commits intocanaryfrom
sebbie/prefetch-sourcemapping
Draft

[devtools] preload sourcemapped stackframes#90734
eps1lon wants to merge 9 commits intocanaryfrom
sebbie/prefetch-sourcemapping

Conversation

@eps1lon
Copy link
Member

@eps1lon eps1lon commented Mar 1, 2026

...instead of kicking of the fetch in useEffect.

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Mar 1, 2026

Failing test suites

Commit: f59ed9e | About building and testing Next.js

pnpm test-dev test/e2e/app-dir/log-file/log-file.test.ts (job)

  • log-file > should capture client logging in log file (DD)
Expand output

● log-file › should capture client logging in log file

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `log-file should capture client logging in log file 1`

- Snapshot  - 4
+ Received  + 4

- "{"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"LOG","message":"Client: Complex circular object: {\"data\":{\"nested\":{\"items\":[1,2,3],\"value\":42},\"parent\":\"[Circular]\"},\"metadata\":{\"name\":\"safe stringify\",\"version\":\"1.0.0\"},\"name\":\"test\"}"}
- {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"ERROR","message":"Client: This is an error message from client component"}
- {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"WARN","message":"Client: This is a warning message from client component"}
- {"timestamp":"xx:xx:xx.xxx","source":"Server","level":"ERROR","message":"[browser] \"Client: This is an error message from client component\" \"\\n    at ClientPage.useEffect (app/client/page.tsx:25:13)\\n  23 |     circularObj.data.parent = circularObj\\n  24 |     console.log('Client: Complex circular object:', circularObj)\\n> 25 |     console.error('Client: This is an error message from client component')\\n     |             ^\\n  26 |     console.warn('Client: This is a warning message from client component')\\n  27 |   }, [])\\n  28 |\" \"(app/client/page.tsx:25:13)\""}
+ "{"timestamp":"xx:xx:xx.xxx","source":"Server","level":"ERROR","message":"[browser] \"Client: This is an error message from client component\" \"\\n    at ClientPage.useEffect (app/client/page.tsx:25:13)\\n  23 |     circularObj.data.parent = circularObj\\n  24 |     console.log('Client: Complex circular object:', circularObj)\\n> 25 |     console.error('Client: This is an error message from client component')\\n     |             ^\\n  26 |     console.warn('Client: This is a warning message from client component')\\n  27 |   }, [])\\n  28 |\" \"(app/client/page.tsx:25:13)\""}
  {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"ERROR","message":"Client: This is an error message from client component \"\\n    at ClientPage.useEffect (app/client/page.tsx:25:13)\\n  23 |     circularObj.data.parent = circularObj\\n  24 |     console.log('Client: Complex circular object:', circularObj)\\n> 25 |     console.error('Client: This is an error message from client component')\\n     |             ^\\n  26 |     console.warn('Client: This is a warning message from client component')\\n  27 |   }, [])\\n  28 |\" \"(app/client/page.tsx:25:13)\""}
  {"timestamp":"xx:xx:xx.xxx","source":"Server","level":"WARN","message":"[browser] \"Client: This is a warning message from client component\" \"(app/client/page.tsx:26:13)\""}
+ {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"WARN","message":"Client: This is a warning message from client component"}
+ {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"LOG","message":"Client: Complex circular object: {\"data\":{\"nested\":{\"items\":[1,2,3],\"value\":42},\"parent\":\"[Circular]\"},\"metadata\":{\"name\":\"safe stringify\",\"version\":\"1.0.0\"},\"name\":\"test\"}"}
+ {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"ERROR","message":"Client: This is an error message from client component"}
  {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"WARN","message":"Client: This is a warning message from client component"}"

  136 |         const newLogContent = getNewLogContent()
  137 |         // Only browser only logs are being forwarded to terminal
> 138 |         expect(newLogContent).toMatchInlineSnapshot(`
      |                               ^
  139 |          "{"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"LOG","message":"Client: Complex circular object: {\\"data\\":{\\"nested\\":{\\"items\\":[1,2,3],\\"value\\":42},\\"parent\\":\\"[Circular]\\"},\\"metadata\\":{\\"name\\":\\"safe stringify\\",\\"version\\":\\"1.0.0\\"},\\"name\\":\\"test\\"}"}
  140 |          {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"ERROR","message":"Client: This is an error message from client component"}
  141 |          {"timestamp":"xx:xx:xx.xxx","source":"Browser","level":"WARN","message":"Client: This is a warning message from client component"}

  at toMatchInlineSnapshot (e2e/app-dir/log-file/log-file.test.ts:138:31)
  at fn (lib/next-test-utils.ts:845:20)
  at Object.<anonymous> (e2e/app-dir/log-file/log-file.test.ts:135:18)

pnpm test-start test/e2e/app-dir/with-babel/with-babel.test.ts (job)

  • with babel > should support babel in app dir (DD)
  • with babel > should contain og package files in middleware (DD)
Expand output

● with babel › should support babel in app dir

next build failed with code/signal 1

   97 |             if (code || signal)
   98 |               reject(
>  99 |                 new Error(
      |                 ^
  100 |                   `next build failed with code/signal ${code || signal}`
  101 |                 )
  102 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:99:17)

● with babel › should contain og package files in middleware

next build failed with code/signal 1

   97 |             if (code || signal)
   98 |               reject(
>  99 |                 new Error(
      |                 ^
  100 |                   `next build failed with code/signal ${code || signal}`
  101 |                 )
  102 |               )

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:99:17)

pnpm test-dev test/e2e/react-compiler/react-compiler.test.ts (job)

  • react-compiler babelrc > should memoize Components (DD)
  • react-compiler babelrc > should name functions in dev (DD)
  • react-compiler babelrc > throws if the React Compiler is used in a React Server environment (DD)
Expand output

● react-compiler babelrc › should memoize Components

expect(received).toEqual(expected) // deep equality

Expected: 1
Received: undefined

  50 |       const browser = await next.browser('/')
  51 |
> 52 |       expect(await browser.eval('window.staticChildRenders')).toEqual(1)
     |                                                               ^
  53 |       expect(
  54 |         await browser.elementByCss('[data-testid="parent-commits"]').text()
  55 |       ).toEqual('Parent commits: 1')

  at Object.toEqual (e2e/react-compiler/react-compiler.test.ts:52:63)

● react-compiler babelrc › should name functions in dev

page.waitForSelector: Timeout 5000ms exceeded.
Call log:
  - waiting for locator('[data-testid="call-frame"][aria-busy="false"]') to be visible

  519 |
  520 |     return this.startChain(async () => {
> 521 |       const el = await page.waitForSelector(selector, {
      |                             ^
  522 |         timeout,
  523 |         state,
  524 |       })

  at waitForSelector (lib/browsers/playwright.ts:521:29)
  at Playwright._chain (lib/browsers/playwright.ts:651:23)
  at Playwright._chain [as startChain] (lib/browsers/playwright.ts:632:17)
  at Playwright.startChain [as waitForElementByCss] (lib/browsers/playwright.ts:520:17)
  at Object.waitForElementByCss (e2e/react-compiler/react-compiler.test.ts:85:21)

● react-compiler babelrc › throws if the React Compiler is used in a React Server environment

expect(received).toContain(expected) // indexOf

Expected substring: "⨯ TypeError: Cannot read properties of undefined (reading 'H')
    at Container (**)
  2 |"
Received string:    "⨯ ./node_modules/.pnpm/file+..+next-repo-32aa6cc41940be7644f481958076cfafea3db76c15f6408fa3da18441d7e58cf+packages+n_pfemd2gbskcysejhzmrrmowkbm/node_modules/next/dist/compiled/next-devtools/index.js
TypeError: e.charCodeAt is not a function
    at map
    at forEach
Import trace for requested module:
./node_modules/.pnpm/file+..+next-repo-32aa6cc41940be7644f481958076cfafea3db76c15f6408fa3da18441d7e58cf+packages+n_pfemd2gbskcysejhzmrrmowkbm/node_modules/next/dist/compiled/next-devtools/index.js
⨯ Error: ENOENT: no such file or directory, open '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
    at ignore-listed
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
    at ignore-listed
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
}
Error: ENOENT: no such file or directory, open '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
    at ignore-listed
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/tmp/next-install-c1b85b9832b3f44aa5b6ea9af1a23818899948a3022a3925263120979a077780/.next/dev/fallback-build-manifest.json'
}
 GET /library-missing-react-server 500 in 2.9s
 GET /library-missing-react-server 500 in 2.9s
"

  135 |         // TODO(NDX-663): Unhelpful error message.
  136 |         // Should say that the library should have a react-server entrypoint that doesn't use the React Compiler.
> 137 |         expect(cliOutput).toContain(
      |                           ^
  138 |           "⨯ TypeError: Cannot read properties of undefined (reading 'H')" +
  139 |             // location not important. Just that this is the only frame.
  140 |             // TODO: Stack should start at product code. Possible React limitation.

  at Object.toContain (e2e/react-compiler/react-compiler.test.ts:137:27)

pnpm test test/integration/babel-next-image/babel-next-image.test.ts (job)

  • babel-next-image > should work with babel and next/image (DD)
Expand output

● babel-next-image › should work with babel and next/image

expect(received).toBe(expected) // Object.is equality

Expected: 200
Received: 500

  17 |     it('should work with babel and next/image', async () => {
  18 |       const res = await fetchViaHTTP(appPort, '/')
> 19 |       expect(res.status).toBe(200)
     |                          ^
  20 |     })
  21 |   }
  22 | )

  at Object.toBe (integration/babel-next-image/babel-next-image.test.ts:19:26)

pnpm test-start test/e2e/app-dir/next-after-app-static/build-time/build-time.test.ts (job)

  • after() in static pages > runs after during build (DD)
Expand output

● after() in static pages › runs after during build

can not run export while server is running, use next.stop() first

  251 |   ) {
  252 |     if (this.childProcess) {
> 253 |       throw new Error(
      |             ^
  254 |         `can not run export while server is running, use next.stop() first`
  255 |       )
  256 |     }

  at NextStartInstance.build (lib/next-modes/next-start.ts:253:13)
  at Object.build (e2e/app-dir/next-after-app-static/build-time/build-time.test.ts:36:36)

pnpm test-dev test/development/app-dir/server-components-hmr-cache/server-components-hmr-cache.test.ts (job)

  • server-components-hmr-cache > should support reading from an infinite streaming fetch (DD)
Expand output

● server-components-hmr-cache › should support reading from an infinite streaming fetch

thrown: "Exceeded timeout of 10000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  224 |   })
  225 |
> 226 |   it('should support reading from an infinite streaming fetch', async () => {
      |   ^
  227 |     const browser = await next.browser('/infinite-stream')
  228 |     const text = await browser.elementByCss('p').text()
  229 |     expect(text).toBe('data: chunk-1')

  at it (development/app-dir/server-components-hmr-cache/server-components-hmr-cache.test.ts:226:3)
  at Object.describe (development/app-dir/server-components-hmr-cache/server-components-hmr-cache.test.ts:6:1)

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Mar 1, 2026

Stats from current PR

🟢 1 improvement

Metric Canary PR Change Trend
node_modules Size 476 MB 475 MB 🟢 693 kB (0%) █████
📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 559ms 559ms ██▁▁▆
Cold (Ready in log) 524ms 522ms ▆█▁▁▅
Cold (First Request) 1.137s 1.127s ▅█▂▂▄
Warm (Listen) 558ms 558ms ▇█▁▁▇
Warm (Ready in log) 517ms 518ms ▆█▁▁▅
Warm (First Request) 408ms 398ms ▆█▁▁▅
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 455ms 455ms █▁▁▁█
Cold (Ready in log) 438ms 438ms █▁▁▅▇
Cold (First Request) 1.921s 1.915s █▁▁▃▅
Warm (Listen) 456ms 455ms █▁▁▁█
Warm (Ready in log) 437ms 438ms █▁▁▄▇
Warm (First Request) 1.938s 1.914s █▁▁▃▆

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.957s 4.948s ▄█▁▁▃
Cached Build 4.929s 4.963s ▅█▁▁▃
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.012s 13.963s █▁▁▁▇
Cached Build 14.169s 14.126s █▁▁▁▇
node_modules Size 476 MB 475 MB 🟢 693 kB (0%) █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **401 kB** → **401 kB** ✅ -302 B

80 files with content-based hashes (individual files not comparable between builds)

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 768 B 766 B
Total 768 B 766 B ✅ -2 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 451 B 450 B
Total 451 B 450 B ✅ -1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.54 kB N/A -
6280-HASH.js gzip 58.7 kB N/A -
6335.HASH.js gzip 169 B N/A -
912-HASH.js gzip 4.59 kB N/A -
e8aec2e4-HASH.js gzip 62.6 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 256 B 254 B
main-HASH.js gzip 39.1 kB 39.1 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
262-HASH.js gzip N/A 4.59 kB -
2889.HASH.js gzip N/A 169 B -
5602-HASH.js gzip N/A 5.55 kB -
6948ada0-HASH.js gzip N/A 62.6 kB -
9544-HASH.js gzip N/A 59.1 kB -
Total 232 kB 233 kB ⚠️ +412 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 194 B 194 B
_error-HASH.js gzip 183 B 180 B 🟢 3 B (-2%)
css-HASH.js gzip 331 B 330 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 351 B 352 B
hooks-HASH.js gzip 384 B 383 B
image-HASH.js gzip 580 B 581 B
index-HASH.js gzip 260 B 260 B
link-HASH.js gzip 2.5 kB 2.5 kB
routerDirect..HASH.js gzip 320 B 319 B
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 315 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.97 kB ✅ -2 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 255 kB 255 kB
Total 380 kB 379 kB ✅ -333 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 616 B 614 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 43.5 kB 43.9 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.1 kB 45.5 kB ⚠️ +394 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 715 B 718 B
Total 715 B 718 B ⚠️ +3 B
Build Cache
Canary PR Change
0.pack gzip 4.05 MB 4.03 MB 🟢 19.4 kB (0%)
index.pack gzip 103 kB 103 kB
index.pack.old gzip 103 kB 101 kB 🟢 2.17 kB (-2%)
Total 4.26 MB 4.24 MB ✅ -22 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 321 kB 320 kB
app-page-exp..prod.js gzip 170 kB 170 kB
app-page-tur...dev.js gzip 320 kB 320 kB
app-page-tur..prod.js gzip 170 kB 170 kB
app-page-tur...dev.js gzip 317 kB 316 kB
app-page-tur..prod.js gzip 168 kB 168 kB
app-page.run...dev.js gzip 317 kB 317 kB
app-page.run..prod.js gzip 168 kB 168 kB
app-route-ex...dev.js gzip 70.8 kB 70.8 kB
app-route-ex..prod.js gzip 49.3 kB 49.2 kB
app-route-tu...dev.js gzip 70.9 kB 70.9 kB
app-route-tu..prod.js gzip 49.3 kB 49.3 kB
app-route-tu...dev.js gzip 70.5 kB 70.4 kB
app-route-tu..prod.js gzip 49 kB 49 kB
app-route.ru...dev.js gzip 70.4 kB 70.4 kB
app-route.ru..prod.js gzip 49 kB 49 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 43.2 kB 43.2 kB
pages-api-tu..prod.js gzip 32.9 kB 32.9 kB
pages-api.ru...dev.js gzip 43.2 kB 43.2 kB
pages-api.ru..prod.js gzip 32.9 kB 32.9 kB
pages-turbo....dev.js gzip 52.6 kB 52.6 kB
pages-turbo...prod.js gzip 38.5 kB 38.5 kB
pages.runtim...dev.js gzip 52.6 kB 52.6 kB
pages.runtim..prod.js gzip 38.5 kB 38.5 kB
server.runti..prod.js gzip 62 kB 61.9 kB
Total 2.83 MB 2.82 MB ✅ -4.49 kB
📝 Changed Files (25 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
  • app-route-ex..ntime.dev.js
  • app-route-ex..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route.runtime.dev.js
  • app-route.ru..time.prod.js
  • pages-api-tu..ntime.dev.js
  • pages-api-tu..time.prod.js
  • pages-api.runtime.dev.js
  • pages-api.ru..time.prod.js
  • ... and 5 more
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page.runtime.dev.js
failed to diff
app-page.runtime.prod.js
failed to diff
app-route-ex..ntime.dev.js

Diff too large to display

app-route-ex..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route.runtime.dev.js

Diff too large to display

app-route.ru..time.prod.js

Diff too large to display

pages-api-tu..ntime.dev.js

Diff too large to display

pages-api-tu..time.prod.js

Diff too large to display

pages-api.runtime.dev.js

Diff too large to display

pages-api.ru..time.prod.js

Diff too large to display

pages-turbo...ntime.dev.js

Diff too large to display

pages-turbo...time.prod.js

Diff too large to display

pages.runtime.dev.js

Diff too large to display

pages.runtime.prod.js

Diff too large to display

server.runtime.prod.js

Diff too large to display

📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/f59ed9ecfff0a008c8873c00b2e31f4510848655/next

eps1lon and others added 9 commits March 2, 2026 12:42
Main motivation is getting to a versions supporting
`enableNameAnonymousFunctions` option, which is needed to get proper
function names in devtools builds.

This option is only enabled for dev.
The previous method of using the PR endpoint under the hood calls the
GitHub API to get the commit SHA, which is a waste of resources, so just
use the commit SHA directly in the tarball URL.
The fetch is kicked of earlier due to Activity.

Next step is prerendering the next and previous error.
@eps1lon eps1lon changed the base branch from canary to graphite-base/90734 March 2, 2026 11:42
@eps1lon eps1lon force-pushed the sebbie/prefetch-sourcemapping branch from 29fb167 to f59ed9e Compare March 2, 2026 11:43
@eps1lon eps1lon force-pushed the graphite-base/90734 branch from 9c31bbd to 0ee05b5 Compare March 2, 2026 11:43
@nextjs-bot nextjs-bot added create-next-app Related to our CLI tool for quickly starting a new Next.js application. tests labels Mar 2, 2026
@eps1lon eps1lon changed the base branch from graphite-base/90734 to sebbie/03-02-_devtools_bundle_for_same_target_as_next.js_browser_runtime March 2, 2026 11:43
Copy link
Member Author

eps1lon commented Mar 2, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@eps1lon eps1lon force-pushed the sebbie/03-02-_devtools_bundle_for_same_target_as_next.js_browser_runtime branch 3 times, most recently from 388064c to 09974ae Compare March 2, 2026 16:09
Base automatically changed from sebbie/03-02-_devtools_bundle_for_same_target_as_next.js_browser_runtime to canary March 3, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

create-next-app Related to our CLI tool for quickly starting a new Next.js application. created-by: Next.js team PRs by the Next.js team. tests type: next

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants