Skip to content

[pull] canary from vercel:canary#798

Merged
pull[bot] merged 6 commits intocode:canaryfrom
vercel:canary
Feb 17, 2026
Merged

[pull] canary from vercel:canary#798
pull[bot] merged 6 commits intocode:canaryfrom
vercel:canary

Conversation

@pull
Copy link

@pull pull bot commented Feb 17, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

timneutkens and others added 6 commits February 17, 2026 16:00
## What

Found a bug. When a manifest is expectedly missing (`handleMissing`
option) it would not hit the caching for manifest loading. Causing a
readFileSync that fails every time it's called and doesn't get cached.

## How

This PR resolves the issue by moving the handleMissing to the function
that handles the manifest caching. Making sure we cache the result even
when the file is not available.
## What

Follow-up to #89788, addressing review feedback from @lukesandberg.

## Why

Several small issues were flagged during review that didn't block merge
but should be cleaned up.

## How

- **Remove `is_pure_constant`**: Instead of checking whether a format
string contains braces, unescape `{{`/`}}` at macro expansion time so
`rcstr!` works for all constant format strings (no runtime `format!`
needed)
- **`require_context.rs`**: Replace awkward inline `if` expression in
`#[value_to_string(...)]` attribute with a `Display` impl
- **`webpack/mod.rs`**: Make `WebpackChunkAssetReference::chunk_id()`
non-pub since it's only used internally
This is aiming to fix sporadic failures from jest transforms which is
most likely caused by the change to output to custom jest-cache folder
and wipe that between runs. Instead this disables the cache via
`--no-cache` flag and also fixes WASM bindings issue that started due to
cache not being available.

x-ref:
https://github.com/vercel/next.js/actions/runs/22109996356/job/63903450669?pr=90096#step:35:493
x-ref:
https://github.com/vercel/next.js/actions/runs/22109996356/job/63903820197?pr=90096#step:35:18167
## Summary
- fix flaky `pnpm install` failures in the stats action caused by
cross-device hardlinking (`ERR_PNPM_EXDEV`)
- force `pnpm` to use `--package-import-method=copy` for installs run in
temp repos
- apply the same setting in both install paths used by the stats
workflow

x-ref:
https://github.com/vercel/next.js/actions/runs/22110883672/job/63906643545
…89905)

## For Maintainers

### What?

Replace `Object.keys().forEach` with a `for...in` loop in the
`createFlightRouterStateFromLoaderTreeImpl` function.

### Why?

`for...in` avoids the intermediate array allocation from
`Object.keys()`, which becomes increasingly impactful as key count
grows.

| Method | 1 key | 2 keys | 5 keys |
|---|---|---|---|
| `for...in` | **4.5ms** | **6.1ms** | **10.3ms** |
| `for (i) + Object.keys()` | 7.1ms (1.6x) | 17.1ms (2.8x) | 40.1ms
(3.9x) |
| `for...of Object.keys()` | 7.5ms (1.7x) | 17.0ms (2.8x) | 41.3ms
(4.0x) |
| `Object.keys().forEach()` | 10.7ms (2.4x) | 20.0ms (3.3x) | 42.0ms
(4.1x) |

While the impact is minimal this code is in the hot path for rendering
every request so it's worth optimizing. Especially as the payload will
have a lot of single-key cases.

### How?

Changed the `Object.keys(parallelRoutes).forEach()` pattern to a direct
`for (const parallelRouteKey in parallelRoutes)` loop while maintaining
the same functionality.
@pull pull bot locked and limited conversation to collaborators Feb 17, 2026
@pull pull bot added the ⤵️ pull label Feb 17, 2026
@pull pull bot merged commit 32b1479 into code:canary Feb 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants