Skip to content

[pull] canary from vercel:canary#322

Merged
pull[bot] merged 19 commits into
code:canaryfrom
vercel:canary
Aug 28, 2025
Merged

[pull] canary from vercel:canary#322
pull[bot] merged 19 commits into
code:canaryfrom
vercel:canary

Conversation

@pull

@pull pull Bot commented Aug 28, 2025

Copy link
Copy Markdown

See Commits and Changes for more details.


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

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

sokra and others added 19 commits August 28, 2025 09:52
### What?

Use associated types to avoid Box and Any.

* avoids any casting
* avoid extra vec collecting
* avoid cloning lists for parallelization
Skip these effects when in a tracing-only asset context, since we never codegen these modules and these effects cannot add any references (which is the only thing we are interested in this case):

- `Effect::FreeVar`, `Effect::TypeOf`, `Effect::ImportMeta`, `Effect::Unreachable`, `Effect::Member`
### What?

Fixes persistent caching with next build.

Need to investigate how this regression passes the test cases...
## What?

As far as I can tell there's no usage of this variable. No TS errors and
all tests pass.
The server-reference-manifest.json contains the chunk item id of the action loader. The loader itself doesn't "register" itself in any way. So no need to execute it eagerly.
### What?

Background tasks will only run when idle, but persisting should also happen when active.
Caches with staleness/expiration below certain thresholds are not
included in static prerenders and are treated as dynamic. However, the
logic for propagating life/tags did not factor this in, meaning that a
prerender could get `cacheLife("seconds")`, making it expire (both on
the server and in the client router cache) much earlier than necessary.
This PR fixes that.

Closes NAR-271

### Implementation notes

The solution relies on the fact that in a Cache Components prerender,
we'll first fill the caches in the prospective render, and then read
them again in the final prerender. Previously, we'd propagate cache
life/tags in the prospective render, when the cache was filled, but this
didn't factor in the fact that the final render might decide to omit the
cache, leading to the problem described earlier. After this change,
we'll be relying on the fact that the entry will be read in the final
prerender, at which point we decide if it should be included or not, and
then propagate cache life/tags if it is.

Additionally, we filter the omitted cache entries from the resume data
cache (RDC). Otherwise they would be available during the resume, which
they should not be.

To be honest, this feels a bit brittle, and perhaps we should take a
look at how we're handling this and make it cleaner, but it should work
for now.

---------

Co-authored-by: Hendrik Liebau <mail@hendrik-liebau.de>
Added `unoptimized` and `decoding` props to the props table (the table
at the top of the doc page).

I was looking for the `unoptimized` prop and thought it wasn't in this
page because I could not find it at the props table. I think it's better
included there since it's not deprecated. The same goes for `decoding`.

Added them with the same syntax as the rest values in the table. 

Thanks.

Co-authored-by: Joseph <joseph.chamochumbi@vercel.com>
…3166)

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->

Updates the middleware version history marking node as stable as
[announced in version
15.5](https://nextjs.org/blog/next-15-5#nodejs-middleware-stable)

Co-authored-by: Joseph <joseph.chamochumbi@vercel.com>
A few more improvements to typed routes and friends

- showing usage of router methods from `next/navigation` 
- using Route in other data structures
Adding tsconfig.json to e2e test required `.gitignore` with
`!tsconfig.json`. It also lost the test utils aliases like `e2e-utils`.
This PR allows adding `tsconfig.test.json` to be used on test, so it
doesn't affect the root tsconfig.json nor manual testing.
@pull pull Bot locked and limited conversation to collaborators Aug 28, 2025
@pull pull Bot added the ⤵️ pull label Aug 28, 2025
@pull pull Bot merged commit 80563bf into code:canary Aug 28, 2025
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.