unstale

npm / vinext

vinext

What changed in vinext 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-01.

6 breaking2 security2 new APIs and options3 performance22 behavior and defaults1 tooling34 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

vinext 170 changes

Breaking changes 6

  • cookies().get({ name }) is accepted, and read-only cookie mutators throw when called.

    1.4.0release notes

  • The App no longer retains every route handler request on the Node server.

    1.4.0release notes

  • Pages rendered dynamically are neither rendered in an automatic prefetch nor reused from one.

    1.3.1release notes

  • Entries for a tag revalidated with a cacheLife profile are served stale until they expire.

    1.3.1release notes

  • Defaults NODE_ENV to production.

    1.3.1release notes

  • Defaults NODE_ENV to production when starting the production server.

    1.3.1release notes

Security 2

  • Client reference scripts receive the CSP nonce.

    1.3.1release notes

  • Parallel slots and intercepted routes render their own unauthorized boundaries.

    1.3.1release notes

New APIs and options 2

Performance 3

  • next/image shim dependencies are pre-bundled for the Pages Cloudflare Worker.

    1.4.0release notes

  • The page and _app chunks are preloaded in the initial HTML.

    1.3.1release notes

  • Pages that do not use next/navigation no longer load the App Router runtime.

    1.3.1release notes

Behavior and default changes 22

  • A layout's children are retained above their own BFCache boundaries.

    1.4.0release notes

  • The catalog loader runs on experimental.messages catalogs.

    1.4.0release notes

  • The fetch cache is bypassed in draft mode.

    1.4.0release notes

  • A full prefetch can be fulfilled from a recent navigation's visited response.

    1.4.0release notes

  • Pages applies next.config headers to res before Node API handlers run.

    1.4.0release notes

  • Data cache reads are skipped during on-demand revalidation.

    1.4.0release notes

  • Node streams passed to Pages API res.send are piped.

    1.4.0release notes

  • The incoming Request is kept when header filtering changes nothing.

    1.4.0release notes

  • A single Response Store static Pages entry can be shared across hosts.

    1.4.0release notes

  • Server Actions run with their page's implicit tags.

    1.4.0release notes

  • Server render errors are logged in production.

    1.4.0release notes

  • Unclaimed cache hits under cached navigations advertise staleTimes.static.

    1.4.0release notes

  • unstable_noStore() is a no-op under Cache Components.

    1.4.0release notes

  • Modules using use cache that are shipped inside node_modules are compiled.

    1.4.0release notes

  • Prefetch skips a URL that navigation would serve from its visited response.

    1.4.0release notes

  • A single Workers Cache entry can be shared across hosts.

    1.4.0release notes

  • Client components that await at their top level can be streamed.

    1.3.1release notes

  • An intercepted prefetch is classified by its intercepting page.

    1.3.1release notes

  • Plain links render on the server without client hooks.

    1.3.1release notes

  • A navigation no longer waits for its page's metadata after a prefetched shell is available.

    1.3.1release notes

  • Defaults NODE_ENV to production.

    1.3.1release notes

  • Defaults NODE_ENV to production.

    1.3.1release notes

Tooling 1

  • Shim paths resolve through Vite so development loads one instance.

    1.4.0release notes

Fixes and other changes 34

  • Cached functions exported by name keep their arity.

    1.4.0release notes

  • A page's resolved client stale time is stored instead of the pending marker.

    1.4.0release notes

  • The document is regenerated when a stale RSC request regenerates its page.

    1.4.0release notes

  • Init no longer writes native-module aliases to a missing empty-stub.js.

    1.4.0release notes

  • Copied history tree ids are scoped to their document.

    1.4.0release notes

  • App Router errors reach error.tsx instead of the loading component.

    1.4.0release notes

  • Another root layout's not-found is kept out of matched routes.

    1.4.0release notes

  • Title templates now match Next.js behavior.

    1.4.0release notes

  • A raw-body handler that destroys a stalled upload emits close.

    1.4.0release notes

  • A refreshed parallel slot keeps its identity so refresh does not remount it.

    1.4.0release notes

  • Concurrent refreshes are dropped when another write has already replaced the revision.

    1.4.0release notes

  • Visible links are prefetched again only after router.refresh() finishes.

    1.4.0release notes

  • Static prefetches are kept when a Server Action calls refresh().

    1.4.0release notes

  • The title template rule now matches Next.js.

    1.4.0release notes

  • The shim remains in use when next/image is user-aliased.

    1.4.0release notes

  • Client reference stylesheets and scripts use the configured crossOrigin; stylesheets are anonymous when it is unset.

    1.3.1release notes

  • A segment's error boundary resets when the pathname changes.

    1.3.1release notes

  • The legacy experimental.cacheComponents key is honored, including as an override during project detection.

    1.3.1release notes

  • A route keeps its own title when rendering throws forbidden().

    1.3.1release notes

  • Built-in forbidden and unauthorized pages are rendered.

    1.3.1release notes

  • Parallel slots and intercepted routes render their own forbidden boundaries.

    1.3.1release notes

  • Pages Router not-found pages retain middleware Cache-Control.

    1.3.1release notes

  • Formats are inferred for extensionless Google font URLs.

    1.3.1release notes

  • Queued prefetches are dropped when their Link unmounts or leaves the viewport.

    1.3.1release notes

  • Ancestor loading boundaries render once below nested layouts, and sibling intercepting layouts can render while a synchronous page suspends.

    1.3.1release notes

  • Prefetches without a loading boundary render only the route tree.

    1.3.1release notes

  • Parallel slots and layouts now handle not-found signals in their own route tree, including nested and intercepted routes.

    1.3.1release notes

  • A route keeps its own title when rendering throws notFound().

    1.3.1release notes

  • Accepts a single video or audio entry and renders emails, phone numbers, fax numbers, and alternate locales.

    1.3.1release notes

  • Config redirect Locations are percent-encoded like Next.js, and redirect statusCode is honored.

    1.3.1release notes

  • Contextual RSC requests reached through a rewrite are canonicalized.

    1.3.1release notes

  • Content remains on screen during response recovery for search transitions.

    1.3.1release notes

  • A route keeps its own title when rendering throws unauthorized().

    1.3.1release notes

  • Reads the browser query after hydration.

    1.3.1release notes