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 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 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: #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: #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 and Box 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 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, and @adhamfayrouzamf for helping!