Skip to content

turbo-persistence: add borrowed mmap byte slices - #97888

Draft
sokra wants to merge 1 commit into
sokra/no-mmapfrom
sokra/mmap-ref
Draft

turbo-persistence: add borrowed mmap byte slices#97888
sokra wants to merge 1 commit into
sokra/no-mmapfrom
sokra/mmap-ref

Conversation

@sokra

@sokra sokra commented Aug 25, 2026

Copy link
Copy Markdown
Member

What?

Make ArcBytes lifetime-aware and add a borrowed MmapRef backing that can be promoted to owned storage when a value escapes.

This is 2/3 in a dependent PR series.

Why?

The no-mmap layer represents raw reads as either borrowed mmap bytes or owned file bytes. A lifetime-aware ArcBytes makes that borrowed view a first-class type, so code can carry the same byte abstraction across a local boundary and clone the mmap handle only when ownership is actually required.

This is intentionally a narrow type/ownership refactor; it does not add file-mode behavior and does not change compaction's RcBytes strategy.

How?

  • Add Backing::MmapRef, from_mmap_ref, and into_static.
  • Propagate explicit owned/static lifetimes through lookup, cache, and public return types.
  • Replace the raw SST Cow boundary with borrowed ArcBytes and promote on escape.
  • Keep RcBytes/SharedBytes unchanged.

Verification

  • cargo fmt --all -- --check
  • cargo check -p turbo-persistence --all-targets --all-features
  • cargo check -p turbo-tasks-backend
  • cargo check -p turbo-persistence --benches
  • cargo test -p turbo-persistence --all-features — 105 passed

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Stats from current PR

🔴 2 regressions, 2 improvements

Metric Canary PR Change Trend
node_modules Size 557 MB 558 MB 🔴 +813 kB (+0%) ▁████
Webpack Warm (First Request) 3.407s 3.532s 🔴 +125ms (+4%) ▁▁▁▂▁
Turbo Build Time (cached) 3.187s 3.009s 🟢 178ms (-6%) ▇▂▄▁▂
Webpack Cold (First Request) 3.488s 3.342s 🟢 146ms (-4%) ▁▂▁▂▂
📊 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) 863ms 814ms █████
Cold (Ready in log) 829ms 812ms █▆▇▃▆
Cold (First Request) 1.347s 1.367s █▅▆▁▄
Warm (Listen) 813ms 814ms █████
Warm (Ready in log) 815ms 815ms █▆▅▄▅
Warm (First Request) 1.327s 1.349s █▄▂▁▃
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 813ms 813ms ▁▁▁▁▁
Cold (Ready in log) 808ms 800ms ▁▁▁▁▁
Cold (First Request) 3.488s 3.342s 🟢 146ms (-4%) ▁▂▁▂▂
Warm (Listen) 813ms 813ms ▁▁▁▂▁
Warm (Ready in log) 801ms 817ms ▁▁▁▂▁
Warm (First Request) 3.407s 3.532s 🔴 +125ms (+4%) ▁▁▁▂▁

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 6.398s 6.252s ▆▂▅▁▃
Cached Build 3.187s 3.009s 🟢 178ms (-6%) ▇▂▄▁▂
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 24.514s 24.606s ▁▂▁▂▁
Cached Build 24.695s 24.919s ▁▂▁▂▁
node_modules Size 557 MB 558 MB 🔴 +813 kB (+0%) ▁████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
017_4moyv5m34.js gzip 117 B N/A -
05jocc85-b73_.js gzip 341 B N/A -
0cz1d0mv5g_q7.js gzip 39.4 kB 39.4 kB
0e5lgz-xcf6ln.js gzip 273 B N/A -
0enhddgqs2dl-.js gzip 265 B N/A -
0h34mejwa_7pd.js gzip 354 B N/A -
0w853zxni3ro0.js gzip 1.36 kB N/A -
13lq2aw3_0bgw.js gzip 3.52 kB N/A -
19ll0d77yn0fq.js gzip 71.5 kB N/A -
1drifx6-oqf3q.js gzip 5.7 kB N/A -
1elt1qium-r2m.css gzip 115 B 115 B
1m5vdnlf0deiv.js gzip 411 B N/A -
1nigpy_mr0xvj.js gzip 339 B N/A -
1p0l8mn2wz5f2.js gzip 1.97 kB N/A -
1ph_nbsm967ot.js gzip 152 B N/A -
1sqoyy39jpgkq.js gzip 121 B N/A -
1tf1phijqlx9j.js gzip 220 B 220 B
2-54v5vj7orwp.js gzip 46.8 kB N/A -
2b05_424u1zq-.js gzip 120 B N/A -
2ca40xittx95r.js gzip 8.75 kB N/A -
2kci0vnt-49o-.js gzip 113 B N/A -
2rtriq9lc6zj-.js gzip 116 B N/A -
2sxgl_rcrrn_p.js gzip 399 B N/A -
2vt62i17bhbdu.js gzip 2.35 kB N/A -
33ykhou7tl-4h.js gzip 7.53 kB N/A -
342di-crrg9kq.js gzip 119 B N/A -
36hfc2_979aw2.js gzip 119 B N/A -
38wfp6jjrrdfm.js gzip 131 B N/A -
3dl1ilk37-30g.js gzip 117 B N/A -
3h0us7yy7bd_o.js gzip 13.1 kB N/A -
3kvxagoobts7h.js gzip 117 B N/A -
3p99hd9vwe6ae.js gzip 13 kB N/A -
3r0475panhk6m.js gzip 123 B N/A -
3s0i-weykgzrt.js gzip 125 B N/A -
3vjosdbddykpw.js gzip 5.88 kB N/A -
3wijk2ywqgsv9.js gzip 2.52 kB N/A -
3xuguv9lsoqw7.js gzip 65.5 kB N/A -
41u5s3oe2-erp.js gzip 2.29 kB N/A -
turbopack-0d..9ejy.js gzip 3.74 kB 3.74 kB
0-6bcj16ji2wf.js gzip N/A 10.6 kB -
07ryk0jced-sc.js gzip N/A 8.78 kB -
0f2pzjwlzp570.js gzip N/A 153 B -
0jwho9fkrb_t3.js gzip N/A 2.29 kB -
0plt0zo6-4_v5.js gzip N/A 166 B -
0qzh85u899nb_.js gzip N/A 153 B -
0roh390ijzxa5.js gzip N/A 8.75 kB -
0vex9w55ursqj.js gzip N/A 8.79 kB -
13fdp6hysi38e.js gzip N/A 7.53 kB -
17oe55cu76cd7.js gzip N/A 450 B -
1drww5xikb-c-.js gzip N/A 9.46 kB -
1g60xde_dv17t.js gzip N/A 8.79 kB -
1tk2c3ly9trqz.js gzip N/A 158 B -
1umpctldnyrmf.js gzip N/A 71.7 kB -
1uzv47btzam64.js gzip N/A 5.73 kB -
1vy7n7wxv_rh5.js gzip N/A 8.81 kB -
1xnmvqyl9im03.js gzip N/A 152 B -
2-0i7pl900-ou.js gzip N/A 8.71 kB -
2-kcbngm7ik7y.js gzip N/A 8.75 kB -
201m4ukegyvno.js gzip N/A 149 B -
29p5-xa4jmdhg.js gzip N/A 13.7 kB -
2fvvh1zteirv4.js gzip N/A 154 B -
2nsrcvgnlgkby.js gzip N/A 3.56 kB -
2rvtn0r6ofqke.js gzip N/A 158 B -
2ugc69z0t0ypz.js gzip N/A 1.46 kB -
337k106f267_f.js gzip N/A 153 B -
36dn8i-_3dnq5.js gzip N/A 10 kB -
37kl4d29o4lzm.js gzip N/A 151 B -
3af363oh3ex9y.js gzip N/A 46.9 kB -
3c9h4nw32b1g_.js gzip N/A 154 B -
3fljpmwcjxqhx.js gzip N/A 10.3 kB -
3gz44skqdlsrb.js gzip N/A 8.71 kB -
3otcauqycd0hf.js gzip N/A 65.6 kB -
3qts07grq6eyi.js gzip N/A 152 B -
3rta4z_5ewc-z.js gzip N/A 152 B -
3skgwg3_u6i_e.js gzip N/A 13.2 kB -
3y9tus7kb5su0.js gzip N/A 13.3 kB -
Total 299 kB 401 kB ⚠️ +102 kB

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 1.02 kB 1.06 kB 🔴 +32 B (+3%)
Total 1.02 kB 1.06 kB ⚠️ +32 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 846 B 877 B 🔴 +31 B (+4%)
Total 846 B 877 B ⚠️ +31 B
Build Cache
Canary PR Change
00000001.sst gzip 14.3 MB 12.9 MB 🟢 1.37 MB (-10%)
00000002.sst gzip 12.7 MB 14.8 MB 🔴 +2.13 MB (+17%)
00000003.sst gzip 14.2 MB 14.7 MB 🔴 +559 kB (+4%)
00000004.sst gzip 13.7 MB 13.1 MB 🟢 632 kB (-5%)
00000005.sst gzip 10.1 MB 10.2 MB 🔴 +132 kB (+1%)
00000006.sst gzip 2.75 MB 2.8 MB 🔴 +51 kB (+2%)
00000007.sst gzip 59 B 59 B
00000008.meta gzip 89 B 89 B
00000009.meta gzip 297 kB 298 kB
00000010.meta gzip 297 kB 298 kB
00000011.meta gzip 297 kB 298 kB
00000012.sst gzip 53.4 kB 51.8 kB 🟢 1.66 kB (-3%)
00000013.sst gzip 1.8 MB 1.85 MB 🔴 +48.3 kB (+3%)
00000014.sst gzip 59 B 59 B
00000015.meta gzip 116 B 116 B
00000016.meta gzip 327 kB 328 kB
00000017.meta gzip 404 kB 407 kB 🔴 +3.12 kB (+1%)
00000018.sst gzip 54.1 kB 52.5 kB 🟢 1.56 kB (-3%)
00000019.sst gzip 1.37 MB 1.4 MB 🔴 +36.9 kB (+3%)
00000020.sst gzip 59 B 59 B
00000021.meta gzip 116 B 116 B
00000022.meta gzip 327 kB 328 kB
00000023.meta gzip 372 kB 374 kB
00000024.sst gzip 54.2 kB 52.5 kB 🟢 1.68 kB (-3%)
00000025.sst gzip 1.37 MB 1.4 MB 🔴 +37.1 kB (+3%)
00000026.sst gzip 59 B 59 B
00000027.meta gzip 116 B 116 B
00000028.meta gzip 327 kB 328 kB
00000029.meta gzip 372 kB 374 kB
00000030.sst gzip 53.6 kB 51.9 kB 🟢 1.64 kB (-3%)
00000031.sst gzip 1.37 MB 1.4 MB 🔴 +37.1 kB (+3%)
00000032.sst gzip 59 B 59 B
00000033.meta gzip 116 B 116 B
00000034.meta gzip 327 kB 328 kB
00000035.meta gzip 372 kB 374 kB
00000036.sst gzip 54.2 kB 52.4 kB 🟢 1.73 kB (-3%)
00000037.sst gzip 1.37 MB 1.4 MB 🔴 +37.1 kB (+3%)
00000038.sst gzip 59 B 59 B
00000039.meta gzip 116 B 116 B
00000040.meta gzip 327 kB 328 kB
00000041.meta gzip 372 kB 374 kB
CURRENT gzip 94 B 94 B
LOG gzip 663 B 672 B 🔴 +9 B (+1%)
Total 79.6 MB 80.7 MB ⚠️ +1.07 MB

📦 Webpack

Client

Main Bundles
Canary PR Change
3322-HASH.js gzip 65.7 kB N/A -
4191.HASH.js gzip 169 B N/A -
9784-HASH.js gzip 5.6 kB N/A -
b1ad9f4c-HASH.js gzip 63.5 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 253 B 252 B
main-HASH.js gzip 39.8 kB 40.2 kB 🔴 +437 B (+1%)
webpack-HASH.js gzip 1.68 kB 1.68 kB
3577.HASH.js gzip N/A 168 B -
578-HASH.js gzip N/A 66.2 kB -
8590-HASH.js gzip N/A 5.61 kB -
9750-HASH.js gzip N/A 4.68 kB -
a8984546-HASH.js gzip N/A 63.5 kB -
Total 236 kB 242 kB ⚠️ +5.64 kB
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 193 B
_error-HASH.js gzip 181 B 182 B
css-HASH.js gzip 334 B 331 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 255 B 253 B
head-HASH.js gzip 349 B 351 B
hooks-HASH.js gzip 382 B 384 B
image-HASH.js gzip 5.05 kB 582 B 🟢 4.47 kB (-88%)
index-HASH.js gzip 260 B 259 B
link-HASH.js gzip 2.48 kB 2.48 kB
routerDirect..HASH.js gzip 317 B 318 B
script-HASH.js gzip 384 B 386 B
withRouter-HASH.js gzip 316 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 12.4 kB 7.96 kB ✅ -4.47 kB

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 128 kB 129 kB
page.js gzip 293 kB 294 kB
Total 421 kB 423 kB ⚠️ +1.82 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 599 B 617 B 🔴 +18 B (+3%)
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 45.7 kB 45.9 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 47.2 kB 47.5 kB ⚠️ +281 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 699 B 718 B 🔴 +19 B (+3%)
Total 699 B 718 B ⚠️ +19 B
Build Cache
Canary PR Change
0.pack gzip 4.8 MB 4.82 MB 🔴 +18.8 kB (+0%)
index.pack gzip 123 kB 123 kB
index.pack.old gzip 124 kB 124 kB
Total 5.04 MB 5.06 MB ⚠️ +18.9 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 375 kB 375 kB
app-page-exp..prod.js gzip 206 kB 207 kB
app-page-tur...dev.js gzip 374 kB 375 kB
app-page-tur..prod.js gzip 206 kB 206 kB
app-page-tur...dev.js gzip 370 kB 371 kB
app-page-tur..prod.js gzip 204 kB 204 kB
app-page.run...dev.js gzip 371 kB 371 kB
app-page.run..prod.js gzip 204 kB 204 kB
app-route-ex...dev.js gzip 82.6 kB 83.3 kB
app-route-ex..prod.js gzip 55.7 kB 56.3 kB 🔴 +658 B (+1%)
app-route-tu...dev.js gzip 82.6 kB 83.4 kB
app-route-tu..prod.js gzip 55.7 kB 56.3 kB 🔴 +658 B (+1%)
app-route-tu...dev.js gzip 82.2 kB 82.9 kB
app-route-tu..prod.js gzip 55.4 kB 56.1 kB 🔴 +661 B (+1%)
app-route.ru...dev.js gzip 82.2 kB 82.9 kB
app-route.ru..prod.js gzip 55.4 kB 56.1 kB 🔴 +662 B (+1%)
dev-validati...dev.js gzip 134 kB 134 kB
dev-validati...dev.js gzip 134 kB 134 kB
dev-validati...dev.js gzip 132 kB 132 kB
dev-validati...dev.js gzip 132 kB 132 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 46.3 kB 46.5 kB
pages-api-tu..prod.js gzip 34.3 kB 34.7 kB 🔴 +352 B (+1%)
pages-api.ru...dev.js gzip 46.2 kB 46.5 kB
pages-api.ru..prod.js gzip 34.3 kB 34.6 kB 🔴 +347 B (+1%)
pages-turbo....dev.js gzip 54.7 kB 55.3 kB 🔴 +614 B (+1%)
pages-turbo...prod.js gzip 39.7 kB 40.2 kB 🔴 +538 B (+1%)
pages.runtim...dev.js gzip 54.7 kB 55.3 kB 🔴 +592 B (+1%)
pages.runtim..prod.js gzip 39.6 kB 40.2 kB 🔴 +537 B (+1%)
server.runti..prod.js gzip 65.9 kB 66.7 kB 🔴 +741 B (+1%)
use-cache-pr...dev.js gzip 73.3 kB 72.8 kB
use-cache-pr...dev.js gzip 73.3 kB 72.8 kB
use-cache-pr...dev.js gzip 71.5 kB 71 kB
use-cache-pr...dev.js gzip 71.5 kB 71 kB
Total 4.1 MB 4.11 MB ⚠️ +10.9 kB
📝 Changed Files (33 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
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • ... and 13 more
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js
failed to diff
app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
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

dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
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

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

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

Commit: d3cc343

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Failing test suites

Commit: d3cc343 | About building and testing Next.js

pnpm test-dev-turbo test/development/acceptance-app/app-hmr-changes.test.ts (turbopack) (job)

  • Error overlay - RSC build errors > Skipped in webpack > should handle successive HMR changes with errors correctly (DD)
Expand output

● Error overlay - RSC build errors › Skipped in webpack › should handle successive HMR changes with errors correctly

Application is in inconsistent state: timeout.

  114 |             }
  115 |             if (status !== 'pending') {
> 116 |               throw new Error(
      |                     ^
  117 |                 `Application is in inconsistent state: ${status}.`
  118 |               )
  119 |             }

  at Object.patch (lib/development-sandbox.ts:116:21)
  at Object.<anonymous> (development/acceptance-app/app-hmr-changes.test.ts:58:11)

@sokra sokra added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. labels Aug 25, 2026 — with vercel-fleet-prod
sokra added a commit that referenced this pull request Aug 26, 2026
### What?

Stabilize `NextStartInstance.build()` CLI output capture so failed
production builds return all trailing stdout/stderr diagnostics.

The existing `sync-io-blocks-root` behavioral assertions remain
unchanged, including the route-specific `Date.now()` diagnostic,
timeout/retry guard, and exit-code check.

### Why?

The `--debug-prerender` cases intermittently lost the detailed
`Date.now()` diagnostic from `result.cliOutput` in CI even though builds
exited normally. Across the reported CI run and two retries, the missing
route set varied from 4 to 2 to 3 routes, consistent with an
output-drain race rather than a rendering or resource failure.

On latest canary with Node 20, `NEXT_TEST_MODE=start`, and
`IS_WEBPACK_TEST=1`, 5 baseline campaigns completed 24 builds (20
debug-prerender) without reproducing the intermittent failure locally. A
controlled Node 20 reproduction established the lifecycle race directly:
the child `exit` event observed no trailing output, while `close`
observed the trailing diagnostic.

### How?

Wait for the child process `close` event before snapshotting
`cliOutput`. Unlike `exit`, `close` is emitted after the piped stdout
and stderr streams close, so diagnostics emitted near process shutdown
are fully drained before the build result is returned.

This is intentionally limited to the affected start-mode build harness
and is independent of the mmap persistence PR stack (#97873, #97888,
#97889).

### Verification

- Baseline on Node 20.20.2 / start mode / Webpack: 5 campaigns, 24
builds total, 20 debug-prerender; 0 failures and no affected local
routes
- Deterministic child-process lifecycle reproduction: `exit` captured
empty output; `close` captured the trailing diagnostic
- Post-fix focused test: 5/5 runs passed, covering 20/20 debug-prerender
cases
- Post-fix complete test: 3/3 runs passed, covering 24/24 cases (12
debug-prerender and 12 normal production)
- `pnpm build-all`
- Prettier and ESLint for `test/lib/next-modes/next-start.ts`
- `pnpm types`

<!-- NEXT_JS_LLM -->


<!-- fleet a8a423ef-2679-4cb0-ba51-92592630165e -->

Co-authored-by: vercel-fleet-prod[bot] <318278635+vercel-fleet-prod[bot]@users.noreply.github.com>
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
@sokra
sokra marked this pull request as draft August 26, 2026 10:37
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant