| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-03 | 112.0 kB | |
| v16.3.0 source code.tar.gz | 2026-08-03 | 51.8 MB | |
| v16.3.0 source code.zip | 2026-08-03 | 67.5 MB | |
| Totals: 3 Items | 119.4 MB | 41 | |
Core Changes
- Update vendored lodash to 4.17.23 to fix CVE-2025-13465: [#91558]
- Fix invalid HTML response for route-level RSC requests in deployment adapter: [#91541]
- Normalize encoded dynamic placeholders in app routes: [#91603]
- Fix(pages-router): restore Content-Length and ETag for /_next/data/ JSON responses: [#90304]
- Update tokio from 1.43.0 to 1.47.3: [#90945]
- [turbopack] Simplify snapshotting logic: [#91178]
- Turbopack: enable server HMR for app route handlers: [#91466]
- turbo-tasks-backend: batch find_and_schedule_dirty using for_each_task_meta: [#91497]
- [turbopack] Use bail! instead of panic! for duplicate module ident error: [#91636]
- Skip loadBindings() Lightning CSS check during next start: [#91538]
- turbo-tasks-backend: batch schedule dirty tasks in aggregation_update: [#91461]
- Turbopack: Add importModule() support to webpack loaders: [#89630]
- turbo-persistence: fix mmap page alignment and improve error context in MetaFile::open_internal: [#91640]
- turbopack-css: demote recoverable CSS parse warnings to Warning severity: [#91524]
- feat(node-streams): add config flag, define-env, and env precedence test: [#90427]
- Rename /_next/webpack-hmr to /_next/hmr: [#91415]
- Add per-slot error attribution for instant validation using slot markers and config depth preference: [#91610]
- Handle encoded params further: [#91627]
- [turbopack] Respect
{eval:true}in worker_threads constructors: [#91666] - Fix missing route in otel spans without base-server: [#91665]
- [turbopack] Optimize compaction cpu usage: [#91468]
- Fix layout segment optimization: move app-page imports to server-utility transition: [#91701]
- Fix server actions in standalone mode with
cacheComponents: [#91711] - turbo-persistence: remove Unmergeable mmap advice: [#91713]
- turbopack: move "compact database" tracing span to backend layer: [#91693]
- Turbopack: lazy require metadata and handle TLA: [#91705]
- Fix adapter outputs for dynamic metadata routes: [#91680]
- Turbopack: fix webpack loader runner layer: [#91727]
- [turbopack] Remove incorrect debug_assert in try_read_task_cell: [#91699]
- Add module count field to module graph tracing spans: [#91697]
- turbopack-cli: add --persistent-caching flag for filesystem-backed cache: [#91657]
- Turbopack: pull in updated vercel/nft tests: [#91651]
- [turbopack] Improve regressed build speed on cross-compiled MUSL: [#91477]
- [Segment Bundling] [Scaffolding] Ensure inlining hint correctness: [#91320]
- [Segment Bundling] [Scaffolding] Track which segments can be omitted from prefetch: [#91438]
- Avoid deprecated TS node10 moduleResolution defaults: [#91847]
- [turbopack] Rebuild the docker build scripts: [#91799]
- Fix TS6 baseUrl deprecation for extended tsconfig: [#91855]
- Add
next internal post-buildCLI command for Turbopack database compaction: [#91336] - Turbopack: Define
Effectas a trait instead of a closure: [#89080] - Turbopack: Implement TraceRawVcs and NonLocalValue correctly for Effects: [#89133]
- turbo-tasks-backend: improve print_cache_item_size instrumentation: [#91742]
- Turbopack: switch from base40 to base38 hash encoding (remove ~ and . from charset): [#91832]
- Use charCodeAt for normalizePathTrailingSlash: [#91380]
- Turbopack: Only patch lockfile when bindings fails to load: [#91379]
- [create-next-app] Skip interactive prompts when CLI flags are provided: [#91840]
- [devtools] Make instant navs panel draggable: [#91914]
- [Segment Bundling] Bundle static prefetches based on size: [#91439]
- turbo-tasks-backend: assert non-transient task_ids in track_modification: [#91924]
- fix(turbopack): preserve resolveExtensions priority in read_matches fast path: [#91856]
- turbopack: Remove Vc::resolve(), migrate all callsites to Vc::to_resolved(): [#91725]
- turbo-tasks: add hashed cell mode for hash-based change detection without cell data: [#91576]
- [cna] Upgrade to Biome 2.4 with Tailwind support: [#86065]
- [devtools] Show
AggregateError.errorsin the error overlay: [#91835] - Narrow the opengraph-image function return type: [#91893]
- [experiment] Add useOffline flag with offline retry behavior: [#92011]
- adapters: remove unused suffix code: [#91997]
- [experiment] Add useOffline hook to expose offline state to userland: [#92012]
- [turbopack] Don't use turborepo to build the docker image: [#92029]
- Use RcStr directly in napi(object) structs instead of converting to String: [#92014]
- Rename SingleModuleReference::asset to SingleModuleReference::module: [#92028]
- Revert "turbo-tasks: add hashed cell mode for hash-based change detection without cell data": [#92103]
- [ftl] Include cause of route types: [#92056]
- fix: handle file:// URLs from import.meta.resolve in cache handler path (fixes [#73796]): [#90370]
- Turbopack: exclude metadata routes from server HMR: [#92034]
- next.config.js: Accept an option for serverFastRefresh: [#91968]
- TURBOPACK: support parse windows absolute path with single slash: [#92076]
- Enable
varyParamstracking for Cached Navigations: [#92113] - telemetry: set turboFlag correctly: [#92149]
- Instant Validation: Allow unconfigured slots to render optionally: [#92126]
- Turbopack: statically evaluate path.sep: [#92150]
- Turbopack: use same hash for immutable-static-hashes.json: [#92157]
- [turbopack] replace regex with indexof: [#92023]
- Turbopack: createRequire(new URL("...", import.meta.url)): [#92153]
- Add PPR evals and fix env loading for agent-eval 0.9.5: [#92063]
- Turbopack: support targeting even older browsers: [#91563]
- Add rust-fingerprint task and SCCACHE passthrough env: [#92167]
- Improve error message for deprecated
experimental.dynamicIOconfig: [#92081] - [turbopack] Fix CSS HMR on Safari: [#92123]
- simplify session dependent tasks and add TTL support: [#91729]
- disable bmi2 in qfilter: [#92177]
- Improve revalidateTag JSDoc to include guidance about required second parameter: [#92176]
- fix: pin 19 actions to commit SHA, extract 7 expressions to env vars: [#92016]
- partial fallbacks: adapter support for intermediate shells: [#91902]
- Turbopack: trace fs.readdir calls: [#92148]
- feat: add NEXT_HASH_SALT env var for content-hash filename salting: [#91871]
- Fix DashMap read-write self-deadlock in task_cache causing hangs: [#92210]
- [turbopack] use a single query parameter for cache busting: [#92214]
- Generate a CLI warning if using Rosetta 2 on Apple Silicon: [#92220]
- remove the loop from StaticSortedFile::lookup: [#91688]
- Add telemetry for adapterPath config usage: [#92228]
- Node.js streams: First pass: [#90500]
- fix: preserve HTTP access fallbacks during prerender recovery: [#92231]
- Remove unnecessary ALS re-exports from
entry-base.ts: [#91527] - Allow multi-level .localhost subdomains in dev origin check: [#92262]
- turbo-tasks-backend: stability fixes for task cancellation and error handling: [#92254]
- Add MCP
get_compilation_issuestool and NAPI method: [#92062] - Add view transitions eval (agent-043): [#92260]
- [turbopack] optimize RcStr parsing: [#91773]
- Ensure app-page reports stale ISR revalidation errors via onRequestError: [#92282]
- Move streamToUint8Array back to node-web-streams-helper.ts: [#92263]
- Revert "simplify session dependent tasks and add TTL support (#91729)": [#92320]
- fix: add @deprecated annotation to experimental.useCache: [#92316]
- Improve existing dev server error message to suggest using it: [#92317]
- Restart the
next devserver if.nextis deleted: [#92135] - Update Rust toolchain to nightly-2026-04-02: [#92288]
- Turbopack: Remove FileSystemPath::value_to_string in favor of ValueToStringRef::to_string_ref: [#92284]
- [turbopack] use zero copy qfilter deserialization: [#90574]
- feat: add experimental.swcEnvOptions for SWC preset-env configuration: [#92272]
- Turbopack: Dedupe our two filesystempath extension/extension_ref functions: [#92048]
- turbo-tasks: replace async resolve fns with custom Future types (ResolveRawVcFuture, ResolveVcFuture, ToResolvedVcFuture): [#91554]
- next-core: deduplicate output assets and detect content conflicts on emit: [#92292]
- Handle edge runtime in places that import node:stream: [#92354]
- Fix fallback route params case in app-page handler: [#91737]
- use sorted inserts to improve builder performance: [#91553]
- Allow for parsing app route strings with and without slot names.: [#92327]
- fix(server-hmr): metadata routes overwrite page runtime HMR handler: [#92273]
- turbo-persistence: optimize file syncing: [#90542]
- Turbopack: Remove
turbo_tasks::apply_effects, useEffects::applyinstead: [#91858] - Turbopack: Add a check for node version before allowing workerThreads: [#91614]
- turbo-persistence: skip BlockCache for uncompressed (mmap-backed) blocks: [#92390]
- Include more context in macOS Rosetta 2 warning message: [#92436]
- change the process name of builds: [#92411]
- turbo-persistence: pin referenced BlockCache entries to prevent eviction: [#92361]
- Fix styled-jsx race condition: styles lost due to concurrent rendering: [#92459]
- turbo-tasks: fix hashed cell mode crash on task error (re-land [#91576]): [#92108]
- Fix sst inspect tool to respect
CURRENTand stale sst files: [#92414] - Optimize how we track data for persistence: [#89370]
- [turbopack] add family name to many spans: [#92415]
- Route Handlers: Fix devRequestTimingInternalsEnd and Turbopack server HMR: [#92271]
- next-routing: middleware matching and app request URL normalization: [#91859]
- turbo-persistence: Use AtomicBool for is_empty() to avoid lock contention: [#92481]
- fix: mention params and searchParams in blocking-route error messages: [#92360]
- CPU prof: Write profiles to .next-profiles instead of .next/cpu-profiles: [#92078]
- Turbopack: Write trace file to .next-profiles: [#92189]
- feat: generate root params types: [#91019]
- fix: resolve function configs in unstable_getResponseFromNextConfig: [#92501]
- Node.js streams: Fork points: [#92252]
- Turbopack: Add --internal-trace cli flag: [#92190]
- Fix
minimumReleaseAgeExcludefor React and friends: [#92535] - Add experimental unstable_io() API behind experimental.unstableIO flag: [#92521]
- Update React from
74568e86-20260328to404b38c7-20260408: [#92536] - Turbopack: switch from immutable token to path prefix: [#92164]
- [build info]: distinguish between PPR and fully static routes in gSP: [#92518]
- [build info]: omit symbol from top level gSP route: [#92525]
- turbo-tasks-backend: prevent duplicate task restores with restoring bits: [#92389]
- Add next internal upload-trace: [#92191]
- Request logging: Fix generate-params time being included in next.js time: [#91386]
- fix: scope "Pages Router only" comment to default export in next/error: [#92566]
- Turbopack Build: Remove dev fouc from production bundle: [#80935]
- Turbopack: Improve unable to resolve next error: [#91394]
- fix(hmr): reconnect WebSocket after sleep/wake: [#91416]
- Handle
targetoption in React Compiler for Pages + React 18: [#91500] - Replace wasmer with wasmtime for SWC plugin WASM engine: [#91533]
- turbopack: fix incremental build when module factories are restored from persistent cache: [#92569]
- [turbopack] Rust dependency caching via sccache: [#91873]
- trace: detect rage restarts and deleted .next dirs: [#92489]
- [turbopack] fix a debug_assert failure: [#92581]
- Don't swallow strings thrown in Server Components: [#92592]
- Fix NextFontIssue IssueStage: CodeGen → Resolve: [#92588]
- Node.js streams: Add forkpoint for CacheComponents: [#92444]
- Resolve
compilerOptions.pathsin tsconfigs withoutcompilerOptions.baseUrl: [#92277] - Turbopack: extract inline base64 decode helper to shared
@turbopack/base64module: [#92549] - Add codemod command to middleware deprecation warning: [#92532]
- turbopack: move CSS module composes validation from code generation to resolving: [#92582]
- Drop turbo_tasks::function from ValueDebug trait items: [#92593]
- [partial fallbacks]: enable by default: [#92627]
- Turbopack: fix filesystem watcher config not applying follow_symlinks(false): [#92631]
- Turbopack: cut number of client references in half: [#92607]
- Remove a ton of turbo task functions from Issue trait items: [#92623]
- feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution: [#91338]
- feat(turbopack): change DiskFileSystem root to Vc<RcStr> for portable cache: [#92603]
- Turbopack: remove unused ChunkableModules struct: [#92606]
- Fix segment explorer file pill accessibility: [#92608]
- Disable sccache temporarily: [#92657]
- Delete some dead turbo task functions: [#92596]
- Node.js streams: Add forkpoint for error recovery: [#92457]
- turbo-tasks: Drop output_dependent on immutable task completion: [#92683]
- Turbopack: properly remove unused TS enums with scope hoisting: [#88205]
- fix(server-actions): skip type-only ExportNamed in pre-pass to prevent phantom registerServerReference: [#92494]
- Turbopack: Add import.meta.glob support (Vite compat): [#92640]
- turbo-tasks: Fix recomputation loop by allowing cell cleanup on error during recomputation: [#92725]
- TURBOPACK: support crsossOriginLoading: [#92070]
- Compiler: Support boolean and number primtives in next.config defines: [#92731]
- Fix prefetch hints not being loaded during revalidation: [#92625]
- Exclude trace files from directory deletion in builds: [#92486]
- Switch segment prefetch cache miss response from 204 to 404: [#92751]
- Ensure x-nextjs-data header is only set during resolve: [#92752]
- feat(trace-server): add query CLI and MCP API to turbopack-trace-server: [#92030]
- Improve error stacks for dynamic API usage in
"use cache": [#92736] - Node.js streams: Add forkpoint for continueDynamicHTMLResume: [#92471]
- Node.js streams: Add forkpoint for generateDynamicFlightRenderResult: [#92474]
- Node.js streams: Add forkpoint for generateStagedDynamicFlightRenderResult: [#92509]
- Add unstable_prefetch route segment config and decouple runtime prefetching from unstable_instant: [#92754]
- feat(turbo-tasks-backend): gate prepare_tasks_with_callback trace span behind feature flag: [#92779]
- Update next versions of internal apps: [#92666]
- turbo-persistence: stop background persisting after unrecoverable failure: [#92106]
- Stop using deprecated
downlevelIteration: [#92652] - Disable build caches for production/staging/force-preview deploys: [#92792]
- Fix turbo cache flag: use --force: [#92796]
- Fix devlow-bench: tsconfig rootDir mismatch with package.json bin: [#92800]
- Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router): [#92580]
- Enable wasm plugins on windows arm: [#92544]
- prefetchInlining: fix build crash on notFound() pages: [#92806]
- turbopack: gate ValueDebugFormat and ValueDebug behind debug_assertions: [#92628]
- Add TurboMalloc::thread_park() to flush and collect on thread park: [#92804]
- Stop using deprecated
baseUrl: [#92653] - Turbopack: Use FrozenMap for module export information: [#92802]
- Turbopack: remove webpack chunk detection: [#92773]
- Turbopack: refactor ESM codegen generation: [#92777]
- Fix monorepo
@next/swcbinary postinstall: [#92813] - webpack: fix swcPlugins with relative paths: [#92770]
- Turbopack: shorter error for ChunkGroupInfo::get_index_of: [#92814]
- Turbopack: properly set NODE_ENV for SWC plugins: [#92579]
- Node.js streams: Add forkpoint for logMessagesAndSendErrorsToBrowser: [#92510]
- Node.js streams: Add forkpoint for createCombinedPayloadStream: [#92511]
- Node.js streams: Add forkpoint for renderWithRestartOnCacheMissInValidation: [#92512]
- Node.js streams: Add forkpoint for prerenderToStream: [#92513]
- Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index: [#92828]
- Turbopack: refactor export analysis: [#92781]
- fix(trace-server): default MCP port to --port + 1 to avoid conflicts: [#92831]
- Revert "Node.js streams: Add forkpoint for prerenderToStream": [#92845]
- Turbopack: remove StarImportAnalyzer: [#92830]
- Turbopack: analyzer improvement followups: [#92834]
- Turbopack: move assignment_scopes computation into ImportMap: [#92835]
- Warn for non-deterministic
"use cache"args during final prerender: [#92820] - Turbopack: Use lld again on ARM64 glibc Linux: [#92860]
- turbopack: cache TransformPlugin in narrow-scoped turbo-tasks functions: [#92842]
- Allow overriding outputHashSalt in modifyConfig: [#92856]
- Support type cast expressions in page static info extractor: [#92837]
- turbo-tasks: add info_span for blocking waits during task restore: [#92878]
- Fix dev mode hydration failure when page is served from HTTP cache: [#92892]
- [devtools] Preserve full code frames in browser overlay: [#92621]
- Enable prefetchInlining by default: [#92863]
- Turbopack: Use an async lock in the filesystem watcher: [#92906]
- Replace deprecated
moduleResolution: "node": [#92654] - turbo-tasks: Reduce allocations on cache hits: [#92756]
- fix(next/image): ensure
images.maximumResponseBodyapplies to local images too: [#92920] - rename MagicAny: [#92918]
- turbopack: reduce EffectStateStorage memory by storing u128 content hashes: [#92902]
- turbo-trace-server: reduce allocation overhead when loading large trace files: [#92896]
- Turbopack: optimize SelfTimeTree performance, memory usage, and fix range query boundaries: [#92931]
- remove flag guarding
unstable_io: [#92923] - Support more prefetch configuration options: [#92859]
- Improve deduping of concurrent
'use cache'invocations: [#91830] - [partial fallbacks]: include prefetch requests in shell upgrade handling: [#92894]
- Redesign blocking route dev overlay and build errors: [#92638]
- Switch to cargo-binstall and pre-built sccache binaries: [#92911]
- Remove prefetch from instant config: [#92761]
- Improve "make root node" trace attributes: [#92941]
- Use existing commitId for tarball URL in stats action: [#92899]
- Use OIDC for CodSpeed: [#93059]
- Restore dev-mode cache-fill timeout for
'use cache': [#93055] - Make
'use cache'fill timeout configurable: [#93070] - Strengthen _rsc cache-busting param: [#92755]
- turbo-tasks: drop once_cell, const-init TRAIT_METHOD, ctor WORKER_TASKS: [#93090]
- Patch setHeader for direct route handlers: [#93101]
- [turbopack] Persistent last_successful_parse: [#92852]
- [turbopack] Unify Cell Storage: [#92974]
- fix(use-cache): remove awaiting revalidation: [#92636]
- [turbopack] Fix max_level_hint to return most verbose per-target level: [#93128]
- feat(turbopack): add NEXT_TURBOPACK_TRACING_PATH to control trace output location: [#93084]
- Turbopack: move import_usage computation into ImportMap: [#92891]
- Turbopack: unify ModuleGraph constructors: [#93203]
- Turbopack: move get_inner_asset into ecmascript module: [#93191]
- [turbopack] drop TransientState: [#92853]
- instant(): Block out-of-band client fetches: [#93099]
- [next/image] Stop using deprecated
url.parse: [#93208] - Suspend dynamic route params in dev instant shell: [#93108]
- Recognize
super(...)messages in Error subclass constructors: [#93182] - [turbopack-trace-server] Performance improvements for span event handling: [#93179]
- Preserve
__NEXT_ERROR_CODEacross the/_errorpage handoff: [#93183] - Reduce allocations in the next_debug_instant_stack transform: [#93222]
- Apply sourcemaps by default during prerender in
next build: [#93280] - Turbopack: compute exports without full analysis: [#92823]
- Turbopack: cheaper check in map_next_dynamic: [#93283]
- Fix route handler SWR blocking on Node runtime: [#93189]
- [turbo-tasks-backend] Single-item optimization for lost follower operations: [#93200]
- Fix
export * as X from './self'in scope-hoisted modules: [#93192] - Turbopack: only compute module ids for included modules: [#93276]
- Forward invalid dynamic usage errors on client-side navigations: [#93184]
- HMR: debounce status indicator transitions to prevent flicker during bursts of changes: [#93229]
- Turbopack: iter_reachable_modules: [#93315]
- Turbopack: add failing test for cross-module side-effect inference: [#93323]
- Turbopack: also add edge count to trace: [#93314]
- Turbopack: pull in updated vercel/nft tests: [#93321]
- [turbopack-trace-server] optimize loading: [#93264]
- turbo-tasks: precompute trait-impl vtables at compile time: [#93092]
- Honor the route-level
expirevalue with blocking revalidation: [#93211] - Turbopack: add
experimental.turbopackWorkerAssetPrefixto keep Workers same-origin whenassetPrefixis a CDN: [#93271] - Report OS memory pressure in TurboMalloc and trace samples: [#93333]
- Speed up native postinstall script: [#93312]
- Turbopack: remove unused module references: [#93335]
- Turbopack: remove ModuleResolveResultItem::OutputAsset: [#93349]
- Turbopack: delete unused turbo-static crate: [#93324]
- fix a snapshot encoding error that could happen under concurrent mutation and snapshotting: [#92658]
- Enable server HMR for metadata routes (manifest.ts, robots.ts, etc.): [#93110]
- [next/image] Only fire
onErroronce: [#93209] - fix: handling of falsey values in error boundaries: [#93134]
- Update upload trace url: [#93350]
- enable validateRSCRequestHeaders by default: [#93367]
- Deprecate edge runtime: [#93369]
- Update 05-server-and-client-components.mdx: [#93374]
- Only log partytown setup error once: [#93378]
- Remove leftover Turbopack manifests: [#93398]
- trace-server: shrink_to_fit LazySortedVec after sorting: [#93361]
- Revert "Revert "Node.js streams: Add forkpoint for prerenderToStream"": [#93376]
- feat(metadata): support non-standard directives in robots.ts via
other: [#93206] - [turbo-trace-server] optimize loading even more: [#93332]
- Fix streaming in draft mode for cache components: [#93417]
- Drop once_cell from all direct crate deps: [#93095]
- Replace Lazy<FxHashMap> static lookups with phf::Map: [#93096]
- Include deployment id in
cacheHandlerskeys: [#93453] - fix(next/image): Improve error message for private IP (SSRF) rejections: [#91686]
- turbo-tasks-backend: fix snapshot coordination races + extract SnapshotCoordinator: [#93416]
- Fix dev mode reload and error on back navigation between Next.js pages: [#93486]
- Fix double-encoding of URL pathname parts in client param parsing: [#93491]
- Don't suppress usage of deprecated TypeScript
compilerOptions: [#93377] - Turbopack: fix import_usage for functions behind member expressions: [#93504]
- [turbopack] shrink the size of futures: [#93474]
- [turbopack] Simplify local task tracking: [#93478]
- [turbopack] correct a fencepost error in our inline string descision: [#93524]
- Turbopack: make rcstr! macro expansion const: [#93516]
- Turbopack: lazy aggregation optimize via persistent pending flag: [#93454]
- Detect
'use cache'module-scope deadlocks early in dev: [#93500] - Turbopack: really fix MAX_INLINE_LEN: [#93531]
- Bundle the
'use cache'deadlock probe worker: [#93538] - Support configuring a default instant validation level : [#93301]
- Turbopack: simplify asset ident constructors: [#93213]
- Disable instant validations in draft mode: [#93472]
- Drop
ReferencedAsset::from_resolve_resultas a turbotask: [#93297] - Turbopack: Cache effect errors, replace the write_lock Mutex with a lazily created Notify instance: [#93476]
- Order loader tree imports by tree depth: [#93537]
- Turbopack: more strict vergen setup: [#93541]
- [devtools] Force ANSI colors on overlay code frames regardless of TTY: [#93550]
- turbo-rcstr: replace
rcstr!macro_rules with proc macro: [#93551] - Turbopack: Fix middleware matcher suffix: [#93590]
- Turbopack: Match proxy matchers with webpack implementation: [#93594]
- Track
searchParamsaccess through a Proxy to catch missing-key reads: [#93549] - Turbopack: Change DynEffect::dyn_value to DynEffect::value_hash, a simple u128: [#93552]
- Cherry-pick ghsa commits to canary: [#93614]
- Hold
cacheSignalacrossunstable_cacheforeground revalidation: [#93617] - Encode non-ASCII characters in cache tags at construction: [#93601]
- Stabilize
unstable_io: [#93621] - Use Next.js version as Turbopack persistent cache versioning key: [#93605]
- Trace-server: Fix bottom up, and reduce allocations in turbopack-trace-server bottom-up grouping: [#93460]
- feat(turbopack): add chunkLoadingGlobal config option: [#93488]
- turbopack: reschedule stale tasks with correct invalidation priority: [#92897]
- fix(devtools): render nested error messages with HotlinkedText: [#93620]
- Fix: Improved rewrite detection during optimistic routing: [#93619]
- Fix "type: module" in project dir when using standalone or adapters: [#93612]
- Instant Insights: favor reported errors over missing slots: [#93709]
- Remove ineffective turbo-tasks: [#91341]
- Remove redundant instant navigation prefetch header: [#93713]
- Instant Insights: Favor reporting errors from all potential navigations over reporting a failed attempt to validate when a slot is missing: [#93714]
- Proof of concept: task eviction after snapshot for turbo-tasks-backend: [#91790]
- [turbopack] fix feature usage telemetry: [#93100]
- Turbopack: don't generate next-server.js.nft.json with adapters: [#93684]
- Add an info panel for the existing "Cache disabled" indicator: [#93756]
- Extend instant error overlay to metadata, viewport, and sync IO errors: [#93287]
- Turbopack: expose hashes of source files to adapters: [#93539]
- bfcacheId: Opt out of state preservation: [#93633]
- Honor Suspense-above-body opt-in for dynamic
generateViewport: [#93759] - Turbopack: fix lock-order inversion between Storage::map and Storage::snapshots: [#93788]
- [turbopack] Enforce
rootattribute for strongly consistent reads and collectibles: [#93114] - Add
next internal static-routes-infoCLI command: [#93399] - Craigandrews/ensure isr lru is written if requests collapsed: [#93766]
- Fix Turbopack worker_threads URL resolution: [#93432]
- Patch
playwright-coreto resolve_finishedPromiseonrequestFailed: [#93802] - Fix catch-all
router.querycorruption withbasePath+rewrites: [#93294] - fix: GNU xargs warns about incompatible --replace/--max-args: [#93821]
- fix: renumber non-sequential errors in errors.json: [#93824]
- simplify session dependent tasks (#91729): [#93227]
- Surface invalid dynamic usage errors via Flight in dev: [#93706]
- Show inner
"use cache"as cause of nested-dynamic cache error: [#93707] - fetch: respect HTTP Cache-Control headers with TTL-based invalidation (#91729): [#93228]
- [CC] fix: cachedNavigations missing asyncApiPromises in resumes: [#93827]
- Fix server action forwarding loop with middleware rewrites: [#93792]
- Instant Insights: When unable to complete validation provide a filename for the unvalidated boundary: [#93770]
- Fix
Date.now()cause shadowing in sync IO error overlay: [#93857] - Instant Insights: only report non-validatable if dev render is error free: [#93858]
- Remove partialFallbacks config flag: [#93859]
- Fix warning in new apps caused by incorrect image dimensions: [#93826]
- Trace middleware/proxy source files in webpack NFT pipeline: [#93871]
- Redesign dev overlay: cleaner shell + instant fix-card guidance: [#93755]
- turbo-tasks: prioritize recomputed tasks with Recomputation priority: [#93876]
- [Turbopack] Add graph-based CSS chunking algorithm behind experimental.cssChunking: "graph": [#93606]
- turbopack: emit assets before duplicate check in emit_assets: [#93875]
- Pass projectDir to adapter modifyConfig: [#93916]
- Distinguish in-navigation errors in the instant error overlay: [#93843]
- Eval next.config export functions in the try catch: [#93884]
- Rename TaskExecutionReason::Initial to Root: [#93922]
- Use node streams for server inserted HTML: [#93934]
- Add nextConfig.instrumentationClientInject: [#93785]
- Remove vercel approvers: [#93921]
- [otel] honor traceparent for verbose mode spans: [#93874]
- Fix cross-param leak with
prefetch={true}andcachedNavigations: [#93940] - Enable rootParams by default: [#93863]
- devlow: add run sampling snapshots and comparison reports: [#93833]
- Allow inspecting prerender worker again: [#93947]
- make rcstrs on the heap/static slightly smaller: [#93805]
- Add MCP
compile_routetool: [#93337] - [turbopack-trace-server] Add memory samples to the mcp tool results: [#93338]
- Stop pinning compiled chunk source on
EcmascriptBuildNodeChunkVersion. : [#93807] - [turbopack] Add trace metadata about the persist size: [#93339]
- Turbopack: fix subpath imports pointing to external packages: [#93308]
- Turbopack: fix error reporting with crashing webpack loaders: [#93926]
- Polish instant fix cards and validation messages: [#93894]
- Add deployable tarballs to pack-next: [#93963]
- fix(devtools): detect VS Code renamed macOS binary in launch-editor: [#93971]
- turbo-tasks: task-storage memory wins: [#93720]
- Turbopack: respect the module-sync export condition: [#93970]
- devlow-bench: percentile-based comparison and run retries: [#93950]
- Prerender HTTP access fallbacks with Cache Components semantics: [#93988]
- Add experimental.appShells feature flag: [#93997]
- Make
--debug-build-pathswork withsrc/directory projects: [#94016] - Revert "Prerender HTTP access fallbacks with Cache Components semantics": [#94018]
- Respond to App Shell prefetches on the server: [#93998]
- [turbopack] Disable ctor under RA: [#94022]
- Turbopack: don't crash the dev server when node_modules/next is briefly unresolvable: [#93877]
- Include PPR routes in dynamicRoutes regardless of revalidate time: [#94025]
- Enable experimental.varyParams by default: [#94010]
- Enable experimental.optimisticRouting by default: [#94011]
- Enable experimental.cachedNavigations by default with cacheComponents: [#94012]
- Revert "Include PPR routes in dynamicRoutes regardless of revalidate time": [#94032]
- Prerender static metadata under dynamic segments to canonical pathname: [#93873]
- Instant navs devtools revamp: [#94027]
- Add Chromium-only Playwright image publisher: [#94051]
- Replace next-ppr-optimizer with next-cache-components-optimizer: [#94035]
- Fix errors.json merge driver to handle gaps in error codes: [#93829]
- Turbopack: make available_modules an OperationVc and simplify merged module bookkeeping: [#94055]
- Improve notFound recovery in error pathway: [#94037]
- Turbopack: Fix unsound IntoIterator for ReadRef<T>: [#94122]
- Fix Firefox refresh loop on initial load of streaming pages in dev mode: [#94128]
- Prefetch App Shells on the client: [#93999]
- ServerActionsGraph: pass ModuleGraphLayer as OperationVc: [#94141]
- Bugfix: Incorrect search params stored in cache: [#94144]
- Remove extra word: [#94160]
- Fix default regex for
require.contextin Turbopack analyzer: [#94162] - Fix short circuit evaluation of AND / OR in the Turbopack analyzer for string & nullish-related methods: [#94159]
- Turbopack: fix instrumentationClientInject with type:module: [#94184]
- Align issue triage guidance with automated behavior: [#94189]
- [CC] Streaming prerender: [#94044]
- [CC] Avoid unnecessary conversions to a stream: [#94192]
- Propagate adapter preferred regions: [#94123]
- Consolidate Resume Data Caches and partially revert [#88556]: [#94194]
- Fix
'use cache'bail-out underunstable_instant = false: [#94198] - Turbopack: use module graph for NFT: [#92901]
- Turbopack's analyzer: always treat promises as truth-y and non-nullish: [#94186]
- Update
shortcircuit_if_knowntoeval_shortcircuit(): [#94163] - Remove dead code from
JsValue::Binaryinis_truthy: [#94165] - Produce valid file URLs for
import.meta.urlon Windows in Turbopack: [#94179] - [turbopack] Store TaskDirtyCause in Dirtyness and pass to NativeFunction::span: [#94057]
- Turbopack: cleanup ModuleHotReferenceAssetReference: [#94206]
- Add Errors/Insights tab split to the instant error overlay: [#94073]
- Replace VcStorage with real TurboTasks in tests/benches : [#93955]
- Redesign the unrendered-segment instant validation overlay: [#93879]
- turbopack tracing: add chunk_name to
get HMR eventsspan: [#94061] - Turbopack: reduce hmr chunk list subscriptions: [#94062]
- [turbopack] Separate
JsValueinto it's own folder in the analyzer: [#94208] - feat(image-optimization): add experimental flag
imgOptOperationCache: [#94246] - Exclude static metadata and viewport from error recovery prerender when cache-components is enabled: [#94134]
- [turbopack] Shrink ReadRawVcFuture from 80 to 64 bytes: [#94201]
- [turbopack] Move
WellKnownObjectKind&WellKnownFunctionKindintowell_known/kinds.rsin the analyzer: [#94209] - [turbopack] Move
require.context-related code into a seperate file in the analyzer: [#94210] - Turbopack analyzer: analyze ternaries + promises in string & nullish methods: [#94187]
- [turbopack] Break up
graph.rsin the analyzer into smaller files: [#94211] - [turbopack] Add
explain()methods toWellKnownObjectKindandWellKnownFunctionKind: [#94217] - [turbopack] Handle negative numbers as constants in the analyzer: [#94218]
- [turbopack] Use
ast_path.kinds()instead of mapping overast_pathin the analyzer: [#94221] - [CLI] Exit non-zero with a clear message when next typegen fails: [#94241]
- Switch
TotalOrderF64tof64inConstantNumberto correctly handleNaN === NaNand0 === -0inside the Turbopack analyzer: [#94172] - Use
serde_json::NumberinCompileTimeDefineValueand removeTotalOrderF64: [#94177] - Update ctor from 0.10 to 1.0.6: [#94045]
- Include
--portinnext internal query-tracestartup hint and help example: [#93961] - Turbopack: refactor NFT to add Endpoint.traced_files: [#94224]
- Turbopack: show codeframe when tracing too much: [#94207]
- fix(instrumentation): await instrumentation in RouteModule.prepare: [#94306]
- [turbopack] Function pointers are copy: [#94273]
- DiskFileSystem: run write effects on a spawned task: [#94140]
- Disable
default-caseESLint rule for type-checked TypeScript files: [#94316] - Handle a purged browser cache on back navigation: [#94317]
- Persist debug channel via
IndexedDBwithout blocking hydration: [#94243] - Fix debug channel not closing on the client with Node streams: [#94268]
- Avoid bundling HMR refresh reducer in production: [#94305]
- Remove the instantNavigationDevToolsToggle flag: [#94322]
- skip render dev overlay ux under private flag: [#94346]
- Turbopack: fix bundle-analyzer for NFT change: [#93363]
- Devirtualize the backend api inside of turbo_tasks and turbo-tasks-backend: [#94007]
- Delay Node Fizz piping until after render task: [#94347]
- Enable Node streams by default: [#94311]
- Turbopack: support turbopackIgnore on more traced calls: [#94361]
- [turbopack] Treat assignments to
module.exportsas side-effect free: [#94293] - instant: enable navigation validation by default: [#94312]
- Turbopack: Move turbo-tasks/src/raw_vc.rs to turbo-tasks/src/vc/raw.rs: [#94239]
- Turbopack: fix pages index normalization for --debug-build-paths: [#94341]
- Deprecate undocumented custom server methods: [#94348]
- Trace cacheHandler and cacheHandlers when using adapters: [#94197]
- fix: build hangs if sync IO aborts before root chunk is flushed: [#94365]
- DiskFileSystem: store Effect full_path as Arc<Path>: [#94332]
- [CC] add shell stages: [#94438]
- [turbopack] Add
BumpVec(vector implementation that takes aBump): [#94296] - Ensure aborting has the same inputs as render: [#94436]
- [App Shells] App shells in runtime prefetches: [#93801]
- [turbopack] Optimize TaskInput implementations: [#94202]
- make
TaskInput::is_resolvedinlinable everywhere: [#94213] - [App Shells] staged shell rendering in cached navs: [#94441]
- [App Shells] staged shell rendering during build: [#94442]
- Keep the dev React debug channel on Node streams end to end: [#94433]
- Revert "Keep the dev React debug channel on Node streams end to end": [#94459]
- [turbopack] Only ship top-level async support in the runtime when needed: [#94376]
- Allow
unstable_retryfrom TS plugin check in Next.js Error APIs: [#94460] - [turbopack] Treat local
constassignments as side-effect free: [#94294] - [turbopack] Remove worker helpers from the default runtime: [#94372]
- Extract App Shell from static prefetches: [#94095]
- Turbopack: refactor ServerActionManifestAsset to be lazy: [#94377]
- Update vendored lodash to 4.18.1: [#94473]
- Turbopack: Perform issue filtering without turbo-task functions: [#93885]
- Keep Instant DevTools locked when opening error overlay: [#94357]
- fix(deps): bump @vercel/nft@1.10.2: [#93979]
- Simplify turbo-tasks-backend: collapse single-impl traits and remove redundant Arc layers: [#93983]
- Turbopack: refactor to use
get_ecma_transform_rule: [#94485] - Turbopack: fixup cache handler tracing: [#94477]
- [turbopack] Remove turbotask functions from
trait ResolveOrigin: [#94324] - Turbopack: remove EcmascriptParsable::parse_original: [#94465]
- Turbopack: Add an experimental option for eviction: [#94439]
- Specialize client hook prerender abort reasons: [#94494]
- enable eviction on canary: [#94451]
- Remove turbopackMemoryLimit it is dead: [#94483]
- [turbopack] Enable Effects to be evicted: [#94173]
- [turbopack] standardize chunk entry names for webpack and postcss loaders: [#94256]
- Add global config to enable Partial Prefetching: [#94448]
- Fix: Subtree hints not propagating correctly: [#94489]
- Partial Prefetching: Default to App Shell only: [#94510]
- Turbopack: refactor into
get_next_client_transforms_rules: [#94487] - [cna] Use
allowBuildsinstead ofignoredBuiltDependencieswhen using PNPM 11+: [#94544] - Turbopack: content hash polyfill sourcemap file: [#94548]
- Remove
experimental.useNodeStreamsflag as it's enabled: [#93938] - Remove dead cacheComponents web streams path: [#93944]
- fix(dev-overlay): Tidy up issues/insight menu and tab overlay: [#94549]
- [turbopack] Remove WebAssembly helpers from the default runtime: [#94373]
- enable eviction by default: [#94452]
- Rename prefetch option
force-runtimetoallow-runtime: [#94568] - [turbopack] Use an arena for
JSValues: [#94297] - Stabilize export const prefetch: [#94571]
- Fix node:stream leak in webpack edge bundles: [#94585]
- Stream Cache Components dev render instead of restarting on cache miss: [#94457]
- Fix Navigation Inspector Continue Rendering with loading.tsx: [#94355]
- [turbopack] add an extension to trace files: [#94587]
- Make router-act ignore App Shell prefetch requests: [#94580]
- Enable experimental.appShells by default with cacheComponents: [#94516]
- [turbopack] Lazily allocate the BlockCaches: [#94562]
- Stabilize catchError and retry by removing unstable_ prefix: [#94610]
- Revert "Stabilize catchError and retry by removing unstable_ prefix": [#94617]
- Stabilize
unstable_instant: [#94578] - Reapply "Stabilize catchError and retry by removing unstable_ prefix": [#94623]
- [turbopack] Enable turbopackFileSystemCacheForBuild by default in non-stable releases: [#94616]
- Add a cold cache dev indicator: [#94611]
- instant: build fix-card Copy AI prompt dynamically from title + link: [#94637]
- Stage short-lived
'use cache'entries correctly in dev: [#94645] - Call
register_assignment_scope()invisit_export_default_expr()andvisit_export_default_decl(): [#94581] - fix: handle shell errors when resuming Node streams: [#94668]
- [turbopack] Rename variables in
path_joinand add tests: [#94625] - Warn on prefetch={true} navigation without Partial Prefetching (dev): [#94672]
- Serve stale
'use cache'entries in the dev server until they expire: [#94662] - Re-fetch dynamic content on navigation with
partialPrefetchingenabled: [#94655] - Add Owner Stack to "
prefetch={true}navigation without Partial Prefetching" warning: [#94683] - [tubopack] migrate rcstr! to use scattered collect: [#94498]
- Strip internal dev request-id headers from userland
headers(): [#94703] - Persist
'use cache: private'entries in dev: [#94694] - [App Shells] refactor instant-validation to make adding new stages easier: [#94711]
- migrate turbo-tasks to scattered collect: [#94503]
- [CC] refactor staged rendering codepaths in params/searchParams: [#94718]
- [App Shells] Track whether shell prefetch used session data: [#94484]
- Treat empty resume bodies as dynamic render requests: [#94729]
- [codemod] Write pnpm overrides to pnpm-workspace.yaml on pnpm v11+: [#94690]
- [CC] Exclude caches with low stale from static prerenders: [#94678]
- [CC] Rename shellStage to streamReleaseStage: [#94749]
- [turbopack] Drop data while serializing in
next build: [#94561] - [turbopack] Optimize cell_dependency representation: [#94717]
- [turbopack] Use
final_read_hintin top level turbo tasks: [#94712] - Allow root params in App Shell (client)
- fix: this in edge sandbox setTimeout/setInterval: [#94754]
- Avoid a premature Suspense fallback flash in the streaming dev render: [#94783]
- Format submillisecond durations as milliseconds: [#94813]
- Move
warnOnceimports into statements guarded byprocess.env.NODE_ENV === 'development': [#94781] - Expand signature rewriting to allow returning ResolvedVc from turbo task functions: [#94772]
- Move
errorOnceimports into statements guarded byprocess.env.NODE_ENV === 'development': [#94782] - Turbopack: add experimental React compiler support: [#94573]
- pass
--lockedtocargo binstall: [#94834] - [turbopack] Allocate
Effects in an arena: [#94614] - [turbo-tasks] Shrink RawVc to 8 bytes and CellId to 4 bytes: [#94792]
- dev-overlay: polish error header layout and instant fix-card chip: [#94790]
- Make
cacheMaxMemorySize: 0and custom cache handlers fast in dev: [#94784] - Fix remaining OTEL issues in adapter: [#94817]
- Turbopack: improve NFT warning message: [#94854]
- Add experimental.useExperimentalReact to opt into React's experimental channel: [#94861]
- Turbopack: improve issue printing colors: [#94858]
- [turbopack] Update algebra in chunking algorithm: [#94873]
- [CC] Fix accumulator flushing logic: [#94857]
- trace-server: render read progress in place on a terminal: [#94879]
- Turbopack: Add an OrdResolvedVc wrapper type: [#94875]
- Turbopack: don't run NFT for output:export or Edge: [#94862]
- react-compiler: don't emit diagnostics as issues: [#94874]
- Turbopack: fix tracing of sharp@0.35: [#94845]
- Support vary params rewinding: [#94809]
- [App Shells] Allow root params in app shells: [#94738]
- Rename experimental.useExperimentalReact to blockingSSR: [#94869]
- Fix non-RSC router prefetch handling: [#94553]
- Log partialPrefetching during startup: [#94822]
- Avoid re-logging server-originated errors forwarded from the browser: [#94917]
- Scope the Cold cache indicator in dev to shell cache misses: [#94911]
- fix(dev-overlay): correct open-in-editor path when using a
srcdirectory: [#94775] - Fix repoRoot for adapters: [#94478]
- Fix dev overlay hydration error ordering: [#94555]
- [turbopack] Retry chunk loading on failure: [#94918]
- [turbopack] Sort modules in chunks to reduce duplicates: [#94961]
- router instrumentation: refactor client hook dispatch (1/7): [#94755]
- [otel] Add more verbose-mode OTEL spans for App Router: [#94894]
- Enforce route segment configs on metadata routes under Cache Components: [#94962]
- typegen: default to Turbopack: [#94952]
- router instrumentation: add transition start context (2/7): [#94766]
- fix: after(callback) called after response end: [#94974]
- fix: request APIs in promises passed to after() in actions/handlers: [#94964]
- Remove embedded Claude Code plugin marketplace: [#94877]
- [otel] Correctly set error code attributes for App API routes: [#94979]
- Statically prerender metadata image routes under Cache Components: [#94957]
- codemod: cache-components-instant-false + next-cache-components-adoption skill: [#94941]
- Remove legacy PPR codepaths: [#94955]
- Add a global opt-in for the runtime stage of Cached Navigations: [#95064]
- [turbopack] Rename the edge runtime to the self-contained runtime: [#94726]
- [turbopack] Sort modules in files by path not ID: [#95065]
- Turbopack: Fix log box test on react 18: [#95078]
- Turbopack: Avoid clone when sorting by module file path: [#95079]
- Fix false-positive
export const dynamicin Cache Components detection: [#95083] - Serve ISR fallback shells in response to prefetch requests: [#94534]
- Insights: drop irrelevant fix cards from instant errors: [#94926]
- Navigation inspector UI updates: [#94959]
- Turbopack: Delete dead AttachedFileSystem type: [#94960]
- Opt Partial Prefetching routes into the runtime stage of Cached Navs: [#95097]
- Fix [#95015] by pulling a fix to scattered-collect: [#95098]
- Release the instant navs lock without clearing the whole cookie jar: [#94947]
- Compute dev fallback params from the most-specific prerendered route: [#95066]
- Consider merging chunks when
overlap == 1: [#95102] - [turbopack] Add support for single-entry chunks: [#94727]
- Turbopack: add TURBOPACK_DEBUG_CSS_CHUNKING env var: [#95080]
- Keep the resolved cache life for
cacheMaxMemorySize: 0caches in dev: [#95100] - Avoid mutating
req.headerswhen stripping internal headers: [#95116] - Revert "Remove legacy PPR codepaths": [#95113]
- dev-overlay: wire Link prefetch={true} Partial Prefetching warning into Insights: [#94798]
- Add missing switch case: [#95127]
- Revert "Add missing switch case": [#95129]
- Fix Navigation Inspector styles in dark mode: [#95126]
- Fix local fonts in statically prerendered
ImageResponsemetadata route: [#95121] - Surface an error for blocking routes under the Navigation Inspector: [#95139]
- Suppress prefetch={true} warning when route opts out via instant = false: [#95099]
- [turbopack] Create
ServiceWorkerChunkingContextOptionsinnext-core: [#94920] - instant(): Only render shell, unless prefetch prop is set: [#95150]
- [turbopack] Create
ServiceWorkerEntryModuleandservice_worker_chunk_filename: [#94921] - [turbopack] Discover
ServiceWorkerEntryModules innext-apiand compile + serve those service workers: [#94922] - [PP] Reveal after ShellRuntime when simulating a Shell Prefetch in dev: [#95149]
- Replicate production prefetch shells for instant navigations in dev: [#95067]
- [next-dev-loop] Fix some papercuts: [#95153]
- Gate the dev Cold cache badge behind an experimental flag: [#95169]
- [next-dev-loop] Fix cookies: [#95177]
- Revert "[turbopack] Use
final_read_hintin top level turbo tasks (#94712)": [#95178] - [dev overlay]: restructure Copy-as-prompt body into a step-by-step checklist: [#95186]
- Hard-navigate to app routes shadowed by a pages dynamic route: [#95185]
- next-dev-loop: require agent-browser >= 0.31.1: [#95209]
- fix: preserve middleware rewrite query in Pages API routes: [#94905]
- Don't track modifications to transient data stored in tasks: [#95133]
- Record size metrics to our compaction and persistence spans: [#94977]
- [turbopack] Support undoable modifications for many field types on TaskStorage: [#95180]
- Turbopack: make hash_xxh3_hash128 return u128: [#95232]
- Improve typing of
decodeReply: [#95263] - fix: preserve repeated search params in client page segment cache keys: [#94863]
- fix(turbopack): dedupe filename/exportedName in server-reference-manifest worker entries: [#95242]
- Avoid bundling client-nodemodules used by
unstable_rethrowin client-browser modules: [#95196] - Turbopack: replace cssChunking graph
moduleFactorCostwithweightDistribution: [#95088] - Fix: Update the URL when a client navigation redirects to a rewritten route: [#95207]
- Enhance ESLint rule
no-location-assign-relative-destination: [#93057] - [turbopack] Add an experimental
chunkingHeuristicstonext.config.js: [#95019] - [turbopack] Thread
chunkingHeuristicsthrough to chunk groups: [#95020] - [turbopack] Set
chunking_heuristicson eachChunkGroupInfo: [#95021] - [turbopack] Use experimental chunking heuristics: [#95026]
- [turbopack] Discover service workers in the Turbopack analyzer: [#94923]
- Turbopack: This bool could've been an enum: [#95288]
- log config evaluation time: [#94811]
- Log content-free diagnostics when a postponed state fails to parse: [#95216]
- Turbopack: constant evaluate
x in y: [#95286] - Surface empty
generateStaticParamsas a redbox with a real stack: [#95269] - Render a code frame for build errors thrown collecting page data: [#95270]
- fix: params/searchParams in client page crashing dev instant validation: [#95289]
- Turbopack: compute code hash per
use cachefunction: [#94234] - Fix workers on thread to not crash with napi-rs: [#95281]
- codemod: non-interactive upgrade for agents and CI: [#95312]
- [PP] Validate Shell prefetches (except gSP): [#95151]
- [PP] Instant validation - error for unguarded static params: [#94595]
- codemod: bump eslint alongside eslint-config-next: [#95314]
- Rename Copy as prompt to Copy prompt, convert FixOption to FixCard: [#95309]
- Fix Navigation Inspector in Safari: [#95329]
- Fix early OTel proxy tracers in Cache Components prerenders: [#95317]
- Re-query deploy-test build logs until id markers appear: [#95243]
- Rename
DYNAMIC_EXPIREandDYNAMIC_STALEto describe what they gate: [#95361] - fix(turbopack): allow
#/prefixed subpath import specifiers: [#94461] - Remove 'silence this warning' from instant validation fix output: [#95187]
- Make
instant()resilient to a leaked navigation-testing cookie: [#95375] - Await reused in-flight prefetch entries under Instant Navigation lock: [#95301]
- Cache short-
expire'use cache'values across dev reloads: [#95362] - Fix metadata title dropped on soft navigation with Cache Components: [#95315]
- Prefetch links nearest the top of the document first: [#95393]
- fix: handle prototype-colliding segment names in segment explorer trie: [#95403]
- Clear a resurrected instant cookie on unlock so a hard reload recovers: [#95398]
- Recover from blocking routes under Instant Navigation lock when deployed: [#95227]
- fix(config): correctly validate cacheHandlers names: [#95358]
- Fix history push getting treated like replace when followed by refresh: [#95392]
- Skip saving
expire: 0values in the default cache handler in prod: [#95363] - Fix false-positive nested-cache error for a short default profile: [#95373]
- Fix navigation getting reverted when a Server Action is in flight: [#95391]
- Ignore-list internal frames whose source maps chain to original sources: [#95448]
- fix: work around SWC compress bug: [#95457]
- Avoid unnecessary rendering for validation in dev: [#95394]
- Add
serverComponentsHmrCancellationexperimental flag: [#95462] - Also rewrite requires in page templates with Webpack: [#95446]
- Fix instrumentation hook awaiting for middleware with adapters: [#95357]
- otel: Use correct parent span for Node.js middleware: [#95306]
- [turbopack] Add E2E tests for service workers: [#94924]
- trace-viewer: Support string span ids in nextjs trace backend: [#95515]
- evals: fix false-negative regex checks with the agentic LLM judge: [#95440]
- fix(dev-overlay): increase fix card grid row gap to clear floating Copy prompt button: [#95526]
- [fragment-scroll] Enable new scroll handler by default: [#95378]
- Abort superseded Server Components HMR requests on the client: [#95463]
- turbo-persistence: skip directory fsync on Windows: [#95497]
- Disable
supportsImmutableAssetswithconfig.output: [#95521] - Turbopack: add all keys to dynamic exports before sealing the object: [#93334]
- Propagate maxDuration to edge adapter outputs: [#95118]
- Run instrumentation for Node.js Middleware without Adapter: [#95547]
- Fix/next info experimental analyze with graph css chunking: [#95542]
- Cancel a superseded Server Components HMR refresh's server-side work: [#95486]
- Turbopack: add more context to persistence file errors: [#95318]
- [turbopack] Rename
rscEndpointtorscHmrEndpoint: [#95538] - [PP] Surface URL data during prefetching as an Instant insight with rule page: [#95365]
- fix: log "Partial Prefetching enabled" during next build: [#95593]
- [turbopack] Don't persist if there is little work to do: [#95137]
- align dev and build output: [#94916]
- [turbopack] Don't evict when there is little memory to save: [#95213]
- Consistently gate navigation-testing-lock API on flag: [#95582]
- Turbopack: enable
import with {type: 'text'}by default: [#95606] - fix(create-next-app): pin both axes on Tailwind template logos to silence aspect-ratio warning: [#95609]
- [turbopack] print Turbopack warnings after SSG: [#95430]
- fix(create-next-app): render filenames in Geist Mono so the preloaded font is used: [#95471]
- Normalize and validate
expireandrevalidatevalues to handle Infinity and surface mistakes early: [#95493] - Make the agent-rules block verifiable and self-upgrading: [#95467]
- Convert agent-041's blocking-data check to the agentic LLM judge: [#95630]
- Reduce the size of OperationVc from 8 bytes to 4: [#95614]
- [turbopack] Output service workers to
/_next/static/: [#95554] - [turbopack] Compile service workers registered from pages router pages: [#95583]
- [turbopack] Simplify service worker e2e tests: [#95672]
- Keep the request body a plain Readable after middleware so Readable.toWeb() doesn't hang: [#95607]
- [PPF] Sync IO is only allowed in the dynamic stage: [#95384]
- Fix support for
custom-media-queriesin LightningCSS: [#95689] - Turbopack tests: remove assertions that duplicate webpack results: [#95688]
- request insights: record local framework spans (1/5): [#93974]
- request insights: derive request history and fetch data (2/5): [#93975]
- request insights: expose dev snapshots to tools and HMR (3/5): [#93976]
- Fix duplicate static files in adapter: [#95681]
- Fix Pages router 404 runtime rendering with Adapter: [#95264]
- request insights: add agent diagnosis access (4/5): [#93977]
- Fork navigation-testing-lock module: [#95611]
- Turbopack: order CSS modules by chunk-group co-occurrence in linearize: [#95579]
- Fix termination handling: [#95692]
- [turbopack] Switch
make_production_chunksto use floats: [#95749] - Improve the NFT error message and ignore comment handling: [#95144]
- request insights: add DevTools request panel (5/5): [#93978]
- [turbopack] Optimize the implementation of AutoMap/AutoSet : [#95694]
- telemetry: add agentName to anonymous metadata: [#95586]
- Respect NEXT_HASH_SALT for server side assetsHashes: [#95738]
- Support metadata routes in --debug-build-paths: [#95788]
- Only track pending imports for real promises: [#95789]
- Fix cache warming and static params for metadata images with top-level await: [#95790]
- Preserve init errors from async route modules: [#95799]
- Fix Request Insights subscription initialization: [#95794]
- Add more realistic bench fixtures: [#95807]
- [Bench] Extend bench app to have realistic client chunk counts: [#95814]
- Replay same-document traversals that happen before hydration: [#95682]
- [turbopack] Tell agents not to mention next.config.js options: [#95825]
- Exclude stale under 5 minutes from app shells: [#95833]
- [turbopack] Generate component chunks for each merged group to increase cache hits: [#95261]
- Turbopack: trace externals imported only by server actions: [#95824]
- [turbopack] Create a shared asset with browser runtime code: [#94586]
- [turbopack] Create a
chunk_group_bootstrap_params()function: [#94631] - [turbopack] Add
inline_chunk_group_bootstraptoBrowserChunkingContextandchunk_group_bootstrap_paramstoChunkGroupResult: [#94661] - [turbopack] Add
registerEntry()to handle inline bootstrapping: [#94664] - [turbopack] Add
chunk_group_bootstrap_paramsand the chunk-loading global to the build manifest: [#94663] - [turbopack] Inline the chunk group bootstrap in Next.js to drop the per-route runtime: [#94666]
- [turbopack] Only ship pages-router routes in the client chunk-group bootstrap manifest: [#94671]
- Revert "Replay same-document traversals that happen before hydration": [#95853]
- Fix Request Insights span collection: [#95818]
- Unify appShells flag with Partial Prefetching: [#95415]
- Fix repeated navigations while the Instant Navigation lock is held: [#95864]
- fix(agent-rules): pad managed AGENTS.md block with blank lines: [#95892]
- [turbopack] Don't SSR on pages only navigated to through a soft nav: [#95539]
- [turbopack] Clean up
server_chunking_context: [#95908] - Fix Rust doctest failures: [#95909]
- [instant] Let dev-server requests bypass the fetch lock: [#95761]
- Move immutable static assets config option out of experimental: [#95351]
- Move outputHashSalt out of experimental: [#95840]
- fix(cms-contentful): await draftMode() and use Promise<> params type: [#95631]
- Turbopack: Simplify parent directory creation retry loop logic: [#95835]
- [turbopack] Drop unused exports from a CJS module: [#95716]
- [turbopack] Skip redundant top-level root updates: [#95903]
- cna: use LayoutProps helper in TS layout templates: [#95675]
- [turbopack] Rename
turbopackTreeShakingtoturbopackModuleFragments: [#95978] - Fix instant validation blocking navigations: [#95939]
- Prevent unhandled rejections when a "use cache" cache handler errors: [#95985]
- Insights: use a single Learn more link in console errors: [#95967]
- Preserve basePath in redirect destinations: [#95608]
- fix(next/image): improve performance of detectContentType() : [#96006]
- Validate server reference IDs during manifest lookup: [#96007]
- fix(incremental-cache): byte-exact fetch cache key for binary bodies: [#96008]
- fix(fetch-cache): key fetch(Request, init) by the effective request: [#96009]
- Ensure exotic rewrite param values are properly encoded: [#96010]
- Set correct origin for internal redirects in custom server: [#96011]
- Enforce
serverActions.bodySizeLimitfor Server Actions in Edge runtime: [#96012] - Improve performance of validating MPA form submissions: [#96013]
- Fix Turbopack middleware matcher with i18n single locale: [#96014]
- [turbopack] Tree-shake CJS exports that use the
Object.definePropertysyntax: [#95994] - Turbopack: Use
Arc<PathBuf>for keys in turbo-task-fs's per-pathMutexMap: [#95951] - Revert "[turbopack] Don't SSR on pages only navigated to through a soft nav (#95539)": [#96028]
- Turbopack: Fix missing canonicalization of paths and always use verbatim paths internally for Windows: [#95668]
- Turbopack: Remove chunk group id from value of chunk groups map: [#95142]
- Fix basePath fallback parameter parsing: [#95966]
- Emit the static paths HMR update after updating the cache: [#96019]
- Add a dedicated HMR message for static params changes: [#96020]
- Fix stale dev
'use cache'for cookieless requests and route handlers: [#96022] - fix: cache miss in App Shell for cached pages with gSP: [#95665]
- Turbopack: stop copying sourcesContent into every serialized source map: [#95934]
- [turbopack] Fix deployment skew protection for component chunks: [#96079]
- Gate
partialFallbackbehavior behindpartialPrefetchingflag: [#96074] - [Cache Components] Exclude dynamic params from prerenders when no generateStaticParams values is provided: [#95872]
- Turbopack: Use
swc_core::ecma::utils::prop_name_eqfor a couple of thenext-custom-transforms: [#96035] - Turbopack: Use Arc<PathMap> and Box<Path> to make InvalidatorMap slightly more efficient: [#95987]
- Turbopack: Split up turbo-tasks-fs/src/lib.rs into smaller modules: [#96030]
- [Bench] Add client-trace attribution pass and document metrics to render-pipeline: [#95828]
- Rewrite edge server source map sources in Rust, drop JS fallback: [#95980]
- fix(next/font/google): bound Google Fonts fetch timeout on Turbopack: [#95981]
- Restore partial fallback shell upgrade coverage: [#96096]
- Remove inert experimental.viewTransition flag: [#96098]
- Turbopack: Refactor watcher event handling and batching logic: [#96087]
- Turbopack: Very minor improvements for watcher loop: [#96103]
- [turbopack] Track re-exports in
import_usageinside ofcompute_import_usage: [#95989] - [RSC HMR] Fix a flurry of refetches when a editing component imported from many routes: [#96102]
- Return plain text 404 for non-document requests to unknown paths: [#95930]
- [turbopack] Track usage of modules imported with
require(): [#95717] - [turbopack] Drop dead
require()calls: [#95718] - [turbopack] Import Webpack's tests for tree-shaking: [#95811]
- [ts-plugin] Preserve TypeScript quick info metadata: [#95863]
- Optimize app page entry analysis: [#96058]
- Include additional prerender metadata about build-time routes: [#96080]
- Keep VaryPath monomorphic by making isRootParam required: [#96122]
- Make reifyRouteTree object literals match the canonical RouteTree key order: [#96162]
- Keep optimistic-route param handling monomorphic: [#96169]
- [sourcemaps] Use file: sourcemaps for Turbopack to improve dev performance: [#95946]
- Avoid quadratic HMR queue shifts: [#96137]
- Optimize implicit cache tag derivation: [#96120]
- Forward dev invalid dynamic usage errors from the render, not validation: [#96148]
- [refactor] Model dev validation render outputs as a discriminated union: [#96149]
- Add the
experimental.devValidationWorkerconfig flag: [#96150] - [refactor] Prepare dev validation for running on a worker thread: [#96151]
- Run Cache Components dev validation on a worker thread: [#96153]
- fix: release compression stream when client disconnects mid-response: [#96173]
- [sourcemaps] Reuse source map payloads and consumers across stack frames: [#96198]
- Pass fallback params to the dev validation worker as maps: [#96210]
- Retry the source map lookup with a plain path: [#96215]
- Read chunk source maps from disk in the dev validation worker: [#96218]
- Run dev validation in process when using Webpack: [#96219]
- Fix dev overlay symbolication for project paths needing percent-encoding: [#96221]
- fix(sandbox): release one-shot timeout ids after they run: [#96161]
- Turbopack: support import.meta.glob caseSensitive option: [#96226]
- Add shell offset to static segment prefetches: [#95963]
- [turbopack] Fix de-opt in getChunkRelativeUrl(): [#96183]
- [turbopack] Tree-shake
module.exports = {...}(CJS): [#95996] - Add Instant Insights request timing: [#95958]
- Track whether runtime data is accessed during prefetch: [#95964]
- Update vendored
@mswjs/interceptorsto 0.41.9: [#96059] - Replace vendored
http-proxywithhttpxy: [#96060] - Turbopack: Store watcher batch state with bitflags instead of 4 different sets: [#96114]
- Turbopack: Only extend the watcher's batch window for unfiltered events: [#96186]
- Serve cached misses from the filesystem route cache: [#96230]
- Use a safe clock for Request Insights bookkeeping: [#96274]
- Block prefetch task until sufficient response is received: [#96017]
- Attempt static prefetch before resorting to runtime: [#96095]
- Unify allow-runtime with Partial Prefetching: [#96106]
- Add option to control dev memory threshold restarts: [#96144]
- feat(turbopack): support import.meta.env: [#96225]
- fix(next/image): improve test coverage for unsupported image types: [#96301]
- Add local Request Insights span tracing: [#96275]
- Add Instant Insights pipeline spans: [#95961]
- Persist Request Insights display settings: [#96277]
- [turbopack] Treat
Object.defineProperty(exports, …, { value: … })as side-effect free: [#96273] - Fix Turbopack worker URL context lookup: [#96307]
- Return 200 for client-handled Server Action redirects: [#96310]
- Revert "[turbopack] Track re-exports in
import_usageinside ofcompute_import_usage": [#96311] - Improve root detection to handle worktrees, more workspaces & stray lockfiles: [#96159]
- Turbopack: aggregate server HMR into one subscription: [#94948]
- Turbopack: extract chunk list version/update into turbopack-ecmascript: [#95661]
- Turbopack HMR: extract deferring build messages and use it in server hmr: [#95795]
- Turbopack server hmr: avoid complete
clearon graph changes: [#95546] - [turbopack] Remove loader calls for dropped dynamic imports: [#96284]
- Revert "Revert "[turbopack] Track re-exports in
import_usageinside ofcompute_import_usage"": [#96315] - Restore comments dropped during a refactor: [#96324]
- [turbopack] Tree shake w/
bar['foo']syntax for star imports: [#96319] - Cache immutable current task IDs outside the task-state lock: [#96180]
- Gate partial fallback shell upgrades behind
partialPrefetchingfornext start: [#96297] - Make retry stop when the time it was given is up: [#96354]
- Share Ecmascript HMR chunk versioning, diffing, and merging between browser and node: [#96325]
- Ensure unique resolved
headers()value between render passes: [#96085] - Fix PPR rendering for configured HTML bots: [#96364]
- [fragment-scroll] Stop blurring on navigations: [#96113]
- [Instant] Point to first blocking await in validation: [#96343]
- Skip reader task locking for immutable Turbo Tasks reads: [#96179]
- Fix empty Fragment scroll ownership: [#96342]
- fix(create-next-app): make AGENTS.md blue: [#95432]
- fix: respect
htmlLimitedBotsin cache components without buffering the full response: [#96367] - Remove obsolete shouldWaitOnAllReady render option: [#96401]
- Update Rust toolchain to nightly-2026-07-29: [#96365]
- [turbopack] Keep track of components of the remainder chunk: [#96409]
- [turbopack] Respect
sideEffectsin apackage.jsonfile withoptimizePackageImports: [#96383] - Fix
isHeadPartialwhen hydrating from a static fallback shell: [#96400] - [turbopack] add
experimental.turbopackChunkingconfig: [#96398] - Update @types/react and @types/react-dom to latest: [#96419]
- Fix adapter outputs for not-found routes when used with cache components: [#96390]
- Consolidate unhandled rejection logging into a single listener: [#95999]
- Enable turbopackFileSystemCacheForBuild by default: [#96395]
- [turbopack] Fix component chunks for workers: [#96432]
- Fix hybrid Pages/App Router not-found rendering with adapters: [#96392]
- Warn that
experimental.useCacheis deprecated: [#96448] - Enable Turbopack build filesystem cache by default: [#96493]
- [Cache] Make caches error if called after prerender aborts: [#96426]
- Fix App Router scroll padding visibility: [#96308]
- Enable TypeScript CLI by default: [#96497]
- fix: double fragment on navigation: [#93132]
- Remove implicit Partial Prefetching opt-in from
instant: [#96539]
Documentation Changes
- docs: fix broken Activity Patterns demo link in preserving UI state guide: [#91698]
- docs: post release amends: [#91715]
- docs: use ErrorInfo type consistently in catchError docs: [#91744]
- docs: add catchError benefits over userspace error boundaries: [#91745]
- docs: platform portability and infrastructure documentation: [#91237]
- docs: add verified adapters section: [#91849]
- docs: document CSS decimal precision difference between Turbopack and webpack: [#91909]
- [Docs] Rewrite agent rules to match bundled doc wording: [#91995]
- docs: opengraph-image papercuts: [#92018]
- Update revalidateTag examples to use the new two-argument signature: [#92065]
- docs: clarify that
use cacherequires async functions: [#92101] - Move expanded adapters docs to API reference: [#92115]
- docs: add middleware bypass note to CDN caching guide: [#92132]
- docs: document revalidateTag's required second argument in upgrade guide: [#92134]
- docs: local images referenced by remote source: [#92178]
- docs: clarify id, filePath, and pathname in STATIC_FILE adapter output: [#92227]
- Docs/adapters review: [#92223]
- docs: vt demo guide: [#92249]
- docs: Ask AI agents to self-identify themselves in PR descriptions: [#92235]
- docs: add deploy tests documentation to contributing guide: [#92388]
- docs: clarify that proxy/middleware matches static assets by default: [#92441]
- docs: clarify serverless runtime behavior for use cache: [#92232]
- docs: add note on React canary version to View transitions guide: [#92315]
- docs: note PPR default in cacheComponents reference: [#92378]
- docs: instant-navs draft, samples for build validation: [#91850]
- docs: add middleware.mdx deprecation stub for discoverability: [#92281]
- docs: improve blocking-route error page for params discoverability: [#92359]
- docs: clarify cacheLife() cannot be called at module scope: [#92326]
- docs: add note on installing
server-onlyin data security guide: [#92445] - fix: replace docs/canary links with stable docs paths in error messages: [#92528]
- docs: update details about
unstable_retry()behavior: [#91827] - docs: link updateTag from cacheTag reference: [#92379]
- Docs: Instant docs updates: [#92515]
- docs: native db drivers with sync queries: [#92572]
- docs: add Link transitionTypes version history: [#92624]
- docs(cli): clarify that
--debug-build-pathsrequires route group folders in paths: [#92618] - docs: fix broken bun.sh Nextjs documentation link: [#92698]
- docs: add migration note for experimental cache flags to cacheComponents: [#92318]
- docs: draftMode alignment: [#92794]
- docs: restructure instant nav guide for clarity: [#92684]
- docs: add documentation for no-typos ESLint rule: [#92809]
- docs: amends to preserving-ui-state guide: [#92270]
- docs: link Activity guide from Cache Components migration guide: [#92571]
- docs: add guide for displaying dates without hydration flash: [#92786]
- chore: remote apps/docs: [#93041]
- Docs: add signed commit guidance: [#93155]
- Turbopack: import.meta.glob docs + edge case support: [#92729]
- docs: remove broken error-handling overlay screenshot: [#93279]
- docs: clarify rendering flow in Server/Client interleaving example: [#93381]
- docs: clarify proxy runtime history: [#93467]
- Update
unstable_prefetchandunstable_instantdocs to reflect current API shape: [#93514] - docs: remove unreachable forms and mutations: [#93509]
- docs: broken link from usePathname compat call out: [#93528]
- docs: escape literal triple-backticks in contribution guide: [#93584]
- docs: clarify cacheTag limit - it is per call: [#93768]
- docs: devIndicators with usage example: [#93784]
- docs: less aggressive AI agent hint for an experimental API: [#93811]
- docs: fix typos and links: [#92541]
- docs: less aggressive AI agent hint for an experimental API: [#93814]
- docs: update agent test guidance: [#93924]
- docs: instrumentationClientInject: [#93913]
- docs: vocabulary-bridge rule for api-ref and guide skills: [#94127]
- docs: rework dynamic segments intro section: [#94126]
- docs: add next/root-params API reference: [#93764]
- docs: ISR w/ Cache Components -
experimental.partialFallbacks: [#93299] - docs: transpilePackages usage: [#93602]
- docs: move isr cacheHandler callout to next steps: [#94167]
- docs: fix code examples in getting-started guides: [#93273]
- [feat] updated the documentation for deployment to point to new next.js Docker official guide.: [#94185]
- docs: correct custom server optimization guidance: [#94229]
- docs: bodySizeLimit measures raw HTTP body: [#94137]
- docs: accuracy and pappercuts: [#94299]
- doc: clarify rewrites execution order: [#93765]
- docs: update draftMode guide: [#94155]
- docs: cached functions from the client: [#94301]
- docs: add GitHub SSH authentication guidance: [#94360]
- docs: document Cache Components behavior for navigation hooks: [#94387]
- instant: prompts on all fix cards, [group]-tagged CLI bullets, new docs slugs: [#94017]
- docs: fix typos in
testing.md: [#94446] - docs: fix typos in contribution guide: [#94375]
- docs: correct wording and casing in turbopack tracing guide: [#94469]
- docs: typos and errors outside docs, error, examples folders: [#94472]
- docs: clarify next-env.d.ts regeneration: [#94232]
- docs: add updateTag example to cacheTag page: [#94508]
- docs: clarify use cache persistence across deploys: [#93554]
- docs: fix onRequestError error type example: [#94518]
- docs: move insight error pages from vercel/front to canary: [#94564]
- [Docs] Remove unstable_instant agent hints; insights validate by default: [#94577]
- docs: fix 'time zone' spelling in FOUC guide: [#93244]
- docs: add pnpm installation step to module-not-found error page: [#93773]
- instant: polish client-hook overlay wording, cards, and docs links: [#94496]
- docs: root-params highligth fixes: [#94620]
- docs: remove unstable_disableValidation recommendations: [#94608]
- doc: instant navs runtime story: [#93204]
- docs: next/root-params references on i18n guide: [#94629]
- docs: expand the Cache Components migration guide: [#94649]
- docs: document non-streamed bot rendering and Cache Components: [#94605]
- docs: Route Handlers to be supported later on: [#94705]
- [agents-md] Index bundled docs instead of downloading into .next-docs: [#94719]
- docs: add prefetchInlining config reference: [#94650]
- docs: tighten Partial Prefetching API references and adoption guide: [#94818]
- docs: server actions guide: [#93553]
- docs: fix capitalization of Server and Client Components: [#94891]
- docs: Fix broken link to Node.js Debugging Guide: [#93958]
- docs: fix broken Node.js inspector URL in debugging guide: [#94934]
- docs: clarify sequential data fetching example: [#94930]
- docs: GtK, caching with fetch is opt-in - extended to any method or header included: [#94899]
- docs: fix typo in slot-missing-default.mdx: [#94531]
- docs: Cache components requires Node.js runtime: [#94897]
- docs(authentication): add Auth and streaming, fix code fences and imports: [#95056]
- docs: add Interactive Apps guide: [#94020]
- docs(caching): clarify generateStaticParams prebuild and recommend max for CMS: [#95081]
- docs(cache-components): clarify allow-runtime, sync-IO and instant=false, CLS fallback: [#94997]
- Docs/partial prefetching: [#94855]
- docs(root-params): generateStaticParams section and CC requirement: [#95073]
- docs: server actions guide x-refs: [#95143]
- docs: clarify /_not-found failures and <html> attribute reads under Cache Components: [#95163]
- docs: expand io reference: [#95147]
- docs: update instant navs guide: [#95173]
- docs: fix preview message typo: [#95050]
- docs(insights): restructure error pages and link to preview docs: [#95193]
- docs(errors): reorder blocking-prerender-dynamic fixes to Stream, Cache, Block: [#95198]
- Add docs for
experimental.turbopackRustReactCompiler: [#95280] - docs: remove unnecessary async from rewrites/headers/redirects examples: [#95148]
- docs: Activity bfcacheId and :has caveats: [#95275]
- Instant Navs guide: Highlights fixes and Client Component Page option: [#95313]
- docs: recommend explicit cacheLife and clarify overriding built-in cache profiles: [#95311]
- docs: Update FormEvent to SubmitEvent in form handling example (deprecated in React 19.2.10+): [#95453]
- docs: remove incorrect statement that force-cache is the default for …: [#95235]
- docs: updates to Cache Components Caching: [#95452]
- docs: Fix testing-adapters variable name: [#95575]
- docs: update MCP guides for the thin next-devtools-mcp: [#94859]
- docs(opengraph-image): load assets at module scope to keep route static under Cache Components: [#95246]
- [docs] Update progressive web apps documentation for new service worker syntax: [#95431]
- [docs] Update "Handling a Custom
Service Worker" in the CRA migration docs: [#95434] - docs: Immutable static assets: [#95348]
- docs: note default error/not-found UI follows OS color scheme, not app theme: [#95673]
- docs: add incremental adoption path to Cache Components migration guide: [#95325]
- docs: add Building guide: [#94999]
- docs: runtime prefetching update: [#95564]
- docs: useSearchParams example stray link: [#95759]
- docs: Improve immutable static docs: [#95752]
- docs: revalidateTag with expire zero, for route handlers: [#95760]
- docs: add route-side URL data audit to the Partial Prefetching adoption guide: [#95389]
- docs: cssChunking graph option: [#95693]
- docs: remove experimental @next/routing note: [#94903]
- docs: add 'Set up your editor' to the installation guide: [#95928]
- docs: clarify layout.js nesting behavior in route groups: [#95720]
- docs: note the
:has()scaling limit in the Interactive apps guide: [#95925] - Include examples of static export tools & GitHub Pages template: [#95929]
- docs: fix unstable_cache syntax error: [#96002]
- docs: add upgrade section to installation and expand AI agents guide: [#95861]
- docs: attribute App Shell prefetch to Partial Prefetching: [#96003]
- docs: view transitions guide — skill section, source-audit fixes, flag-removal docs: [#96097]
- docs(view-transitions): fix the skill install command: [#96142]
- docs: reframe prefetching around automatic vs. controllable behavior: [#95896]
- docs: navigation interrupts after streaming has started (notFound, forbidden, unauthorized): [#95851]
- docs: expand and modernize the Single-Page Applications guide: [#95860]
- docs(ai-agents): restructure as steps and close 16.2/16.3 coverage gaps: [#96247]
- docs: document query-only href resolution and fix with-vercel-blob : [#96280]
- doc: typegen for typedRoutes: [#96296]
- docs: clarify instrumentation-client polyfill loading and hydration timing: [#95988]
- docs(interactive-apps): update prefetching for unified runtime prefetching: [#96302]
- docs: add guide and references for experimental.useOffline: [#93218]
- docs: remove PPR adapter page from Pages Router: [#96316]
- docs: Parallel routes, conditional rendering and auth: [#96351]
- docs(preventing-flash): cover reconciling state : [#96146]
- docs: modernize Next 16 upgrade AI guidance: [#96314]
- Update PWA guide with enhanced offline support details and example links for serwist: [#96360]
- docs: document the App Shell stale time threshold for cached content: [#96312]
- [turbopack] Introduce documentation on
experimental.turbopackChunking: [#96437] - docs: ISR with Cache Components and Partial Prefetching: [#96526]
- docs: clarify first-party Skills workflows: [#96495]
- docs: cover direct visits and client navigations in the instant() e2e example: [#95803]
Example Changes
- chore(examples): remove
with-styletronexample: [#81842] - ci: remove deploy examples workflow from build-and-deploy: [#92324]
- example: remove with-supertokens: [#93212]
- [examples] migrate cloudinary to vercel-blob: [#93762]
- examples/with-ably: update to App Router + Ably v2: [#94600]
- fix: error handling and loading states in with-apollo-and-redux example: [#91457]
- fix: remove deprecated url.parse() from custom-server example: [#96105]
Misc Changes
- Add .claude/skills symlink: [#91616]
- Update tokio from 1.43.0 to 1.47.3: [#90945]
- Restructure pr-status-triage skill: merge command into skill files: [#91514]
- [test] Unflake "infinite streaming fetch" test: [#91645]
- [test] Unflake
deterministic build - changing deployment idtest: [#91646] - Skip CI for agent/editor config directory changes: [#91622]
- refactor: extract build infra and alias changes: [#90422]
- ci: add node-stream test coverage workflow: [#89861]
- Update Rspack production test manifest: [#91635]
- [test] Increase
retrytimeouts for two flakyapp-actiontests: [#91647] - Revert "ci: add node-stream test coverage workflow (#89861)"
- [test] Fix flaky
url-hashtests: [#91649] - Add instant validation tests for parallel slot config attribution: [#91656]
- [test] Unflake rendering indicator test & skip building indicator tests: [#91650]
- [test] Fix
edge-async-local-storagedeploy test timeout & race condition: [#91643] - Update Rspack development test manifest: [#91695]
- [test] Unflake
use-node-streams-env-precedencetest: [#91733] - Update Rspack production test manifest: [#91694]
- [test] Unflake app prefetch test: [#91734]
- Upgrade React from
3f0b9e61-20260317to8b2e903a-20260320: [#91731] - [ci] Allow "rerun failed jobs" to work up until 5 days: [#91825]
- ci: upload adapter deploy test results: [#91846]
- test: scope css data-url typing to fixture: [#91877]
- ci: only upload adapter results for canary runs: [#91881]
- Perf: Skip turning Set into Array: [#91383]
- Perf: Move chunkloading instrumentation to separate function: [#91382]
- Perf: Use headers object directly in checkIsOnDemandRevalidate: [#91381]
- [test] Deflake instant-navs-devtools: [#91912]
- test(typed-routes): fix flaky tests by increasing retry timeout: [#91923]
- test(app-basepath): increase waitForElementByCss timeout for hard-nav test: [#91920]
- test(interoperability): increase waitForElementByCss timeout for cross-router navigations: [#91918]
- Upgrade React from
8b2e903a-20260320to3cb2c420-20260324: [#91905] - Upgrade React from
3cb2c420-20260324to9627b5a1-20260327: [#92015] - Upgrade React from
9627b5a1-20260327to74568e86-20260328: [#92109] - ci: relax adapter results upload gate: [#92127]
- [test] Skip
unstable_dynamicStaleTimetests due to flakiness: [#92162] - [test] Skip flaky
segment-cache-refreshsuite: [#92163] - Add PPR evals and fix env loading for agent-eval 0.9.5: [#92063]
- Update Rspack development test manifest: [#92142]
- [test] Skip flaky
cached-navigationstests: [#92199] - [test] Skip flaky
prefetch-layout-sharingsuite: [#92198] - Add internal header security guideline to AGENTS.md: [#92128]
- Update Rspack production test manifest: [#92143]
- [test] Deflake
allowed-dev-origins: [#92211] - Reapply "ci: add node-stream test coverage workflow (#89861)": [#91664]
- Fix pr-status.js: retry on API errors and report timed-out jobs: [#92205]
- Add view transitions eval (agent-043): [#92260]
- ci: fix stats action: [#92325]
- ci: remove deploy examples workflow from build-and-deploy: [#92324]
- Update Rust toolchain to nightly-2026-04-02: [#92288]
- fix: add AGENTS.md at package root for agent discovery: [#92376]
- [tests]: remove unnecessary skipDeployment flags: [#92423]
- chore: Upgrade to pnpm 10.x: [#92283]
- Bump turborepo from 2.8.11 to 2.9.4: [#92425]
- [test] Skip flaky
client-cache.parallel-routesin production and deploy: [#92195] - scripts/pr-status: add reply-and-resolve-thread command: [#92450]
- [test] Regenerate checked-in tsconfig.json files: [#92455]
- Adding more system info to the 'initialize project' trace: [#92427]
- CI: Update and cleanup next-stats-action, force using pnpm 10.33.0: [#92475]
- CI: Remove unused dependencies from next-stats-action dockerfile: [#92485]
- Upgrade swc_core 57 -> 58, swc_sourcemap 9 -> 10, swc_plugin_runner 24 -> 25: [#91532]
- perf: use whole_app_module_graph for get_compilation_issues MCP tool: [#92473]
- Update Rspack development test manifest: [#92502]
- Update Rspack production test manifest: [#92503]
- CI: Use pnpm lockfile for next-stats-action: [#92488]
- Bundle skills/ directory into next/dist/skills: [#92493]
- CI: Use minimumReleaseAge in pnpm workspace files: [#92480]
- CI: Fix issue with conflicting 'engines.pnpm' field in next-stats-action: [#92533]
- Exclude use tests from react18 testing: [#92542]
- Fix React18 tests for unstable_io: [#92543]
- Perf: Add fast path to isAbsoluteUrl: [#91389]
- Perf: Don't require watchpack in production: [#91387]
- [test] Stop using deprecated
target: "es5"TypeScript compiler option: [#92458] - Perf: Use charCodeAt in removeTrailingSlash: [#91384]
- Perf: Cache regex in shouldServeStreamingMetadata: [#91388]
- [test] Ensure incomplete minimum release age isn't propagated to fixture installs: [#92568]
- test: skip .next and other build artifacts in writeFiles filter: [#92578]
- CI: Another attempt to fix pnpm versions for next-stats-action on canary: [#92550]
- test: reduce writeToDisk memory test iterations to fix CI timeout: [#92586]
- Refactor effects system: dedup/conflict detection, simplified Effect trait: [#92300]
- fix(ci): improve Docker image cache streaming throughput and arch-awareness: [#92617]
- CI: Download and run self-contained datadog-ci instead of using pnpm dlx or npx: [#92546]
- Bump swc to 63.1.1: [#92604]
- chore(turbopack): upgrade qfiler to v0.3.0-alpha.4: [#92558]
- refactor: write pages router export files directly to server/pages/: [#90018]
- fix(ci): improve Docker image caching and native build skip optimization: [#92633]
- Perf: Only instrument clientComponentLoadTimes when used: [#91385]
- Update font data: [#92704]
- [test] Stop using
baseUrl: [#92469] - bench: improve render pipeline benchmark reliability: [#92715]
- bench: add A/B branch comparison workflow to BENCHMARKING.md: [#92721]
- test: use Turborepo pack task for test isolation: [#92575]
- chore: Bump reqwest to 0.13.2: [#92713]
- Upgrade React from
404b38c7-20260408tofef12a01-20260413: [#92728] - Revert "refactor: write pages router export files directly to server/pages/": [#92733]
- Re-enable sccache: [#92746]
- chore: Use from_raw_parts for ResolvedVc::deref_vec and ResolvedVc::deref_slice: [#92749]
- Pin upload-artifact to v7.0.1 and download-artifact to v8.0.1: [#92757]
- Fix swc wasm test on canary: [#92738]
- Bump TypeScript to 6.0: [#91257]
- test: Add tests for client reference side effects: [#92774]
- refactor: remove ClientFileLogger, consolidate file logging into handleLog: [#92329]
- pr-status: Show all participants in review thread overview: [#92730]
- Perf: Fast path for trace() when opentelemetry is not enabled: [#92678]
- Share native binaries via GitHub artifacts: [#92758]
- [ci] Skip sccache on Windows runners: [#92847]
- Update Rspack production test manifest: [#92674]
- Update Rspack development test manifest: [#92673]
- [ci]: add workflow to bump canary after backport: [#92801]
- [ci] Skip Playwright system deps install on subsequent self-hosted runs: [#92893]
- CI: Remove dead yarn support from next-stats-action: [#92587]
- [ci] Cache passing test results so CI retries skip them: [#92832]
- fix accidental test duplication: [#92922]
- Refactor trace server sort to SortMode enum (execution order / value / name): [#92873]
- Perf: Simplify static metadata handling: [#92630]
- [ci]: fix backport sync script: [#92942]
- Fix flake in rewrites-manual-href-as test: [#92948]
- CI: Track SWC native binary size in PR stats comment: [#92938]
- chore: Prune list of users in labeler json: [#92984]
- [test] Deflake
shallow-routing: [#93006] - New ESLint rule:
no-location-assign-relative-destination: [#92900] - Upgrade React from
fef12a01-20260413toda9325b5-20260417: [#92945] - [ci]: remove unused workflow: [#93064]
- [ci]: remove publish token in favor of OIDC: [#93065]
- Update Rspack development test manifest: [#92959]
- [ci] Temporary disable of sccache: [#93074]
- Auto-generate AGENTS.md / CLAUDE.md in next dev: [#92910]
- [ci]: add environment to publishRelease flow: [#93093]
- Adopt pnpm catalogs for devDependencies: [#93071]
- rage-restart followup: [#92591]
- Collapse pnpm test scripts into a single helper invocation: [#93097]
- [tests]: fix cache-components.test.ts type error: [#93113]
- [ci]: cleanup labeler: [#93135]
- [ci]: switch to GitHub runners: [#93164]
- [ci]: pin rust-musl-cross: [#93176]
- [rust-deps] Update serde: [#93196]
- [rust-deps] Update tracing: [#93194]
- [ci] replace next-labeler-webhook with in-repo GitHub Action: [#93080]
- [ci] Fix auto-label workflow: [#93215]
- [test] Remove dead symlink: [#93217]
- [ci] Populate GITHUB_TOKEN for auto-labeler: [#93219]
- [ci]: move stats & CI status comment to workflow: [#93220]
- [ci] Upload preview builds directly to Vercel Blob: [#93207]
- [ci]: fix permissions on comment workflow: [#93225]
- Revert "Adopt pnpm catalogs for devDependencies": [#93226]
- [ci] Handle namespaced packages in preview builds: [#93241]
- [ci] Create test summary comment if job immediately passes: [#93236]
- [ci] Automatically start React sync when new
react@experimentalis available: [#93235] - [rust-deps] Update bytes, crc32fast, memchr, pin-project-lite, quote, rand, regex, ringmap, roaring: [#93197]
- [ci]: app-based release workflow: [#93245]
- [ci]: trigger signed release commit via API: [#93285]
- [ci]: fix release script to not strip newlines: [#93302]
- [ci]: Use macOS arm runner for intel builds: [#93330]
- ci: Fix caching of test-cargo-unit: [#93327]
- [rust-deps] Update tokio: [#93195]
- [test] Suppress build when preparing next for cache hits: [#93355]
- [test] Fix broken terminal output: [#93357]
- chore: bump postcss to 8.5.10: [#93288]
- fix a snapshot encoding error that could happen under concurrent mutation and snapshotting: [#92658]
- Only log partytown setup error once: [#93378]
- [test] Stop building fresh packages for every test: [#93380]
- [test] Preserve Playwright traces on every failure: [#93366]
- [ci] Add support for private preview builds: [#93375]
- Fix deploy tests crashing under AI coding assistants: [#93394]
- [ci]: remove PR creation from deploy test workflow: [#93400]
- Upgrade to swc 65: [#93325]
- Upgrade React from
da9325b5-20260417tof4e0d4ed-20260429: [#93457] - Bump
@vercel/ncc: [#93459] - [test] Ensure target page is compiled before navigation in instant-navs-devtools: [#93365]
- [ci] Allow configuring the base URL for preview builds: [#93464]
- [ci] Move Turbopack, Rspack and font data workflows off of
RELEASE_BOT_GITHUB_TOKEN: [#93455] - [ci] Migrate React sync off of
RELEASE_BOT_GITHUB_TOKEN: [#93456] - [ci] Create unique preview build versions for canary previews: [#93490]
- [ci] Ensure pnpm store cache is only filled when pnpm install runs: [#93508]
- [ci] Remove unused
setup-nextjs-build.ymlworkflow: [#93512] - Refactor: Decouple request store creation from
req/res: [#93499] - [ci] Clarify new preview build flow: [#93540]
- Upgrade React from
f4e0d4ed-20260429todd453071-20260506: [#93547] - perf(ecmascript): shrink JsValue 64→32 bytes: [#93106]
- [test] Pin package manager versions used: [#93592]
- [ci] Ensure graphite_ci_optimizer fails open even if github fails to fetch the action: [#93615]
- Cherry-pick ghsa commits to canary: [#93614]
- [ci] Also pin first-party GH actions: [#93609]
- CI speed improvements: [#93411]
- Proof of concept: task eviction after snapshot for turbo-tasks-backend: [#91790]
- Convert test/integration to isolated tests: [#93247]
- Repo: Add gh stack skill: [#93705]
- Fix React 18 tests: [#93763]
- Convert tests using createNext -> nextTestSetup: [#93767]
- Revert "[test] Skip flaky
cached-navigationstests": [#93798] - Upgrade React from
dd453071-20260506tod5736f09-20260507: [#93702] - Mark .agents/skills as internal so external
npx skills addhides them: [#93856] - Convert more tests from createNext -> nextTestSetup: [#93799]
- [test] split
og-apitest suite into default and standalone variants: [#93915] - Add create PR skill: [#93937]
- Enable mimalloc in benchmarks: [#93388]
- Fix Yarn berry tests: [#93962]
- Polish instant fix cards and validation messages: [#93894]
- Add backport PR skill: [#93973]
- use the action cache for passing tests: [#93954]
- @vercel/devlow-bench: 0.3.5 → 0.4.0: [#93951]
- [test] Prerendering HTTP access fallback pages with Cache Components: [#93987]
- [ci] Add an
TURBO_TASKS_AVAILABLE_PARALLELISMenvironment variable that overridesstd::thread::available_parallelismcallsites: [#93995] - ci: run Linux Playwright jobs in prebuilt Microsoft container: [#93794]
- Upgrade rustc to nightly-2026-05-15: [#94021]
- Update font data: [#94006]
- [ci] Set
TURBO_TASKS_AVAILABLE_PARALLELISMto 4 in most e2e tests: [#93996] - Add next-dev-loop and next-ppr-optimizer skills: [#93943]
- test: migrate webdriver callers to next.browser: [#93941]
- Fix pr-status job pagination: [#94049]
- [Skills] Mark backport-pr and create-pr as internal: [#94076]
- [Skills] next-dev-loop: persist login state across loops: [#94105]
- chore: release @next/rspack-core 1.0.3: [#94116]
- Revert "Revert "refactor: write pages router export files directly to server/pages/"": [#93409]
- [ci] Skip installing native binaries when fetching test timings: [#93593]
- [ci] Reserve comments for stats and tests: [#93240]
- [ci] Fix the playwright-chromium Dockerfile: [#94064]
- Upgrade React from
d5736f09-20260507to75b0945b-20260526: [#94131] - [ci] Add an AGENTS.md for GitHub Actions: [#94056]
- [ci] Resize tiny jobs in integration_tests_reusable.yml to use smaller machines: [#93886]
- [ci] Explicitly disable package-manager-cache for uses of actions/setup-node: [#93953]
- Upgrade ast-grep: [#94150]
- [Skills] next-cache-components-optimizer: clarify private-cache scope rule: [#94113]
- [ci] Increase TEST_CONCURRENCY from 8 to 12: [#94138]
- Upgrade React from
75b0945b-20260526toc0cd4d5d-20260527: [#94161] - [ci] Give the build cache in cache in build_and_deploy a more obvious name, not just a hash and run number: [#93957]
- [ci] Rename GRAPHITE_TOKEN to GRAPHITE_CI_OPTIMIZER_TOKEN: [#94166]
- [ci] Use Turbopack in non-webpack-specific e2e test jobs: [#94005]
- [test] Add test for static metadata files and
generateStaticParams: [#93465] - test: skip flaky instant-nav-panel tests: [#94196]
- test: fix next-after-app-static: [#94195]
- [ci] Update all actions/* dependencies: [#94174]
- Replace VcStorage with real TurboTasks in tests/benches : [#93955]
- [cd] Stop fetching all tags when searching parent tag: [#94302]
- chore: lint-language output only warnings and errors: [#94261]
- Disable
default-caseESLint rule for type-checked TypeScript files: [#94316] - refactor: use named arguments for StagedRenderingController: [#94345]
- Devirtualize the backend api inside of turbo_tasks and turbo-tasks-backend: [#94007]
- [tests] Use snapshots in debug-build-paths: [#94352]
- Upgrade React from
c0cd4d5d-20260527tof0dfee38-20260529: [#94245] - refactor: make stage advancing logic more generic: [#94349]
- refactor: make early/late checks stricter: [#94358]
- refactor: remove delayUntilRuntimeStage: [#94350]
- refactor: indicate which stage is the last stage in staged prerenders: [#94430]
- test: pin material-ui link fixture dependencies: [#94354]
- Reland the debug channel on native Node streams, fixed for React 18: [#94462]
- chore: reword cacheComponents jsDoc to lead with partial prerendering: [#94474]
- Upgrade React from
f0dfee38-20260529to43bcbf80-20260603: [#94440] - Revert "ci: run Linux Playwright jobs in prebuilt Microsoft container (#93794)": [#94366]
- fix(deps): bump @vercel/nft@1.10.2: [#93979]
- [ci] Switch release-next-rspack to a more explicit environment name: [#94480]
- [ci] Set
persist-credentials: falsefor all GH actions: [#94214] - Revert "[ci] Increase TEST_CONCURRENCY from 8 to 12 (#94138)": [#94517]
- [ci] Disable on-call notification if manual deploy e2e tests failed: [#94554]
- Reduce new test concurrency to five: [#94552]
- disallow reads from .next-profiles: [#94570]
- [ci] Remove dead playwright docker image creation logic: [#94576]
- [cd] Ensure release can be triggered on old branches: [#94596]
- [ci] Reduce usage of turborepo cache in
build_and_deploy.yml: [#94319] - [ci] Download fnm directly from GitHub releases and validate checksum: [#94579]
- [ci] Always upload canary tarballs from the canary branch: [#94557]
- refactor: process streaming prerenders more efficiently: [#94764]
- [ci] Allow "rerun failed jobs" to work up until 5 days for e2e deploy tests: [#94812]
- Fix stale next data API test URL: [#94815]
- Instruct agents to keep and commit the generated agent-rules block: [#94725]
- Add a message to
AGENTS.mdaboutsuper::imports.: [#94733] - chore: upgrade next-rspack to rspack 2.0: [#92222]
- [ci] Use node-version-file when we already have a repository checkout and reduce hardcoded references to node versions: [#94780]
- rust react compiler: detect and build for react 18: [#94836]
- [test] Unflake
metadata static routes cachetest: [#94796] - [test] Recover from a leftover build process on test retry: [#94797]
- Properly set response-based OTEL attributes with adapters: [#94603]
- Upgrade React from
43bcbf80-20260603tod9158919-20260615: [#94826] - [ci] Clean up references to self-hosted runners: [#94827]
- Upgrade React from
d9158919-20260615toad78e251-20260616: [#94867] - switch our test benchmark runs to release-with-assertions: [#94538]
- [ci] Remove playwright stamp file logic: [#94876]
- [cd] More robust publish pipeline: [#94622]
- [cd] Continue release train if
@next/swc-wasm-*fails to publish: [#94912] - Let LLMs create less noisy and more focused PR descriptions: [#94896]
- [ci] Only install chromium-headless-shell and not chromium: [#94882]
- Fix Instant Navs DevTools capture bugs and re-enable its test suite: [#94866]
- [test] Enable
metadata-streaming-configfor Cache Components: [#94936] - Upgrade React from
ad78e251-20260616tob1786c31-20260618: [#94951] - [ci] Update playwright to 1.61.0: [#94871]
- [cd] reduce size of npm metadata on publish: [#94953]
- Upgrade to swc 70: [#94814]
- [test] Fix failing determinism test using adapter: [#95051]
- [scripts] Write pnpm overrides for pnpm projects in pack/patch helpers: [#94747]
- Upgrade React from
b1786c31-20260618to247fbb45-20260622: [#95063] - skill(next-dev-loop): fix --session flag, agent-browser bootstrap, --headed daemon note: [#95005]
- skill(next-cache-components-adoption): tune skill to mention app router requirement: [#95069]
- [skills] Mark insight-error-page and next-rspack as internal: [#95070]
- skill(next-cache-components-adoption): clarify prereqs: [#95082]
- [cd] publish on release tags instead of branch push: [#95085]
- [ci] Make preview tarballs available while new Canaries are being published: [#95112]
- [cd] add ad-hoc preview release cut from canary: [#95086]
- [test] Reorder
hmr-intercept-routestest to avoid a reload/refresh race: [#95134] - [ci] Make automatic native binding install opt-in: [#95114]
- Restore canary version 16.3.0-canary.66 after v16.3.0-preview.4 preview release
- skill(cc-adoption): recommend next-dev-loop and add build-only path: [#95122]
- [cd] Allow forcing a release without new commits: [#95136]
- test: Remove unnecessary dynamic timestamp from instant-validation root layouts: [#95105]
- Restore canary version 16.3.0-canary.67 after v16.3.0-preview.5 preview release
- Bump Rust toolchain: [#95205]
- next-dev-loop: require agent-browser >= 0.31.1: [#95209]
- [ci] skip Datadog git metadata upload on junit upload: [#95210]
- Return APP_PAGE instead of PAGES for production Instant Navigation tests: [#95184]
- [ci] Display correct test commands when Cache Component test fail: [#95267]
- skills(cc-adoption): tighten requires, sequencing, terminology: [#95225]
- Upgrade React from
247fbb45-20260622to68631c04-20260626: [#95211] - Enhance ESLint rule
no-location-assign-relative-destination: [#93057] - test: fork select tests on partialPrefetching: [#95279]
- [ci] update relay-compiler to 21.0.1: [#95217]
- Increase the code frame width used when logging to a file.: [#95283]
- [test] Give webpack server-action-period-hash tests a larger timeout: [#95303]
- [test] Recover from a leftover build process on test retry in
build(): [#95304] - [test] Unskip more Turbopack NFT unit tests: [#95297]
- [test] Make
build-output-prerendererror ordering deterministic: [#95308] - [test] Retry the
.nextdeletion to fix anENOTEMPTYflake: [#95307] - [ci] Migrate build_and_test and pull_request_stats to use arm64 runners: [#94870]
- [ci] Add support for auth based preview build registries: [#95204]
- Upgrade React from
68631c04-20260626to92f4fda3-20260629: [#95282] - [ci] Move some test suites back to x86-64 runners to reduce pressure on our currently-limited pool of arm runners: [#95332]
- refactor: split out validateStaticShell: [#95106]
- Revert "[ci] Move some test suites back to x86-64 runners to reduce pressure on our currently-limited pool of arm runners (#95332)": [#95336]
- [ci] Add optimize-ci, changes, and fetch-test-timings jobs to the needs list for the tests-pass job: [#95339]
- [ci] Migrate some CI jobs back to x86-64, build both arm and x86-64 native binaries, include both os and architecture in native artifact names: [#95341]
- test: Improve immutable static asset tests: [#95349]
- gitignore .next-profiles: [#95256]
- Re-query deploy-test build logs until id markers appear: [#95243]
- Upgrade React from
92f4fda3-20260629toec0fca31-20260701: [#95368] - [ci] Migrate Turbopack build_and_test jobs back to arm64, leave webpack jobs as x86-64: [#95374]
- [ci] Avoid running full CI mid-stack for GH-native stacks, same as we do for Graphite: [#95218]
- [test] Park the blocking-fallback segment on a withheld param: [#95300]
- [test] Enable deploy tests for the Instant Navigation Testing API suite: [#95236]
- [cd] Replace the release package with our own GitHub release creation: [#95352]
- Make Instant Navigation Testing full-page loads work when deployed: [#95222]
- [ci] Actually migrate Turbopack jobs back to ARM: [#95386]
- Upgrade React from
ec0fca31-20260701to3508aee6-20260702: [#95410] - [ci] Disable mid-stack PR optimization for native PR stacks: [#95427]
- Collect modules with browser variants statically: [#95200]
- Split typeof-window server requires into .browser variants: [#95201]
- Type resolved
cacheLifeprofiles, dropping runtime asserts: [#95428] - Update font data: [#95441]
- [test] Unflake
cache-components-dev-streamingtest suite: [#95466] - evals: fix false-negative regex checks with the agentic LLM judge: [#95440]
- Upgrade React from
3508aee6-20260702to23def8fd-20260706: [#95532] - [ci] Add stats comment with partial stats: [#95401]
- [skills] Update gh-stack skill: [#95541]
- Upgrade to swc 72 and rust-react-compiler: [#95536]
- test: Fix service worker error test: [#95548]
- [ci] Skip apt-installed dependencies in playwright install step: [#95535]
- ci: Bump withgraphite/graphite-ci-action: [#95562]
- test: Disable service worker deploy tests for now: [#95570]
- test: Use Turbopack for 'Test new and changed tests when deployed': [#95552]
- [ci] Migrate webpack tests back to arm runners: [#95549]
- test: Fix immutable static asset deployment tests: [#95550]
- [ci] Split up large cache-components-dev-warmup test suite: [#95553]
- [ci] Split up large create-next-app/templates/matrix test: [#95555]
- Split remaining "client-node"-only modules into .browser variants: [#95366]
- Upgrade React from
23def8fd-20260706to12a4baec-20260707: [#95581] - test: Fix immutable static asset deployment tests for real: [#95600]
- [ci] Pin typescript version in tests: [#95619]
- [ci] Bump PR stats job timeout to 35 minutes: [#95592]
- [ci] split up large cache-components-errors tests: [#95623]
- [ci] Split up large rsc-build-errors development test: [#95624]
- [ci] Split up large instant-validation tests: [#95627]
- Refresh outdated agent-rules blocks on next dev and codemod upgrade: [#95470]
- Make the agent-rules block verifiable and self-upgrading: [#95467]
- Upgrade React from
12a4baec-20260707todf4bd1b4-20260708: [#95612] - Convert agent-041's blocking-data check to the agentic LLM judge: [#95630]
- Add attribute rendering benchmark: [#95621]
- Upgrade React from
df4bd1b4-20260708to5123b063-20260708: [#95642] - (TypeScript 7 Support) Add experimental TypeScript CLI backend: [#95639]
- test: allow-runtime breaks Link's Server component child detection: [#95596]
- test: skip redbox check in "static prefetch - missing suspense around search params": [#95670]
- refactor: remove unnecessary switches from StagedRenderingController: [#95383]
- Clarify AI-assisted contribution policy in PR template and AGENTS.md: [#95629]
- [test] Disable middleware-rewrites deploy test for Turbopack with adapters: [#95680]
- Update font data: [#95725]
- [test] Disable i18n-api-support deploy test for Turbopack with adapters: [#95739]
- Restore canary version 16.3.0-canary.84 after v16.3.0-preview.6 preview release
- Upgrade to swc 73: [#95731]
- Add React sync development skill: [#95620]
- Upgrade React from
5123b063-20260708to7023f501-20260714: [#95782] - Better support the CLI spinner when running the TSC CLI: [#95753]
- Only track pending imports for real promises: [#95789]
- Model async userland loading in app routes as a state machine: [#95791]
- chore: Remove stale build warning: [#95813]
- [ci] Allow running all deploy tests with builds from a private registry: [#95784]
- Run more test suites under cacheComponents flag: [#95878]
- Revert "Run more test suites under cacheComponents flag": [#95884]
- fix(agent-rules): pad managed AGENTS.md block with blank lines: [#95892]
- Back/forward set the Nav Inspector back to pending: [#95865]
- [ci] Avoid apt-get in the next-stats-action Docker image: [#95847]
- Package skills/ as a Claude Code plugin: [#95907]
- Upgrade React from
7023f501-20260714to172742b4-20260716: [#95901] - Run Rust doctests in CI: [#95911]
- [ci] Share a single browser instance across all test suites in a single job: [#95589]
- [test] Add coverage for throwing custom "use cache" cache handler: [#95984]
- Refine development validation signal handling: [#95998]
- [ci] Skip passed-tests cache steps for jobs that never run tests: [#96001]
- Upgrade React from
172742b4-20260716to81e442ea-20260721: [#96016] - Restore canary version 16.3.0-canary.92 after v16.3.0-preview.7 preview release
- chore(deps): bump sharp@0.35.3: [#95507]
- [ci] Enforce minimumReleaseAge in e2e tests that install external dependencies: [#95628]
- Rewrite next-cache-components-optimizer around a test-driven instant() loop: [#94721]
- Always consult
npm_config_user_agentfirst: [#95879] - Restore canary version 16.3.0-canary.93 after v16.3.0-preview.8 preview release
- [test] Add source-mapping coverage of React's fake stack frame scripts in
use cache: [#95945] - [test] Add failing tests for stale route handler and page cached data: [#96021]
- [test] Move the dev-only
use cachetest suite totest/development: [#96023] - Refine Cache Components and Partial Prefetching adoption skills: [#95817]
- skill(cc-adoption): add dev-only validation sweep reference: [#96057]
- Upgrade React from
81e442ea-20260721to711c445b-20260722: [#96066] - Restore canary version 16.3.0-canary.94 after v16.3.0-preview.9 preview release
- Throw when generateStaticParams returns invalid values: [#95968]
- Throw for empty or incomplete generateStaticParams results with output: export: [#95969]
- Upgrade React from
711c445b-20260722to28cd4bb0-20260723: [#96100] - Store RouteTree slots in a Map to keep slot access monomorphic: [#96168]
- Give RouteCacheEntry a single hidden class across its lifecycle: [#96164]
- [test] Unflake the
enabled-features-tracetest suite: [#96175] - Add a benchmark for dev Cache Components validation on a worker thread: [#96152]
- [internal] Add a skill for benching changes in a sandbox: [#95943]
- [test] Unflake a prefetch-related race: [#96222]
- [test] Run more test suites under cacheComponents flag, again: [#96196]
- [test] Run the navigation e2e suite under cacheComponents: [#95877]
- [test] Unflake more tests: [#96081]
- Upgrade React from
28cd4bb0-20260723to756fdd47-20260727: [#96270] - Micro-optimization for string format: [#95774]
- Count URL key length in the filesystem route cache LRU: [#96229]
- Count key length in remaining byte-budgeted LRUs: [#96231]
- Restore canary version 16.3.0-canary.99 after v16.3.0-preview.10 preview release
- Isolate local Request Insights spans from OpenTelemetry: [#96276]
- Classify Instant Insights as internal in Request Insights: [#96147]
- Upgrade React from
756fdd47-20260727to96fcba90-20260728: [#96306] - [ci] Install Node.js from the official tarball in the native-builder image: [#96298]
- [cd] Send Slack notification if publish fails: [#96304]
- Bump @types/node to 20.17.7 to fix findSourceMap type: [#96321]
- [ci] Background some steps in build_reusable to reduce setup overhead, remove unneeded lld installation: [#96195]
- Update skills for Partial Prefetching: [#96299]
- Added cache copying support for worktrees: [#95646]
- Bump postcss to 8.5.23: [#96107]
- [ci] Match the test job summary style to the PR test report comment: [#95882]
- test: reproduce empty parallel route scroll regression: [#96323]
- Upgrade React from
96fcba90-20260728to1724e9ce-20260729: [#96355] - Upgrade React from
1724e9ce-20260729to6cb4322d-20260729: [#96389] - [bench skill] Bench Edge builds of React too: [#96234]
- test: expand Cache Components metadata streaming coverage: [#96366]
- Upgrade React from
6cb4322d-20260729to0f42eac2-20260730: [#96402] - Update Rust toolchain to nightly-2026-07-29: [#96365]
- Upgrade React from
0f42eac2-20260730tocbb046ab-20260731: [#96434] - [ci] Run new/changed deploy tests asap: [#96438]
- [react-sync] Enable auto-merge on PRs: [#96442]
- Add automated code review workflow: [#96359]
- test: stabilize after() deploy revalidation checks: [#96428]
- [turbotrace] bump test version of sharp: [#96386]
- [ci] Wait for the preview tarballs before running the deploy tests: [#96527]
- test: skip hybrid not-found coverage for the legacy builder: [#96534]
- Flag newly disabled deploy tests: [#96505]
- Fix deploy test TypeScript exclusions: [#96545]
- [turbopack / next.js] Add an end-to-end test for new root detection: [#96544]
- Edits to turbopackFileSystemCache: [#96531]
Credits
Huge thanks to @denesbeck, @ztanner, @ijjk, @lllomh, @devjiwonchoi, @lukesandberg, @wbinnssmith, @sokra, @unstubbable, @timneutkens, @feedthejim, @gnoff, @abhishekmardiya, @icyJoseph, @mischnic, @mmastrac, @acdlite, @eps1lon, @JamBalaya56562, @bgw, @gaojude, @bgub, @remcohaszing, @aurorascharff, @VedantMadane, @fireairforce, @dagecko, @ctate, @banchichen, @andrewimm, @wwenrr, @TooTallNate, @hamidrezahanafi, @hamedniroomand, @sleitor, @Badbird5907, @MukundaKatta, @styfle, @SukkaW, @awo00, @christopherkindl, @GuinsooRocky, @maximecolin, @lubieowoce, @zana-abdi2002, @samselikoff, @rishishanbhag, @armando-andre, @tim123abc, @publictheta, @unclebay143, @yavorpunchev, @kakadiadarpan, @SyMind, @igorbabko, @sampoder, @StanislavKozachenko, @kristiyan-velkov, @huozhi, @RazinShafayet2007, @SJvaca30, @danyalahmed1995, @karlhorky, @MikhailStn, @ifer47, @niketchandivade, @gilest, @jahanzaib-iqbal-dev, @owenpearson, @davidgg, @fhfournier, @parkhojeong, @gaearon, @TariqulislamTuhin, @thsid, @jimmyhmiller, @Partha-Shankar, @M4cM4rco, @chippleh1392, @Pranav18M, @marcoshernanz, @manoraj, @ankurdotio, @WildChargerTV, @ZaforAbdullah, @wasim-builds, @petehunt, @DavidIlie, and @adhamfayrouzamf for helping!