Skip to content

Conversation

@eps1lon
Copy link
Member

@eps1lon eps1lon commented Dec 13, 2025

resHeaders could be undefined at runtime. All usages accounted for that but the TS types claimed it was non-nullable.

It's now nullable and I adjusted usages to be exact.

Comment on lines -757 to -758
// @ts-expect-error custom ParsedUrl
parsedUrl: parsedDestination,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This somehow made the whole return type unsound. Once I moved the unsafe cast out of the object literal, TS started to complain about the missing resHeaders

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, any // @ts-expect-error or // @ts-ignore inside an object declaration actually marks the entire object's definition, not just the next line.

@eps1lon eps1lon marked this pull request as ready for review December 13, 2025 16:27
@eps1lon eps1lon requested a review from wyattjoh December 13, 2025 16:27
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Dec 13, 2025

Tests Passed

vercel[bot]

This comment was marked as resolved.

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Dec 13, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
buildDuration 17.5s 14.9s N/A
buildDurationCached 13.8s 10.9s N/A
nodeModulesSize 457 MB 457 MB ⚠️ +2.7 kB
nextStartRea..uration (ms) 715ms 721ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
4765.HASH.js gzip 169 B 169 B
6566-HASH.js gzip 5.4 kB 5.38 kB N/A
7740-HASH.js gzip 53.1 kB 52.4 kB N/A
8258-HASH.js gzip 4.47 kB 4.48 kB N/A
b0b1acf2-HASH.js gzip 62.3 kB 62.3 kB N/A
framework-HASH.js gzip 59.7 kB 59.7 kB N/A
main-app-HASH.js gzip 254 B 252 B N/A
main-HASH.js gzip 38.5 kB 38.8 kB ⚠️ +261 B
webpack-HASH.js gzip 1.69 kB 1.69 kB
Overall change 40.4 kB 40.6 kB ⚠️ +261 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
_app-HASH.js gzip 193 B 192 B N/A
_error-HASH.js gzip 181 B 182 B N/A
css-HASH.js gzip 335 B 336 B N/A
dynamic-HASH.js gzip 1.81 kB 1.8 kB N/A
edge-ssr-HASH.js gzip 254 B 256 B N/A
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 385 B 383 B N/A
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.5 kB 2.5 kB N/A
routerDirect..HASH.js gzip 320 B 317 B N/A
script-HASH.js gzip 386 B 384 B N/A
withRouter-HASH.js gzip 315 B 314 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.29 kB 1.29 kB
Client Build Manifests
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
_buildManifest.js gzip 737 B 735 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
index.html gzip 521 B 524 B N/A
link.html gzip 535 B 537 B N/A
withRouter.html gzip 518 B 520 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
edge-ssr.js gzip 124 kB 125 kB ⚠️ +385 B
page.js gzip 236 kB 236 kB N/A
Overall change 124 kB 125 kB ⚠️ +385 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
middleware-b..fest.js gzip 658 B 655 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 32.7 kB 32.9 kB ⚠️ +207 B
edge-runtime..pack.js gzip 846 B 846 B
Overall change 33.6 kB 33.8 kB ⚠️ +207 B
Next Runtimes
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
app-page-exp...dev.js gzip 301 kB 301 kB N/A
app-page-exp..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 301 kB 301 kB N/A
app-page-tur..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 298 kB 298 kB N/A
app-page-tur..prod.js gzip 153 kB 153 kB
app-page.run...dev.js gzip 298 kB 298 kB N/A
app-page.run..prod.js gzip 153 kB 153 kB
app-route-ex...dev.js gzip 68.6 kB 68.6 kB
app-route-ex..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.7 kB 68.7 kB
app-route-tu..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.3 kB 68.3 kB
app-route-tu..prod.js gzip 47.2 kB 47.2 kB
app-route.ru...dev.js gzip 68.2 kB 68.2 kB
app-route.ru..prod.js gzip 47.2 kB 47.2 kB
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 41 kB 41 kB
pages-api-tu..prod.js gzip 31.1 kB 31.1 kB
pages-api.ru...dev.js gzip 41 kB 41 kB
pages-api.ru..prod.js gzip 31.1 kB 31.1 kB
pages-turbo....dev.js gzip 50.5 kB 50.5 kB
pages-turbo...prod.js gzip 38 kB 38 kB
pages.runtim...dev.js gzip 50.5 kB 50.5 kB
pages.runtim..prod.js gzip 38 kB 38 kB
server.runti..prod.js gzip 59.8 kB 59.8 kB
Overall change 1.46 MB 1.46 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types Change
0.pack gzip 3.1 MB 3.11 MB ⚠️ +6.27 kB
index.pack gzip 94 kB 93.7 kB N/A
Overall change 3.1 MB 3.11 MB ⚠️ +6.27 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for _buildManifest.js
@@ -611,35 +611,35 @@ self.__BUILD_MANIFEST = (function (a, b, c) {
       numHashes: NaN,
       bitArray: [],
     },
-    "/": ["static\u002Fchunks\u002Fpages\u002Findex-8312816003c836ca.js"],
+    "/": ["static\u002Fchunks\u002Fpages\u002Findex-0eb0f30aae464b15.js"],
     "/_error": [
-      "static\u002Fchunks\u002Fpages\u002F_error-108d239ccbd01df3.js",
+      "static\u002Fchunks\u002Fpages\u002F_error-7503b65793aeda9f.js",
     ],
     "/css": [
       "static\u002Fcss\u002Fded6b86ab9cc0a1f.css",
-      "static\u002Fchunks\u002Fpages\u002Fcss-c7999ca7b397642c.js",
+      "static\u002Fchunks\u002Fpages\u002Fcss-14b4ec2febaa617d.js",
     ],
     "/dynamic": [
-      "static\u002Fchunks\u002Fpages\u002Fdynamic-1bf1b522b071e22a.js",
+      "static\u002Fchunks\u002Fpages\u002Fdynamic-24891a28ecfaf61d.js",
     ],
     "/edge-ssr": [
-      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-9f01876339e3437b.js",
+      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-f68757662e8cc4b5.js",
     ],
-    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-edae0400cfdbe933.js"],
-    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-c11320a657ec666d.js"],
+    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-25d6de8fe25c2526.js"],
+    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-34de3af84d413de3.js"],
     "/image": [
-      "static\u002Fchunks\u002F8258-9768ab794e68b1dc.js",
-      "static\u002Fchunks\u002Fpages\u002Fimage-174112e04c93dfd7.js",
+      "static\u002Fchunks\u002F6316-07d5277e1ed2f1f9.js",
+      "static\u002Fchunks\u002Fpages\u002Fimage-7218f8bad067d350.js",
     ],
-    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-69a06d3260afde67.js"],
+    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-fb9703d62b3bdf85.js"],
     "/routerDirect": [
-      "static\u002Fchunks\u002Fpages\u002FrouterDirect-eab8cdd319b4a9be.js",
+      "static\u002Fchunks\u002Fpages\u002FrouterDirect-7a0b11345ff468cf.js",
     ],
     "/script": [
-      "static\u002Fchunks\u002Fpages\u002Fscript-ae5bd9e9cf17793f.js",
+      "static\u002Fchunks\u002Fpages\u002Fscript-3fa0815377002305.js",
     ],
     "/withRouter": [
-      "static\u002Fchunks\u002Fpages\u002FwithRouter-b277df764694ea2e.js",
+      "static\u002Fchunks\u002Fpages\u002FwithRouter-608a306c0a09e667.js",
     ],
     sortedPages: [
       "\u002F",
Diff for css-HASH.js
@@ -1,31 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 4131: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
-
-    /***/ 6015: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/css",
-        function () {
-          return __webpack_require__(6854);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 6854: /***/ (
+    /***/ 1048: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -39,7 +15,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4131);
+        __webpack_require__(9541);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -58,13 +34,37 @@
 
       /***/
     },
+
+    /***/ 4641: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/css",
+        function () {
+          return __webpack_require__(1048);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9541: /***/ (module) => {
+      // extracted by mini-css-extract-plugin
+      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6015)
+      __webpack_exec__(4641)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 946: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5104);
-
-      /***/
-    },
-
-    /***/ 1036: /***/ (
+    /***/ 1266: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(946);
+        __webpack_require__(1776);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -35,12 +25,12 @@
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 4765)
-            .then(__webpack_require__.bind(__webpack_require__, 4765))
+            .e(/* import() */ 9715)
+            .then(__webpack_require__.bind(__webpack_require__, 9715))
             .then((mod) => mod.Hello),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 4765],
+            webpack: () => [/*require.resolve*/ 9715],
           },
         }
       );
@@ -67,7 +57,44 @@
       /***/
     },
 
-    /***/ 3399: /***/ (
+    /***/ 1776: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(7760);
+
+      /***/
+    },
+
+    /***/ 3749: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "LoadableContext", {
+        enumerable: true,
+        get: function () {
+          return LoadableContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(7197)
+      );
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 6535: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -109,7 +136,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(7197)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(9829);
+      const _loadablecontextsharedruntime = __webpack_require__(3749);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -342,7 +369,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 5104: /***/ (module, exports, __webpack_require__) => {
+    /***/ 7760: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -375,7 +402,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(7197)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3399)
+        __webpack_require__(6535)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -475,7 +502,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 8695: /***/ (
+    /***/ 9585: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -483,7 +510,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(1036);
+          return __webpack_require__(1266);
         },
       ]);
       if (false) {
@@ -491,40 +518,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
       /***/
     },
-
-    /***/ 9829: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-      /* __next_internal_client_entry_do_not_use__  cjs */
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "LoadableContext", {
-        enumerable: true,
-        get: function () {
-          return LoadableContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(7197)
-      );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8695)
+      __webpack_exec__(9585)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 361: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(721);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 721: /***/ (
+    /***/ 5163: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5051);
+        __webpack_require__(7269);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -67,12 +50,29 @@
       /***/
     },
 
-    /***/ 5051: /***/ (
+    /***/ 7269: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4981);
+      module.exports = __webpack_require__(2053);
+
+      /***/
+    },
+
+    /***/ 8563: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(5163);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
@@ -82,7 +82,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(361)
+      __webpack_exec__(8563)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 1705: /***/ (
+    /***/ 1271: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(2631);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 2631: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -59,30 +76,13 @@
 
       /***/
     },
-
-    /***/ 8637: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(1705);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8637)
+      __webpack_exec__(1271)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 798: /***/ (
+    /***/ 565: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/image",
+        function () {
+          return __webpack_require__(7813);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7813: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -18,8 +35,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(1329);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
-      var next_image = __webpack_require__(8258);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
+      var next_image = __webpack_require__(6316);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
       /* harmony default export */ const nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -48,30 +65,13 @@
 
       /***/
     },
-
-    /***/ 7643: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/image",
-        function () {
-          return __webpack_require__(798);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [8258, 636, 6593, 8792], () =>
-      __webpack_exec__(7643)
+    /******/ __webpack_require__.O(0, [6316, 636, 6593, 8792], () =>
+      __webpack_exec__(565)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,43 +1,36 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 4183: /***/ (module, exports, __webpack_require__) => {
+    /***/ 443: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(2457);
+
+      /***/
+    },
+
+    /***/ 2185: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "getDomainLocale", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return getDomainLocale;
+          return errorOnce;
         },
       });
-      const _normalizetrailingslash = __webpack_require__(8887);
-      const basePath =
-        /* unused pure expression or super */ null && (false || "");
-      function getDomainLocale(path, locale, locales, domainLocales) {
-        if (false) {
-        } else {
-          return false;
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=get-domain-locale.js.map
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
 
       /***/
     },
 
-    /***/ 5049: /***/ (module, exports, __webpack_require__) => {
+    /***/ 2457: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -64,17 +57,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(7197)
       );
-      const _resolvehref = __webpack_require__(3575);
-      const _islocalurl = __webpack_require__(4135);
-      const _formaturl = __webpack_require__(3050);
-      const _utils = __webpack_require__(6864);
-      const _addlocale = __webpack_require__(1789);
-      const _routercontextsharedruntime = __webpack_require__(1778);
-      const _useintersection = __webpack_require__(7210);
-      const _getdomainlocale = __webpack_require__(4183);
-      const _addbasepath = __webpack_require__(6518);
-      const _usemergedref = __webpack_require__(9011);
-      const _erroronce = __webpack_require__(5193);
+      const _resolvehref = __webpack_require__(5687);
+      const _islocalurl = __webpack_require__(7127);
+      const _formaturl = __webpack_require__(58);
+      const _utils = __webpack_require__(2080);
+      const _addlocale = __webpack_require__(5709);
+      const _routercontextsharedruntime = __webpack_require__(4770);
+      const _useintersection = __webpack_require__(3290);
+      const _getdomainlocale = __webpack_require__(4615);
+      const _addbasepath = __webpack_require__(8422);
+      const _usemergedref = __webpack_require__(9667);
+      const _erroronce = __webpack_require__(2185);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -453,82 +446,7 @@
       /***/
     },
 
-    /***/ 5193: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
-        },
-      });
-      let errorOnce = (_) => {};
-      if (false) {
-      } //# sourceMappingURL=error-once.js.map
-
-      /***/
-    },
-
-    /***/ 5529: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5049);
-
-      /***/
-    },
-
-    /***/ 6887: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1329);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5529);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      function aLink(props) {
-        return /*#__PURE__*/ (0,
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
-          children: [
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
-              children: "A Link page!",
-            }),
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
-              {
-                href: "/",
-                children: "Go to /",
-              }
-            ),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
-
-      /***/
-    },
-
-    /***/ 7210: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3290: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -541,7 +459,7 @@
         },
       });
       const _react = __webpack_require__(7197);
-      const _requestidlecallback = __webpack_require__(1785);
+      const _requestidlecallback = __webpack_require__(6809);
       const hasIntersectionObserver =
         typeof IntersectionObserver === "function";
       const observers = new Map();
@@ -653,7 +571,106 @@
       /***/
     },
 
-    /***/ 9011: /***/ (module, exports, __webpack_require__) => {
+    /***/ 4615: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "getDomainLocale", {
+        enumerable: true,
+        get: function () {
+          return getDomainLocale;
+        },
+      });
+      const _normalizetrailingslash = __webpack_require__(903);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 6745: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1329);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(443);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      function aLink(props) {
+        return /*#__PURE__*/ (0,
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+          children: [
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+              children: "A Link page!",
+            }),
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+              {
+                href: "/",
+                children: "Go to /",
+              }
+            ),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+      /***/
+    },
+
+    /***/ 7595: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(6745);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9667: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -730,30 +747,13 @@
 
       /***/
     },
-
-    /***/ 9297: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(6887);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9297)
+      __webpack_exec__(7595)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 1576: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5704);
-
-      /***/
-    },
-
-    /***/ 7881: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/routerDirect",
-        function () {
-          return __webpack_require__(9851);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 9851: /***/ (
+    /***/ 3401: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1576);
+        __webpack_require__(6702);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -62,13 +35,40 @@
 
       /***/
     },
+
+    /***/ 4787: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/routerDirect",
+        function () {
+          return __webpack_require__(3401);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 6702: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(728);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(7881)
+      __webpack_exec__(4787)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,34 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 2777: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(9272);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 8662: /***/ (
+    /***/ 6868: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4550);
+      module.exports = __webpack_require__(1190);
 
       /***/
     },
 
-    /***/ 9272: /***/ (
+    /***/ 7478: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(8662);
+        __webpack_require__(6868);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -75,13 +58,30 @@
 
       /***/
     },
+
+    /***/ 7659: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(7478);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2777)
+      __webpack_exec__(7659)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 1576: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5704);
-
-      /***/
-    },
-
-    /***/ 8478: /***/ (
+    /***/ 2528: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1576);
+        __webpack_require__(6702);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -45,7 +35,17 @@
       /***/
     },
 
-    /***/ 9505: /***/ (
+    /***/ 6702: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(728);
+
+      /***/
+    },
+
+    /***/ 9763: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -53,7 +53,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function () {
-          return __webpack_require__(8478);
+          return __webpack_require__(2528);
         },
       ]);
       if (false) {
@@ -67,7 +67,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9505)
+      __webpack_exec__(9763)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 6566-HASH.js

Diff too large to display

Diff for 7740-HASH.js
failed to diff
Diff for 8258-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Commit: 9a5c53c

@eps1lon eps1lon force-pushed the sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types branch from 3043065 to 2dac381 Compare December 14, 2025 12:15
@eps1lon eps1lon force-pushed the sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types branch from 2dac381 to 6b42b97 Compare December 15, 2025 20:02
@eps1lon eps1lon merged commit f754a00 into canary Dec 16, 2025
290 of 292 checks passed
@eps1lon eps1lon deleted the sebbie/12-13-reflect_runtime_type_of_resheaders_in_static_types branch December 16, 2025 10:21
ch4og pushed a commit to csmplay/mapban that referenced this pull request Dec 23, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [eslint-config-next](https://nextjs.org/docs/app/api-reference/config/eslint) ([source](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`16.0.7` -> `16.1.1`](https://renovatebot.com/diffs/npm/eslint-config-next/16.0.7/16.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-next/16.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-next/16.0.7/16.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vercel/next.js (eslint-config-next)</summary>

### [`v16.1.1`](https://github.com/vercel/next.js/releases/tag/v16.1.1)

[Compare Source](https://github.com/vercel/next.js/compare/v16.1.0...v16.1.1)

> \[!NOTE]
> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.

##### Core Changes

- Turbopack: Create junction points instead of symlinks on Windows ([#&#8203;87606](https://github.com/vercel/next.js/issues/87606))

##### Credits

Huge thanks to [@&#8203;sokra](https://github.com/sokra) and [@&#8203;ztanner](https://github.com/ztanner) for helping!

### [`v16.1.0`](https://github.com/vercel/next.js/releases/tag/v16.1.0)

[Compare Source](https://github.com/vercel/next.js/compare/v16.0.10...v16.1.0)

> \[!TIP]\
> **Check out our Next v16.1 [Blog Post](https://nextjs.org/blog/next-16-1) to learn more about this release.**

##### Core Changes

- fix: Rspack throw error when using ForceCompleteRuntimePlugin: [#&#8203;85221](https://github.com/vercel/next.js/issues/85221)
- fix: build CLI output not displaying Proxy (Middleware) when nodejs runtime: [#&#8203;85403](https://github.com/vercel/next.js/issues/85403)
- fix: staleTimes.static should consistently enforce a 30s minimum: [#&#8203;85479](https://github.com/vercel/next.js/issues/85479)
- \[turbopack] fix build of empty entries of pages: [#&#8203;84873](https://github.com/vercel/next.js/issues/84873)
- Cache the head separately from the route tree: [#&#8203;84724](https://github.com/vercel/next.js/issues/84724)
- Allow inspecting dev server on default port with `next dev --inspect`: [#&#8203;85037](https://github.com/vercel/next.js/issues/85037)
- Avoid proxying React modules through workUnitStore: [#&#8203;85486](https://github.com/vercel/next.js/issues/85486)
- fix: redirect should always return updated router state: [#&#8203;85533](https://github.com/vercel/next.js/issues/85533)
- Upgrade React from `b4455a6e-20251027` to `4f931700-20251029`: [#&#8203;85518](https://github.com/vercel/next.js/issues/85518)
- \[turbopack] Move generation of `cacheLife` types out of the webpack plugin and into the dev bundler directly: [#&#8203;85539](https://github.com/vercel/next.js/issues/85539)
- Ensure user-space stack frame for `'use cache'` in page/layout component: [#&#8203;85519](https://github.com/vercel/next.js/issues/85519)
- Update parallel routes in build-complete: [#&#8203;85546](https://github.com/vercel/next.js/issues/85546)
- fully remove clientSegmentCache flag: [#&#8203;85541](https://github.com/vercel/next.js/issues/85541)
- \[turbopack] Support relative paths in turbopack source maps.: [#&#8203;85146](https://github.com/vercel/next.js/issues/85146)
- Release unnecessary memory on hydration finish: [#&#8203;84967](https://github.com/vercel/next.js/issues/84967)
- Preserve interception markers in parameter types: [#&#8203;85526](https://github.com/vercel/next.js/issues/85526)
- move segment cache entries to top level segment-cache dir: [#&#8203;85542](https://github.com/vercel/next.js/issues/85542)
- Upgrade React from `4f931700-20251029` to `561ee24d-20251101`: [#&#8203;85670](https://github.com/vercel/next.js/issues/85670)
- \[devtools] Remove title from preferences: [#&#8203;85698](https://github.com/vercel/next.js/issues/85698)
- Update font data: [#&#8203;85708](https://github.com/vercel/next.js/issues/85708)
- Don't invalidate hot reloader excessively during dev server boot: [#&#8203;85732](https://github.com/vercel/next.js/issues/85732)
- \[codemod] fix: next-lint-to-eslint-cli did not handle `'next'` plugin: [#&#8203;85749](https://github.com/vercel/next.js/issues/85749)
- Upgrade React from `561ee24d-20251101` to `67f7d47a-20251103`: [#&#8203;85762](https://github.com/vercel/next.js/issues/85762)
- Tracing: Fix memory leak in span map: [#&#8203;85529](https://github.com/vercel/next.js/issues/85529)
- Fix documentation typo in refresh function: [#&#8203;85696](https://github.com/vercel/next.js/issues/85696)
- fix: eslint-config-next types was exporting to dist/src: [#&#8203;85768](https://github.com/vercel/next.js/issues/85768)
- Upgrade React from `67f7d47a-20251103` to `f646e8ff-20251104`: [#&#8203;85772](https://github.com/vercel/next.js/issues/85772)
- remove unused RSC payload property: [#&#8203;85746](https://github.com/vercel/next.js/issues/85746)
- \[runtime prefetching]: fix runtime prefetching when deployed: [#&#8203;85595](https://github.com/vercel/next.js/issues/85595)
- Turbopack: next build --analyze: [#&#8203;85197](https://github.com/vercel/next.js/issues/85197)
- Build: Log amount of workers during static generation: [#&#8203;85706](https://github.com/vercel/next.js/issues/85706)
- Upgrade React from `f646e8ff-20251104` to `dd048c3b-20251105`: [#&#8203;85819](https://github.com/vercel/next.js/issues/85819)
- Sync devFallbackParams when generateStaticParams change: [#&#8203;85741](https://github.com/vercel/next.js/issues/85741)
- chore: upgrade rspack 1.6.0: [#&#8203;84210](https://github.com/vercel/next.js/issues/84210)
- \[mcp] get\_routes mcp tool: [#&#8203;85773](https://github.com/vercel/next.js/issues/85773)
- Split each path param into a separate cache key : [#&#8203;85758](https://github.com/vercel/next.js/issues/85758)
- \[turbopack] change server source maps in production to use relative paths: [#&#8203;85576](https://github.com/vercel/next.js/issues/85576)
- fix: skip collecting metadata for app-error in webpack: [#&#8203;85892](https://github.com/vercel/next.js/issues/85892)
- fix: support root span attributes with a custom server: [#&#8203;85521](https://github.com/vercel/next.js/issues/85521)
- fix isDynamicRSC condition when deployed: [#&#8203;85919](https://github.com/vercel/next.js/issues/85919)
- \[turbopack] Make it possible to synchronously access native bindings: [#&#8203;85787](https://github.com/vercel/next.js/issues/85787)
- Upgrade React from `dd048c3b-20251105` to `fa50caf5-20251107`: [#&#8203;85906](https://github.com/vercel/next.js/issues/85906)
- Fix telemetry event loss on build failures and server shutdown: [#&#8203;85867](https://github.com/vercel/next.js/issues/85867)
- Remove one stack frame from `'use cache'` call stacks: [#&#8203;85966](https://github.com/vercel/next.js/issues/85966)
- Upgrade React from `fa50caf5-20251107` to `52684925-20251110`: [#&#8203;85980](https://github.com/vercel/next.js/issues/85980)
- Deployment adapter: fix metadata for "/" route: [#&#8203;85820](https://github.com/vercel/next.js/issues/85820)
- Enable React's default Transition indicator behind a flag: [#&#8203;86000](https://github.com/vercel/next.js/issues/86000)
- update routes-manifest to include whether app has pages routes: [#&#8203;86051](https://github.com/vercel/next.js/issues/86051)
- Fix 404 responses for interception routes with missing children slots: [#&#8203;85779](https://github.com/vercel/next.js/issues/85779)
- Build: Share StaticWorker between static check and static generation: [#&#8203;85860](https://github.com/vercel/next.js/issues/85860)
- \[devtool] highlight all link in error message: [#&#8203;86084](https://github.com/vercel/next.js/issues/86084)
- fix(nodejs-middleware): await for body cloning to be properly finalized: [#&#8203;85418](https://github.com/vercel/next.js/issues/85418)
- Add build-time validation to detect ambiguous app routes: [#&#8203;85834](https://github.com/vercel/next.js/issues/85834)
- Don't use inspector frontend URLs from other processes: [#&#8203;86082](https://github.com/vercel/next.js/issues/86082)
- Upgrade React from `52684925-20251110` to `93fc5740-20251113`: [#&#8203;86103](https://github.com/vercel/next.js/issues/86103)
- \[next-upgrade] Force install of dev dependencies: [#&#8203;86119](https://github.com/vercel/next.js/issues/86119)
- Fix telemetry event race condition in webpack worker for [@&#8203;vercel/og](https://github.com/vercel/og) detection: [#&#8203;86145](https://github.com/vercel/next.js/issues/86145)
- Turbopack: Add bundle analyzer UI to next build --experimental-analyze: [#&#8203;85788](https://github.com/vercel/next.js/issues/85788)
- Upgrade React from `93fc5740-20251113` to `fb2177c1-20251114`: [#&#8203;86155](https://github.com/vercel/next.js/issues/86155)
- fix: cacheMaxMemorySize should not disable dev HMR cache: [#&#8203;86164](https://github.com/vercel/next.js/issues/86164)
- Fix streaming server actions: [#&#8203;86148](https://github.com/vercel/next.js/issues/86148)
- Allow attaching a debugger when `next dev` is already running: [#&#8203;86083](https://github.com/vercel/next.js/issues/86083)
- Introduce `next analyze`: a built-in bundle analyzer for Turbopack: [#&#8203;85915](https://github.com/vercel/next.js/issues/85915)
- Turbopack: add `experimental.turbopackClient/ServerSideNestedAsyncChunking`: [#&#8203;85827](https://github.com/vercel/next.js/issues/85827)
- next analyze: annotate polyfill modules in UI: [#&#8203;86062](https://github.com/vercel/next.js/issues/86062)
- Stop adding additional padding to Next.js logs: [#&#8203;86139](https://github.com/vercel/next.js/issues/86139)
- \[next-upgrade] Add `next upgrade`: [#&#8203;86120](https://github.com/vercel/next.js/issues/86120)
- Fix prerendering of interception routes with generateStaticParams: [#&#8203;85835](https://github.com/vercel/next.js/issues/85835)
- \[Segment Cache] Re-implement refresh reducer: [#&#8203;84426](https://github.com/vercel/next.js/issues/84426)
- Upgrade React from `fb2177c1-20251114` to `0972e239-20251118`: [#&#8203;86263](https://github.com/vercel/next.js/issues/86263)
- `next analyze`: Make ipv6 server links valid and normalize localhost: [#&#8203;86219](https://github.com/vercel/next.js/issues/86219)
- fix: prevent fetch abort errors propagating to user error boundaries: [#&#8203;86277](https://github.com/vercel/next.js/issues/86277)
- chore(turbopack-node): remove some outdated codes: [#&#8203;86111](https://github.com/vercel/next.js/issues/86111)
- \[devtools] Ensure Chrome DevTools workspace can connect with proxy rewrites: [#&#8203;86289](https://github.com/vercel/next.js/issues/86289)
- Fix log log alignment in spinners: [#&#8203;86298](https://github.com/vercel/next.js/issues/86298)
- fix: Rename proxy.js to middleware.js in NFT file: [#&#8203;86214](https://github.com/vercel/next.js/issues/86214)
- Turbopack: allow trace level tracing: [#&#8203;86255](https://github.com/vercel/next.js/issues/86255)
- Allow SSR to finish microtasky work before flushing: [#&#8203;86311](https://github.com/vercel/next.js/issues/86311)
- Turbopack: fix passing project options from napi: [#&#8203;86256](https://github.com/vercel/next.js/issues/86256)
- \[Cache Components] Atomic setTimeouts: [#&#8203;86093](https://github.com/vercel/next.js/issues/86093)
- Turbopack: add experimental.turbopackInputSourceMaps and respect serverSourceMaps: [#&#8203;86340](https://github.com/vercel/next.js/issues/86340)
- \[Cache Components] Discriminate static shell validation errors by type: [#&#8203;85747](https://github.com/vercel/next.js/issues/85747)
- Turbopack: add NEXT\_TURBOPACK\_WRITE\_ROUTES\_HASHES\_MANIFEST to write hashes into manifest: [#&#8203;86257](https://github.com/vercel/next.js/issues/86257)
- Add reasons for some server-external-packages: [#&#8203;86254](https://github.com/vercel/next.js/issues/86254)
- Send dynamic validation errors to browser via WebSocket: [#&#8203;85818](https://github.com/vercel/next.js/issues/85818)
- Delete un-used prefetch outputs with PPR: [#&#8203;86100](https://github.com/vercel/next.js/issues/86100)
- Revert "Turbopack: add bundle-analyzer to versioning and add dependen…: [#&#8203;86394](https://github.com/vercel/next.js/issues/86394)
- Turbopack: add bundle-analyzer to versioning and add dependency: [#&#8203;86355](https://github.com/vercel/next.js/issues/86355)
- fix issue -  [#&#8203;86365](https://github.com/vercel/next.js/issues/86365): [#&#8203;86366](https://github.com/vercel/next.js/issues/86366)
- Turbopack: fix import chain by determining depth locally per route: [#&#8203;86350](https://github.com/vercel/next.js/issues/86350)
- Use JSONC for default server-external-packages: [#&#8203;86252](https://github.com/vercel/next.js/issues/86252)
- add debug logs to onSegmentPrerenderError: [#&#8203;86358](https://github.com/vercel/next.js/issues/86358)
- Skip request if "full" prefetch is already pending: [#&#8203;86405](https://github.com/vercel/next.js/issues/86405)
- fix: Rename proxy.js to middleware.js in NFT file ([#&#8203;86214](https://github.com/vercel/next.js/issues/86214))
- fix: prevent fetch abort errors propagating to user error boundaries ([#&#8203;86277](https://github.com/vercel/next.js/issues/86277))
- Turbopack: fix passing project options from napi ([#&#8203;86256](https://github.com/vercel/next.js/issues/86256))
- Eslint: Improve Google Tag manager third parties message: [#&#8203;51903](https://github.com/vercel/next.js/issues/51903)
- \[ts-plugin] keep showing the types in the function body: [#&#8203;86273](https://github.com/vercel/next.js/issues/86273)
- \[turbopack] Enable the filesystem cache for dev in canary builds: [#&#8203;85940](https://github.com/vercel/next.js/issues/85940)
- docs: fix typos in packages: [#&#8203;82508](https://github.com/vercel/next.js/issues/82508)
- Turbopack: Expose an environment variable for exposing the `detail` field of issues: [#&#8203;86518](https://github.com/vercel/next.js/issues/86518)
- Turbopack: inner graph tree shaking: [#&#8203;85973](https://github.com/vercel/next.js/issues/85973)
- \[next-upgrade] Fall back to `npx` if `yarn dlx` is not available: [#&#8203;86384](https://github.com/vercel/next.js/issues/86384)
- Update font data: [#&#8203;86521](https://github.com/vercel/next.js/issues/86521)
- Convert any export from a `'use cache'` module to a cache function: [#&#8203;86014](https://github.com/vercel/next.js/issues/86014)
- fix(nodejs-middleware): await for body cloning to be properly finalized ([#&#8203;85418](https://github.com/vercel/next.js/issues/85418))
- Fix stale dev types causing build failure after route deletion: [#&#8203;86489](https://github.com/vercel/next.js/issues/86489)
- bump the browserslist version to silence a warning in CI ([#&#8203;86625](https://github.com/vercel/next.js/issues/86625))
- add bundle analyzer as dev dependency to next: [#&#8203;86497](https://github.com/vercel/next.js/issues/86497)
- Remove obsolete `setReferenceManifestsSingleton` call: [#&#8203;86574](https://github.com/vercel/next.js/issues/86574)
- Add flag to show ignore listed frames: [#&#8203;86285](https://github.com/vercel/next.js/issues/86285)
- Add alinea to server-external-packages.json: [#&#8203;55006](https://github.com/vercel/next.js/issues/55006)
- Fix error logging for `'use cache'` runtime errors in production: [#&#8203;86500](https://github.com/vercel/next.js/issues/86500)
- Upgrade React from `8ac5f4eb-20251119` to `fd524fe0-20251121`: [#&#8203;86473](https://github.com/vercel/next.js/issues/86473)
- Add "[@&#8203;zenstackhq/runtime](https://github.com/zenstackhq/runtime)" to server-external-packages.json: [#&#8203;54829](https://github.com/vercel/next.js/issues/54829)
- \[Cache Components] Ensure cache misses always cause a restart in dev: [#&#8203;86583](https://github.com/vercel/next.js/issues/86583)
- bump the browserslist version to silence a warning in CI: [#&#8203;86625](https://github.com/vercel/next.js/issues/86625)
- Turbopack: import to `char` not replaced: [#&#8203;86573](https://github.com/vercel/next.js/issues/86573)
- Revert "add bundle analyzer as dev dependency to next ([#&#8203;86497](https://github.com/vercel/next.js/issues/86497))": [#&#8203;86672](https://github.com/vercel/next.js/issues/86672)
- Handle cross-page client reference contamination in development: [#&#8203;86591](https://github.com/vercel/next.js/issues/86591)
- Match behavior of baseline-browser-mapping with caniuse-lite: [#&#8203;86653](https://github.com/vercel/next.js/issues/86653)
- Turbopack: don't generateBuildId in dev: [#&#8203;86581](https://github.com/vercel/next.js/issues/86581)
- \[devtool] unify the bundler field: [#&#8203;86514](https://github.com/vercel/next.js/issues/86514)
- Turbopack: normalize distDir separators: [#&#8203;86697](https://github.com/vercel/next.js/issues/86697)
- Cover org package external in externals-transitive test: [#&#8203;86691](https://github.com/vercel/next.js/issues/86691)
- \[turbopack] Enable filesystem cache by default for development: [#&#8203;85975](https://github.com/vercel/next.js/issues/85975)
- Log generate params duration in dev: [#&#8203;86726](https://github.com/vercel/next.js/issues/86726)
- \[CC] Fix hanging dynamic promise when abandoning render: [#&#8203;86690](https://github.com/vercel/next.js/issues/86690)
- Convert Windows paths as well when reading sourcemap: [#&#8203;86723](https://github.com/vercel/next.js/issues/86723)
- Deterministic functions-config-manifest.json: [#&#8203;86736](https://github.com/vercel/next.js/issues/86736)
- Abstract deployment id access into module: [#&#8203;86727](https://github.com/vercel/next.js/issues/86727)
- Deterministically order pages in the `MappedPages`  structure: [#&#8203;86744](https://github.com/vercel/next.js/issues/86744)
- \[turbopack] move edge entry wrapper to build template: [#&#8203;86699](https://github.com/vercel/next.js/issues/86699)
- Properly type ComponentMod: [#&#8203;86765](https://github.com/vercel/next.js/issues/86765)
- Properly type edge handler fn: [#&#8203;86766](https://github.com/vercel/next.js/issues/86766)
- Remove unused Server.responseCache: [#&#8203;86768](https://github.com/vercel/next.js/issues/86768)
- \[Cache Components] Fast setImmediate: [#&#8203;86018](https://github.com/vercel/next.js/issues/86018)
- \[devtool] make the draggable content selective: [#&#8203;86816](https://github.com/vercel/next.js/issues/86816)
- Create server module map proxy only once: [#&#8203;86750](https://github.com/vercel/next.js/issues/86750)
- fix(next/image): add `?dpl` query string for local images (without static import): [#&#8203;86485](https://github.com/vercel/next.js/issues/86485)
- fix(next/image): handle `?dpl` for src without protocol: [#&#8203;86836](https://github.com/vercel/next.js/issues/86836)
- Upgrade React from `7dc903cd-20251203` to `66ae640b-20251204`: [#&#8203;86843](https://github.com/vercel/next.js/issues/86843)
- Upgrade React from `66ae640b-20251204` to `378973b3-20251205`: [#&#8203;86852](https://github.com/vercel/next.js/issues/86852)
- Turbopack: remove pages router double template: [#&#8203;86842](https://github.com/vercel/next.js/issues/86842)
- Introduce NextConfigRuntime: [#&#8203;86812](https://github.com/vercel/next.js/issues/86812)
- Generate required-server-files before prerendering: [#&#8203;86830](https://github.com/vercel/next.js/issues/86830)
- Update react version in cna templates ([#&#8203;86950](https://github.com/vercel/next.js/issues/86950))
- Include nextConfig in edge runtime via separate manifest: [#&#8203;86769](https://github.com/vercel/next.js/issues/86769)
- Fix required-server-files: [#&#8203;86875](https://github.com/vercel/next.js/issues/86875)
- Add pino-related packages to server-external-packages: [#&#8203;86884](https://github.com/vercel/next.js/issues/86884)
- Fix validateTurboNextConfig running for next start: [#&#8203;86886](https://github.com/vercel/next.js/issues/86886)
- Add experimental.runtimeServerDeploymentId: [#&#8203;86865](https://github.com/vercel/next.js/issues/86865)
- \[turbopack] Mark packages as side effect free when local analysis determines that they are.: [#&#8203;86398](https://github.com/vercel/next.js/issues/86398)
- Fix: Missing null check in LRU cleanup: [#&#8203;87124](https://github.com/vercel/next.js/issues/87124)
- improve segment cache lru typesafety: [#&#8203;87129](https://github.com/vercel/next.js/issues/87129)
- \[Segment Cache] Detect third-party redirect + static export w/ HEAD request: [#&#8203;85910](https://github.com/vercel/next.js/issues/85910)
- Fix: External redirect swallowed by Next.js: [#&#8203;87121](https://github.com/vercel/next.js/issues/87121)
- Fix error propagation and teardown in Server Action request decoding: [#&#8203;87193](https://github.com/vercel/next.js/issues/87193)
- Fix interception routes with trailing slash configuration: [#&#8203;86787](https://github.com/vercel/next.js/issues/86787)
- \[ci] Stop building when creating release: [#&#8203;87178](https://github.com/vercel/next.js/issues/87178)
- fix: otel error spans from streamed responses: [#&#8203;86955](https://github.com/vercel/next.js/issues/86955)
- Refactor: Unify history traversal with other nav types: [#&#8203;87128](https://github.com/vercel/next.js/issues/87128)
- Create initial tree using same function as navigations: [#&#8203;87147](https://github.com/vercel/next.js/issues/87147)
- Re-implement hmr-refresh in terms of refresh: [#&#8203;87135](https://github.com/vercel/next.js/issues/87135)
- Delete old navigation response handling implementation: [#&#8203;87149](https://github.com/vercel/next.js/issues/87149)
- Reflect runtime type of `resHeaders` in static types: [#&#8203;87145](https://github.com/vercel/next.js/issues/87145)
- \[turbopack] Flag `turbopackInferModuleSideEffects` so it is only enabled in canary builds: [#&#8203;87215](https://github.com/vercel/next.js/issues/87215)
- \[turbopack] update warning message in the bundle analyzer: [#&#8203;87255](https://github.com/vercel/next.js/issues/87255)
- chore: update rspack 1.6.5: [#&#8203;86853](https://github.com/vercel/next.js/issues/86853)
- Update font data: [#&#8203;87259](https://github.com/vercel/next.js/issues/87259)
- bundle-analyzer: make running the web server default: [#&#8203;87258](https://github.com/vercel/next.js/issues/87258)
- bundle analyzer: remove custom output option: [#&#8203;87267](https://github.com/vercel/next.js/issues/87267)
- Ensure constructor for `useSearchParams` can be imported for `instanceof` checks: [#&#8203;87269](https://github.com/vercel/next.js/issues/87269)
- Upgrade React from `b45bb335-20251211` to `f93b9fd4-20251217`: [#&#8203;87281](https://github.com/vercel/next.js/issues/87281)
- feat: use Rspack persistent cache by default: [#&#8203;81399](https://github.com/vercel/next.js/issues/81399)
- Move next-env.d.ts to dist dir: [#&#8203;86752](https://github.com/vercel/next.js/issues/86752)
- Revert "Move next-env.d.ts to dist dir": [#&#8203;87311](https://github.com/vercel/next.js/issues/87311)

##### Example Changes

- Chore: Update with-supabase example to Next.js 16: [#&#8203;86105](https://github.com/vercel/next.js/issues/86105)
- docs: add example for enabling both AVIF and WebP image formats for better image optimization: [#&#8203;86191](https://github.com/vercel/next.js/issues/86191)
- examples: fix typos: [#&#8203;82506](https://github.com/vercel/next.js/issues/82506)
- chore(examples): remove `with-windicss` example: [#&#8203;81846](https://github.com/vercel/next.js/issues/81846)
- examples: fix typos in cms-agilitycms: [#&#8203;82504](https://github.com/vercel/next.js/issues/82504)
- Turbopack: Improve the description on InvalidLoaderRuleConditionIssue: [#&#8203;87008](https://github.com/vercel/next.js/issues/87008)

##### Misc Changes

- chore: Add `opt-level = s` for not frequently used crates: [#&#8203;85426](https://github.com/vercel/next.js/issues/85426)
- \[test] Deflake cache-components-allow-otel-spans: [#&#8203;85466](https://github.com/vercel/next.js/issues/85466)
- \[test] Move remaining `experimental.cacheLife`: [#&#8203;85467](https://github.com/vercel/next.js/issues/85467)
- Turbopack: chore: Remove mopa dependency in turbo-tasks (2nd attempt): [#&#8203;85286](https://github.com/vercel/next.js/issues/85286)
- Update Proxy docs: [#&#8203;85439](https://github.com/vercel/next.js/issues/85439)
- \[CNA] Do not prompt for Turbopack: [#&#8203;85404](https://github.com/vercel/next.js/issues/85404)
- Clean up new release process: [#&#8203;85458](https://github.com/vercel/next.js/issues/85458)
- Update E2E tests workflow: [#&#8203;85485](https://github.com/vercel/next.js/issues/85485)
- Update E2E deploy tests manifest: [#&#8203;85483](https://github.com/vercel/next.js/issues/85483)
- docs: example are incorrect async function exports only: [#&#8203;85453](https://github.com/vercel/next.js/issues/85453)
- \[test] Handle CLI assertions where no "Compiling..." log is present: [#&#8203;85499](https://github.com/vercel/next.js/issues/85499)
- \[test] Speed up refresh test: [#&#8203;85505](https://github.com/vercel/next.js/issues/85505)
- \[test] Add test cases for dynamic caches without suspense boundaries: [#&#8203;85500](https://github.com/vercel/next.js/issues/85500)
- docs: Routes are wrapped w/ Activity in Cache Components: [#&#8203;85309](https://github.com/vercel/next.js/issues/85309)
- docs: GET handler behavior under cache components: [#&#8203;85389](https://github.com/vercel/next.js/issues/85389)
- \[test] Avoid needless start/stop from using `createSandbox`: [#&#8203;85507](https://github.com/vercel/next.js/issues/85507)
- \[test] Use `--debug-build-paths` instead of `NEXT_PRIVATE_APP_PATHS`: [#&#8203;85504](https://github.com/vercel/next.js/issues/85504)
- docs: revalidateTag requires second argument: [#&#8203;85284](https://github.com/vercel/next.js/issues/85284)
- Refactor GTM implementation to support google tag gateway: [#&#8203;81011](https://github.com/vercel/next.js/issues/81011)
- Update Rspack production test manifest: [#&#8203;85494](https://github.com/vercel/next.js/issues/85494)
- Update Rspack development test manifest: [#&#8203;85495](https://github.com/vercel/next.js/issues/85495)
- \[docs] Fix a typo: [#&#8203;85492](https://github.com/vercel/next.js/issues/85492)
- \[test] Regenerate tsconfig.json files: [#&#8203;85515](https://github.com/vercel/next.js/issues/85515)
- \[Turbopack] clean up `completion.rs` a bit: [#&#8203;84863](https://github.com/vercel/next.js/issues/84863)
- \[test] Remove `maxRetries` and `hardError` parameters: [#&#8203;85536](https://github.com/vercel/next.js/issues/85536)
- Turbopack: remove the .into() alias to .cell(): [#&#8203;85516](https://github.com/vercel/next.js/issues/85516)
- \[test] Consolidate identical snapshots across different bundlers: [#&#8203;85532](https://github.com/vercel/next.js/issues/85532)
- \[turbopack] Change where `cell`s are created in `resolve_raw` to make cell allocation order deterministic.: [#&#8203;85525](https://github.com/vercel/next.js/issues/85525)
- Turbopack: Make tasks deterministic: [#&#8203;85524](https://github.com/vercel/next.js/issues/85524)
- \[test] Separate act and assertions: [#&#8203;85508](https://github.com/vercel/next.js/issues/85508)
- \[test] `assert*` -> `waitFor*` when the util is not instant: [#&#8203;85450](https://github.com/vercel/next.js/issues/85450)
- Turbopack: move whole\_app\_module\_graphs to top level: [#&#8203;84897](https://github.com/vercel/next.js/issues/84897)
- \[test] Bail on sending requests to Next.js instance if it's no longer available: [#&#8203;85557](https://github.com/vercel/next.js/issues/85557)
- \[test] Deflake tests comparing two random numbers: [#&#8203;85571](https://github.com/vercel/next.js/issues/85571)
- \[test] Disallow custom `RegExp`-like implementations in `check`: [#&#8203;85537](https://github.com/vercel/next.js/issues/85537)
- \[test] Deflake prerender suite: [#&#8203;85563](https://github.com/vercel/next.js/issues/85563)
- Turbopack: chore: Remove some dead MagicAny serialization code from turbo\_tasks::value: [#&#8203;85577](https://github.com/vercel/next.js/issues/85577)
- \[test]: fix broken scroll restoration test: [#&#8203;85599](https://github.com/vercel/next.js/issues/85599)
- \[test] Deflake nested `after()` tests: [#&#8203;85566](https://github.com/vercel/next.js/issues/85566)
- \[test] Stop installing unused dependencies: [#&#8203;85569](https://github.com/vercel/next.js/issues/85569)
- \[test] Consider `test/integration/` in flake detection tests: [#&#8203;85590](https://github.com/vercel/next.js/issues/85590)
- Turbopack: more checks on verify\_serialization: [#&#8203;84952](https://github.com/vercel/next.js/issues/84952)
- Turbopack: add track\_caller to improve panics: [#&#8203;85565](https://github.com/vercel/next.js/issues/85565)
- Turbopack: add verify\_determinism feature to check if tasks are deterministic: [#&#8203;85559](https://github.com/vercel/next.js/issues/85559)
- docs: cache life rework: [#&#8203;85224](https://github.com/vercel/next.js/issues/85224)
- Turbopack: fix hanging dev server and builds with fs cache: [#&#8203;85606](https://github.com/vercel/next.js/issues/85606)
- Turbopack: Fix compound assignment expression evaluation ([#&#8203;85478](https://github.com/vercel/next.js/issues/85478)): [#&#8203;85593](https://github.com/vercel/next.js/issues/85593)
- Turbopack: fix Scope holding Arc too long: [#&#8203;85611](https://github.com/vercel/next.js/issues/85611)
- \[ci] Improve change detection logic in `run-for-change` script: [#&#8203;85619](https://github.com/vercel/next.js/issues/85619)
- \[test] Ignore in deploy tests if a child process isn't available: [#&#8203;85636](https://github.com/vercel/next.js/issues/85636)
- Turbopack: add size\_hint and len for Chunk iterator: [#&#8203;85622](https://github.com/vercel/next.js/issues/85622)
- \[test]: move resume-data-cache to e2e test: [#&#8203;85647](https://github.com/vercel/next.js/issues/85647)
- Update Rspack development test manifest: [#&#8203;85662](https://github.com/vercel/next.js/issues/85662)
- Update Rspack production test manifest: [#&#8203;85661](https://github.com/vercel/next.js/issues/85661)
- Update Rspack production test manifest: [#&#8203;85688](https://github.com/vercel/next.js/issues/85688)
- Update Rspack development test manifest: [#&#8203;85689](https://github.com/vercel/next.js/issues/85689)
- \[test] Deflake root-optional-revalidate: [#&#8203;85584](https://github.com/vercel/next.js/issues/85584)
- docs: fix generateImageMetadata example to use normal params object: [#&#8203;85658](https://github.com/vercel/next.js/issues/85658)
- Turbopack: Upgrade image crate: [#&#8203;85084](https://github.com/vercel/next.js/issues/85084)
- docs: update multi sitemap argumenmt type: [#&#8203;85701](https://github.com/vercel/next.js/issues/85701)
- \[test] Move all files to .ts (6/6): [#&#8203;85641](https://github.com/vercel/next.js/issues/85641)
- Turbopack: add a batch add method to the storage: [#&#8203;84270](https://github.com/vercel/next.js/issues/84270)
- docs: recommend reverse-proxy when self-hosting: [#&#8203;85650](https://github.com/vercel/next.js/issues/85650)
- \[test] Deflake prefetching.stale-times: [#&#8203;85733](https://github.com/vercel/next.js/issues/85733)
- \[test] Deflake custom cache handler test: [#&#8203;85610](https://github.com/vercel/next.js/issues/85610)
- \[test] Allow CLI integration test to be retryable: [#&#8203;85586](https://github.com/vercel/next.js/issues/85586)
- docs: update docs to mention ESLint as default: [#&#8203;85740](https://github.com/vercel/next.js/issues/85740)
- docs(next.config): this docs should remove ".mts" is not supported.: [#&#8203;85716](https://github.com/vercel/next.js/issues/85716)
- Turbopack: cleanup StyleSheetLike: [#&#8203;85718](https://github.com/vercel/next.js/issues/85718)
- Turbopack: disable tree shaking for tracing: [#&#8203;85722](https://github.com/vercel/next.js/issues/85722)
- \[test] Move all files to .ts (3/6): [#&#8203;85638](https://github.com/vercel/next.js/issues/85638)
- \[test] Move all files to .ts (2/6): [#&#8203;85637](https://github.com/vercel/next.js/issues/85637)
- \[test] Move all files to .ts (1/6): [#&#8203;85634](https://github.com/vercel/next.js/issues/85634)
- docs: generateSitemap passes id as promise: [#&#8203;85767](https://github.com/vercel/next.js/issues/85767)
- \[test] Move all files to .ts (4/6): [#&#8203;85639](https://github.com/vercel/next.js/issues/85639)
- docs: disclosure on path-to-regexp: [#&#8203;85629](https://github.com/vercel/next.js/issues/85629)
- chore: update rspack binding to 1.6.0: [#&#8203;85717](https://github.com/vercel/next.js/issues/85717)
- Turbopack: trace worker\_threads worker entry: [#&#8203;85734](https://github.com/vercel/next.js/issues/85734)
- Update Rspack development test manifest: [#&#8203;85761](https://github.com/vercel/next.js/issues/85761)
- Turbopack: chore: Remove `extern crate` and `macro_use` syntax: [#&#8203;85778](https://github.com/vercel/next.js/issues/85778)
- \[turbopack] Drop duration and allocation tracking from CaptureFuture: [#&#8203;85534](https://github.com/vercel/next.js/issues/85534)
- Turbopack: chore: Remove dead RouteMatcher stuff: [#&#8203;85784](https://github.com/vercel/next.js/issues/85784)
- docs: fresh up getting started 00: [#&#8203;85736](https://github.com/vercel/next.js/issues/85736)
- Turbopack: chore: Remove the serde\_regex dependency, which wasn't very heavily used: [#&#8203;85578](https://github.com/vercel/next.js/issues/85578)
- Turbopack: use batch add in connect children: [#&#8203;85623](https://github.com/vercel/next.js/issues/85623)
- \[test] Move all files to .ts (5/6): [#&#8203;85640](https://github.com/vercel/next.js/issues/85640)
- \[test] Deflake legacy-link-behavior: [#&#8203;85805](https://github.com/vercel/next.js/issues/85805)
- Resolve request ID confusion: [#&#8203;85809](https://github.com/vercel/next.js/issues/85809)
- Turbopack: use batch add to add initial followers: [#&#8203;85624](https://github.com/vercel/next.js/issues/85624)
- Turbopack: chore: Remove dead experimental.ppr struct field: [#&#8203;85792](https://github.com/vercel/next.js/issues/85792)
- Turbopack: chore: Avoid string clones in Glob::parse by using RcStr: [#&#8203;85579](https://github.com/vercel/next.js/issues/85579)
- Update Rspack production test manifest: [#&#8203;85795](https://github.com/vercel/next.js/issues/85795)
- docs: getting started updates 01: [#&#8203;85750](https://github.com/vercel/next.js/issues/85750)
- chore: Update patricia\_tree dependency, remove manual serde impls: [#&#8203;85785](https://github.com/vercel/next.js/issues/85785)
- docs: keywords in system reqs and add browserslist: [#&#8203;85838](https://github.com/vercel/next.js/issues/85838)
- Honour `NEXT_TEST_PREFER_OFFLINE` in `install-native.mjs`: [#&#8203;85850](https://github.com/vercel/next.js/issues/85850)
- Turbopack: chore: Update anyhow, remove old backtrace feature: [#&#8203;85844](https://github.com/vercel/next.js/issues/85844)
- Turbopack: Remove some dead (or useless) code from `next-core/src/next_client_reference/visit_client_reference.rs`: [#&#8203;85843](https://github.com/vercel/next.js/issues/85843)
- sort dependencies for smaller diffs: [#&#8203;82291](https://github.com/vercel/next.js/issues/82291)
- Update Rspack development test manifest: [#&#8203;85846](https://github.com/vercel/next.js/issues/85846)
- Turbopack: Remove `non_operation_vc_strongly_consistent` feature usage from next-api: [#&#8203;85874](https://github.com/vercel/next.js/issues/85874)
- Turbopack: remove the streaming hack for improved stability: [#&#8203;85858](https://github.com/vercel/next.js/issues/85858)
- test: Port clean-distdir integration test to the modern e2e test framework: [#&#8203;85828](https://github.com/vercel/next.js/issues/85828)
- Update font data: [#&#8203;85920](https://github.com/vercel/next.js/issues/85920)
- Update deploy manifest: [#&#8203;85924](https://github.com/vercel/next.js/issues/85924)
- Turbopack: chore: Merge `turbo-tasks-macros-shared` crate into `turbo-tasks-macros`: [#&#8203;85917](https://github.com/vercel/next.js/issues/85917)
- Turbopack: Fix IO concurrency for MacOS: [#&#8203;85861](https://github.com/vercel/next.js/issues/85861)
- Add Appwrite Sites to supported adapters: [#&#8203;85830](https://github.com/vercel/next.js/issues/85830)
- \[turbopack] Remove LocalTaskType::Native, it is dead: [#&#8203;85480](https://github.com/vercel/next.js/issues/85480)
- \[test] Increase response timeout in `next.browserWithResponse()`: [#&#8203;85911](https://github.com/vercel/next.js/issues/85911)
- Hoist inner `'use cache'` functions to reduce function allocations: [#&#8203;85904](https://github.com/vercel/next.js/issues/85904)
- docs: eslint config update: [#&#8203;85969](https://github.com/vercel/next.js/issues/85969)
- Fix Turbopack local font `font-family` declaration: [#&#8203;85913](https://github.com/vercel/next.js/issues/85913)
- switch to slice in createRuntimePrefetchTransformStream: [#&#8203;85822](https://github.com/vercel/next.js/issues/85822)
- Update authentication.mdx: Fix `Auth0` Link: [#&#8203;85953](https://github.com/vercel/next.js/issues/85953)
- Turbopack: remove unused function: [#&#8203;85974](https://github.com/vercel/next.js/issues/85974)
- docs: cacheHandlers: [#&#8203;85311](https://github.com/vercel/next.js/issues/85311)
- docs: Feedback item on proxy default: [#&#8203;86004](https://github.com/vercel/next.js/issues/86004)
- \[test] Add missing test fixtures for `cacheLife` & `cacheTag` in client: [#&#8203;85872](https://github.com/vercel/next.js/issues/85872)
- Fix false-positive build error for `cacheLife` & `cacheTag`: [#&#8203;85875](https://github.com/vercel/next.js/issues/85875)
- \[cna] For pnpm ignore postinstall from `sharp` and `unrs-resolver`: [#&#8203;83168](https://github.com/vercel/next.js/issues/83168)
- Turbopack: refactor `evaluate` to take module\_graph: [#&#8203;85971](https://github.com/vercel/next.js/issues/85971)
- Turbopack: remove duplicate traversal implementations: [#&#8203;85853](https://github.com/vercel/next.js/issues/85853)
- Omit unused `encryptActionBoundArgs`/`decryptActionBoundArgs` imports: [#&#8203;86015](https://github.com/vercel/next.js/issues/86015)
- Turbopack: cleanup db log and add verbose option: [#&#8203;85965](https://github.com/vercel/next.js/issues/85965)
- \[ci]: fix retry\_deploy\_test workflow: [#&#8203;85981](https://github.com/vercel/next.js/issues/85981)
- Fix typo in documentation: [#&#8203;86054](https://github.com/vercel/next.js/issues/86054)
- perf: revert to use the light safe stringify for is-error: [#&#8203;86053](https://github.com/vercel/next.js/issues/86053)
- Turbopack: expose used export info in tests: [#&#8203;86037](https://github.com/vercel/next.js/issues/86037)
- Docs: Mention npm link with Turbopack root: [#&#8203;86075](https://github.com/vercel/next.js/issues/86075)
- script: align the commits group logic with the origin script: [#&#8203;86079](https://github.com/vercel/next.js/issues/86079)
- Update cookies.mdx: [#&#8203;86094](https://github.com/vercel/next.js/issues/86094)
- Remove redundant example code for cacheLife docs: [#&#8203;86043](https://github.com/vercel/next.js/issues/86043)
- test: improve router prefetch test reliability: [#&#8203;86098](https://github.com/vercel/next.js/issues/86098)
- Add postpone handling in app-page handler: [#&#8203;86101](https://github.com/vercel/next.js/issues/86101)
- Turbopack: remove global\_information struct: [#&#8203;86089](https://github.com/vercel/next.js/issues/86089)
- Turbopack: add task\_id\_details feature: [#&#8203;84970](https://github.com/vercel/next.js/issues/84970)
- Turbopack: Refactor output assets to allow to lazy compute output assets: [#&#8203;85753](https://github.com/vercel/next.js/issues/85753)
- Un-skip tests in prefetch-runtime.test.ts: [#&#8203;86097](https://github.com/vercel/next.js/issues/86097)
- Turbopack: add flags to AvailabilityInfo: [#&#8203;85771](https://github.com/vercel/next.js/issues/85771)
- Turbopack: apply side effects false removal on all module types: [#&#8203;86133](https://github.com/vercel/next.js/issues/86133)
- \[build] Remove `layers` experiment flag from next-runtime webpack config: [#&#8203;86126](https://github.com/vercel/next.js/issues/86126)
- Turbopack: only enable nested async availability in production: [#&#8203;85728](https://github.com/vercel/next.js/issues/85728)
- \[turbopack] Remove `Clone` from `Effect`: [#&#8203;86110](https://github.com/vercel/next.js/issues/86110)
- Turbopack: mark more modules as side effect free: [#&#8203;86136](https://github.com/vercel/next.js/issues/86136)
- \[test] Use `next-data-api-endpoint` for Middleware HTTP method tests: [#&#8203;86157](https://github.com/vercel/next.js/issues/86157)
- fix broken extend implementation on DynamicStorage: [#&#8203;86204](https://github.com/vercel/next.js/issues/86204)
- Turbopack: avoid creating another async chunk loader where there is already one available: [#&#8203;85817](https://github.com/vercel/next.js/issues/85817)
- Fix typo on 03-layouts-and-pages.mdx: [#&#8203;86186](https://github.com/vercel/next.js/issues/86186)
- Update 14-metadata-and-og-images.mdx: [#&#8203;86198](https://github.com/vercel/next.js/issues/86198)
- \[turbopack] Model `||`, `&&`, and `??` as control flow operators: [#&#8203;85837](https://github.com/vercel/next.js/issues/85837)
- chore: remove empty docs folder: [#&#8203;86216](https://github.com/vercel/next.js/issues/86216)
- docs: cacheHandlers use object instead of class: [#&#8203;86022](https://github.com/vercel/next.js/issues/86022)
- docs: follow up to getting started CC and use-cache API ref: [#&#8203;85582](https://github.com/vercel/next.js/issues/85582)
- Turbopack: use batch insert to make dependencies outdated: [#&#8203;85625](https://github.com/vercel/next.js/issues/85625)
- Update Rspack production test manifest: [#&#8203;86233](https://github.com/vercel/next.js/issues/86233)
- \[test] Update snapshots: [#&#8203;86288](https://github.com/vercel/next.js/issues/86288)
- \[test] Add failing test for `useActionState` with `'use cache'`: [#&#8203;86292](https://github.com/vercel/next.js/issues/86292)
- \[test] Disable flaky prefetching.stale-times test: [#&#8203;86299](https://github.com/vercel/next.js/issues/86299)
- Update Rspack production test manifest: [#&#8203;86283](https://github.com/vercel/next.js/issues/86283)
- Replace tuples with better suited data structures for server references: [#&#8203;86294](https://github.com/vercel/next.js/issues/86294)
- create-next-app: Add `ignoreScripts` for `unrs-resolver` on bun: [#&#8203;86324](https://github.com/vercel/next.js/issues/86324)
- Turbopack: bundle-analyzer need to avoid using the local next.js build: [#&#8203;86258](https://github.com/vercel/next.js/issues/86258)
- Turbopack: remove unused method: [#&#8203;86259](https://github.com/vercel/next.js/issues/86259)
- Turbopack: disable input source maps for analyze: [#&#8203;86341](https://github.com/vercel/next.js/issues/86341)
- Turbopack: perf: Fix unused argument filtering optimization in turbo-tasks for `self` arguments: [#&#8203;86231](https://github.com/vercel/next.js/issues/86231)
- Turbopack: Remove dead `turbo_tasks::persisted_graph` module: [#&#8203;86329](https://github.com/vercel/next.js/issues/86329)
- \[turbopack] Refactor the analyzer to fix a few issues and prepare to split it up: [#&#8203;86265](https://github.com/vercel/next.js/issues/86265)
- next-analyze: improve network error visuals: [#&#8203;86222](https://github.com/vercel/next.js/issues/86222)
- Turbopack: test if unused self arguments are filtered: [#&#8203;86353](https://github.com/vercel/next.js/issues/86353)
- Upgrade React from `0972e239-20251118` to `8ac5f4eb-20251119`: [#&#8203;86351](https://github.com/vercel/next.js/issues/86351)
- Update Rspack development test manifest: [#&#8203;86332](https://github.com/vercel/next.js/issues/86332)
- Turbopack: refactor tuple variant into struct: [#&#8203;86374](https://github.com/vercel/next.js/issues/86374)
- Migrate to VisitMut: [#&#8203;86347](https://github.com/vercel/next.js/issues/86347)
- Turbopack: decode url encoding and relative paths in source maps: [#&#8203;86342](https://github.com/vercel/next.js/issues/86342)
- Turbopack: remove Asset supertrait from Module trait. Modules don't have content: [#&#8203;86339](https://github.com/vercel/next.js/issues/86339)
- docs: csr-bailout debugging: [#&#8203;86359](https://github.com/vercel/next.js/issues/86359)
- docs: serverless deploy feedback: [#&#8203;86357](https://github.com/vercel/next.js/issues/86357)
- Bump swc to 48: [#&#8203;86240](https://github.com/vercel/next.js/issues/86240)
- docs: cacheLife feedback: [#&#8203;86128](https://github.com/vercel/next.js/issues/86128)
- Update Next.js auth docs examples: [#&#8203;86361](https://github.com/vercel/next.js/issues/86361)
- Update Rspack production test manifest: [#&#8203;86369](https://github.com/vercel/next.js/issues/86369)
- Revert "Turbopack: remove Asset supertrait from Module trait. Modules don't have content": [#&#8203;86415](https://github.com/vercel/next.js/issues/86415)
- Revert "\[turbopack] Model `||`, `&&`, and `??` as control flow operators ([#&#8203;85837](https://github.com/vercel/next.js/issues/85837))": [#&#8203;86432](https://github.com/vercel/next.js/issues/86432)
- Turbopack: avoid embedding deployment ID into the turbopack runtime: [#&#8203;86370](https://github.com/vercel/next.js/issues/86370)
- Revert "Turbopack: JsAnalyzer parse AssignExpr ([#&#8203;83962](https://github.com/vercel/next.js/issues/83962))": [#&#8203;86420](https://github.com/vercel/next.js/issues/86420)
- \[test] Let pending test finish on abort: [#&#8203;86307](https://github.com/vercel/next.js/issues/86307)
- Fix compilation of exported server functions: [#&#8203;86296](https://github.com/vercel/next.js/issues/86296)
- docs: fix getInitialProps execution behavior during navigation: [#&#8203;86387](https://github.com/vercel/next.js/issues/86387)
- Turbopack: bail instead of panic: [#&#8203;86470](https://github.com/vercel/next.js/issues/86470)
- Update Rspack production test manifest: [#&#8203;86457](https://github.com/vercel/next.js/issues/86457)
- Fix typed routes test expectations: [#&#8203;86487](https://github.com/vercel/next.js/issues/86487)
- Add test for external middleware rewrite with changed headers: [#&#8203;49606](https://github.com/vercel/next.js/issues/49606)
- Fix grammar and typos in typescript doc: [#&#8203;86513](https://github.com/vercel/next.js/issues/86513)
- Skip filesystem-cache.test.ts test with Webpack: [#&#8203;86506](https://github.com/vercel/next.js/issues/86506)
- Migrate required-server-files-ssr-404 to be isolated: [#&#8203;86515](https://github.com/vercel/next.js/issues/86515)
- Turbopack: fixup route hashes generation: [#&#8203;86502](https://github.com/vercel/next.js/issues/86502)
- Bump swc: [#&#8203;86496](https://github.com/vercel/next.js/issues/86496)
- Try to improve typed-routes test flakyness: [#&#8203;86512](https://github.com/vercel/next.js/issues/86512)
- Use retry in tests instead of requesting page: [#&#8203;86535](https://github.com/vercel/next.js/issues/86535)
- Turbopack: Use `Debug` instead of `Display` for `ValueDebugFormat` impl on `RcStr`: [#&#8203;86522](https://github.com/vercel/next.js/issues/86522)
- \[test] Add test fixture for runtime error in `'use cache'`: [#&#8203;86499](https://github.com/vercel/next.js/issues/86499)
- Migrate app-dir-export test to be isolated: [#&#8203;86534](https://github.com/vercel/next.js/issues/86534)
- Turbopack: write symlinks to access transitive `serverExternalPackages`
- Fix no-double-tailwind-execution flake: [#&#8203;86549](https://github.com/vercel/next.js/issues/86549)
- Update Rspack development test manifest: [#&#8203;86531](https://github.com/vercel/next.js/issues/86531)
- Turbopack: slightly fewer turbo tasks calls during resolving: [#&#8203;86542](https://github.com/vercel/next.js/issues/86542)
- Turbopack: remove OptionStringifiedSourceMap: [#&#8203;86547](https://github.com/vercel/next.js/issues/86547)
- Turbopack: Simplify the return type of `FileSystemPath::try_join`: [#&#8203;86523](https://github.com/vercel/next.js/issues/86523)
- Turbopack: remove into() which cells internally: [#&#8203;86548](https://github.com/vercel/next.js/issues/86548)
- docs: fix cache component doc grammar: [#&#8203;86563](https://github.com/vercel/next.js/issues/86563)
- fix(turbopack): Disable ES3 transforms from preset-env: [#&#8203;86532](https://github.com/vercel/next.js/issues/86532)
- Don't run bundle-analyzer dev script with turborepo: [#&#8203;86586](https://github.com/vercel/next.js/issues/86586)
- \[turbopack] Support traversing the graph in reverse order: [#&#8203;86427](https://github.com/vercel/next.js/issues/86427)
- Update Rspack development test manifest: [#&#8203;86657](https://github.com/vercel/next.js/issues/86657)
- Update Rspack production test manifest: [#&#8203;86658](https://github.com/vercel/next.js/issues/86658)
- \[test] Deflake `use-cache-router-handler-only` in deploy tests: [#&#8203;86678](https://github.com/vercel/next.js/issues/86678)
- Allow exporting object and array literals in `'use cache'` files again: [#&#8203;86655](https://github.com/vercel/next.js/issues/86655)
- Turbopack: use tracing context for config watching: [#&#8203;86576](https://github.com/vercel/next.js/issues/86576)
- Turbopack: align chunk loading error name: [#&#8203;86593](https://github.com/vercel/next.js/issues/86593)
- docs: update prefix two-digit number in routing section: [#&#8203;77758](https://github.com/vercel/next.js/issues/77758)
- \[bundle-analyzer] Disable revalidateOnFocus and revalidateOnReconnect: [#&#8203;86688](https://github.com/vercel/next.js/issues/86688)
- Turbopack: improve eventual consistency: [#&#8203;86682](https://github.com/vercel/next.js/issues/86682)
- \[test] Enable Playwright traces in deploy tests: [#&#8203;86683](https://github.com/vercel/next.js/issues/86683)
- \[test] Deflake `app-dir-prevent-304-caching`: [#&#8203;86693](https://github.com/vercel/next.js/issues/86693)
- Bump to swc 49: [#&#8203;86689](https://github.com/vercel/next.js/issues/86689)
- Turbopack: process.env.TURBOPACK should be a string: [#&#8203;86680](https://github.com/vercel/next.js/issues/86680)
- Turbopack: arrange empty space in trace viewer correctly: [#&#8203;86612](https://github.com/vercel/next.js/issues/86612)
- \[turbopack] Remove the docs on the bundle size gap: [#&#8203;86707](https://github.com/vercel/next.js/issues/86707)
- \[test] Improve app-basepath assertion error: [#&#8203;86725](https://github.com/vercel/next.js/issues/86725)
- fix(next-custom-transforms): preserve all declarators in multi-declarator export statements: [#&#8203;86552](https://github.com/vercel/next.js/issues/86552)
- Turbopack: avoid snapshotting while continuously idle, fix spans : [#&#8203;86611](https://github.com/vercel/next.js/issues/86611)
- Turbopack: fix fuzz command: [#&#8203;86732](https://github.com/vercel/next.js/issues/86732)
- \[test] Ensure CI uses configured Node.js version: [#&#8203;86720](https://github.com/vercel/next.js/issues/86720)
- Turbopack: improve eventual consistency: [#&#8203;86724](https://github.com/vercel/next.js/issues/86724)
- Update Rspack development test manifest: [#&#8203;86715](https://github.com/vercel/next.js/issues/86715)
- Update Rspack production test manifest: [#&#8203;86716](https://github.com/vercel/next.js/issues/86716)
- Turbopack: don't read binding\_usage in dev: [#&#8203;86722](https://github.com/vercel/next.js/issues/86722)
- \[test] app-basepath less agressive request reading: [#&#8203;86740](https://github.com/vercel/next.js/issues/86740)
- Stop apps/bundle-analyzer/next-env.d.ts from changing: [#&#8203;86743](https://github.com/vercel/next.js/issues/86743)
- \[turbopack] Move turbo-tasks-testing to dev-dependencies: [#&#8203;86745](https://github.com/vercel/next.js/issues/86745)
- Turbopack: chore: Remove re-exports from turbopack crate: [#&#8203;85791](https://github.com/vercel/next.js/issues/85791)
- Turbopack: Split Dirty into Dirtyness and CleanInSession: [#&#8203;86070](https://github.com/vercel/next.js/issues/86070)
- Turbopack: remove DirtyContainerCount from dirty\_container\_update: [#&#8203;86071](https://github.com/vercel/next.js/issues/86071)
- Turbopack: fix double deployment id in web workers: [#&#8203;86754](https://github.com/vercel/next.js/issues/86754)
- Turbopack: Split AggregatedDirtyContainer: [#&#8203;86606](https://github.com/vercel/next.js/issues/86606)
- Turbopack: Split AggregatedDirtyContainerCount: [#&#8203;86072](https://github.com/vercel/next.js/issues/86072)
- Turbopack: Avoid that session-dependent tasks write to DB on every build: [#&#8203;86068](https://github.com/vercel/next.js/issues/86068)
- Turbopack: Use TransientCellData for non-serializable cells: [#&#8203;86069](https://github.com/vercel/next.js/issues/86069)
- Fix typo in fetching data documentation: [#&#8203;86758](https://github.com/vercel/next.js/issues/86758)
- Upgrade React from `fd524fe0-20251121` to `7dc903cd-20251203`: [#&#8203;86771](https://github.com/vercel/next.js/issues/86771)
- Turbopack: use match consistently in macro: [#&#8203;86767](https://github.com/vercel/next.js/issues/86767)
- setup release branch
- Revert "feat(breaking): Hard Deprecate PPR Configuration ([#&#8203;84280](https://github.com/vercel/next.js/issues/84280))"
- Update React Version
- update tag
- update version script
- docs: cookie clear and has alignment: [#&#8203;86788](https://github.com/vercel/next.js/issues/86788)
- \[test] fix missing nft file: [#&#8203;86817](https://github.com/vercel/next.js/issues/86817)
- Remove unused `vitest` from dependency tree: [#&#8203;86821](https://github.com/vercel/next.js/issues/86821)
- Update installed Next.js: [#&#8203;86822](https://github.com/vercel/next.js/issues/86822)
- Remove Vercel mention from Next.js docs: [#&#8203;86801](https://github.com/vercel/next.js/issues/86801)
- Remove unused `vite` from dependency tree: [#&#8203;86824](https://github.com/vercel/next.js/issues/86824)
- Update Rspack development test manifest: [#&#8203;86802](https://github.com/vercel/next.js/issues/86802)
- Turbopack: bincode: Add crate with bincode serialization helpers: [#&#8203;85878](https://github.com/vercel/next.js/issues/85878)
- Turbopack: perf: Avoid clones in RopeReader: [#&#8203;86708](https://github.com/vercel/next.js/issues/86708)
- Add Firebase App Hosting to the deployment guide: [#&#8203;86832](https://github.com/vercel/next.js/issues/86832)
- Turbopack: bincode: Add custom bincode reader/writer implementations: [#&#8203;86632](https://github.com/vercel/next.js/issues/86632)
- Turbopack: bincode: Add traits for types that require `TurboBincodeEncoder` or `TurboBincodeDecoder`: [#&#8203;86633](https://github.com/vercel/next.js/issues/86633)
- Turbopack: bincode: Implement bincode Encode/Decode traits on all turbo task values: [#&#8203;85580](https://github.com/vercel/next.js/issues/85580)
- Turbopack: bincode: Add bincode encode/decode wrappers for `serde_json::Value` when stored in a cell: [#&#8203;86749](https://github.com/vercel/next.js/issues/86749)
- Turbopack: bincode: Use bincode to store the contents of value cells: [#&#8203;86338](https://github.com/vercel/next.js/issues/86338)
- \[test] Fix external rewrite target URL origin: [#&#8203;86863](https://github.com/vercel/next.js/issues/86863)
- Turbopack: correctly overwrite existing symlinks: [#&#8203;86808](https://github.com/vercel/next.js/issues/86808)
- Turbopack: fix race condition when invalidating: [#&#8203;86859](https://github.com/vercel/next.js/issues/86859)
- Turbopack: handle non-serializable cell content for cell update operation: [#&#8203;86861](https://github.com/vercel/next.js/issues/86861)
- Turbopack: bincode: Migrate TaskInput serialization to bincode: [#&#8203;86631](https://github.com/vercel/next.js/issues/86631)
- Add gitignore note for next-env.d.ts: [#&#8203;86809](https://github.com/vercel/next.js/issues/86809)
- docs: fix broken examples link: [#&#8203;86916](https://github.com/vercel/next.js/issues/86916)
- chore: update rspack binding to 1.6.7: [#&#8203;87058](https://github.com/vercel/next.js/issues/87058)
- Update Rspack production test manifest: [#&#8203;87051](https://github.com/vercel/next.js/issues/87051)
- docs: dynamic routes w/ gsP: [#&#8203;86402](https://github.com/vercel/next.js/issues/86402)
- Update self-hosting.mdx: [#&#8203;87109](https://github.com/vercel/next.js/issues/87109)
- Turbopack: Add a custom serde\_self\_describing Serializer/Deserializer: [#&#8203;86885](https://github.com/vercel/next.js/issues/86885)
- Turbopack: bincode: Remove automatic serde derives from `#[turbo_tasks::value]` macro: [#&#8203;86634](https://github.com/vercel/next.js/issues/86634)
- Turbopack: Add `turbo-frozenmap` crate with `FrozenMap` and `FrozenSet` implementations: [#&#8203;87042](https://github.com/vercel/next.js/issues/87042)
- \[turbopack] Rename is\_marked\_as\_side\_effect\_free to side\_effects and return ModuleSideEffects enum: [#&#8203;87102](https://github.com/vercel/next.js/issues/87102)
- Turbopack: Switch RequestKey's `conditions` field from BTreeMap to FrozenMap: [#&#8203;87099](https://github.com/vercel/next.js/issues/87099)
- Turbopack: Remove remaining dead implementations of serde traits: [#&#8203;86910](https://github.com/vercel/next.js/issues/86910)
- \[turbopack\[ Use a frozenset in ImportUsage: [#&#8203;87118](https://github.com/vercel/next.js/issues/87118)
- \[turbopack] Rename graph traversal algorithms: [#&#8203;87119](https://github.com/vercel/next.js/issues/87119)
- Turbopack: Inline uses of the SliceMap type alias: [#&#8203;87122](https://github.com/vercel/next.js/issues/87122)
- \[ci] Bump Lerna to 5.x: [#&#8203;87180](https://github.com/vercel/next.js/issues/87180)
- \[ci] Downgrade Lerna to 4.0.0: [#&#8203;87187](https://github.com/vercel/next.js/issues/87187)
- \[ci] Bump Lerna to latest: [#&#8203;87188](https://github.com/vercel/next.js/issues/87188)
- \[ci] Ensure build-and-deploy runs on pushes: [#&#8203;87207](https://github.com/vercel/next.js/issues/87207)
- \[ci] Fix build-and-deploy
- \[ci] Stop running build\_and\_deploy on tag pushes: [#&#8203;87176](https://github.com/vercel/next.js/issues/87176)
- \[ci] Ensure build-and-deploy run on path-like branches
- \[ci] Cancel in-progress pull\_request\_stats with native concurrency features: [#&#8203;87190](https://github.com/vercel/next.js/issues/87190)
- \[ci] Cancel in-progress build\_and\_deploy for PRs: [#&#8203;87191](https://github.com/vercel/next.js/issues/87191)
- \[ci] Ensure runners use configured Node.js version: [#&#8203;87183](https://github.com/vercel/next.js/issues/87183)
- chore: update next-rspack rust toolchain: [#&#8203;87220](https://github.com/vercel/next.js/issues/87220)
- bundle-analyzer: Show compressed sizes: [#&#8203;87093](https://github.com/vercel/next.js/issues/87093)
- chore: update [@&#8203;next/rspack-binding](https://github.com/next/rspack-binding) version: [#&#8203;87223](https://github.com/vercel/next.js/issues/87223)
- \[ci] Stop running explicit build when creating release: [#&#8203;87212](https://github.com/vercel/next.js/issues/87212)
- \[ci] Stop using restore-keys for package manager stores: [#&#8203;87209](https://github.com/vercel/next.js/issues/87209)
- chore(turbo-tasks-fs): remove duplicated value\_to\_string of FileSystemPath: [#&#8203;87227](https://github.com/vercel/next.js/issues/87227)
- \[ci] Fix releaseStats in build-and-deploy: [#&#8203;87235](https://github.com/vercel/next.js/issues/87235)
- Update turbopack team members: [#&#8203;87231](https://github.com/vercel/next.js/issues/87231)
- \[ci] Only install Playwright dependencies for used browser: [#&#8203;87002](https://github.com/vercel/next.js/issues/87002)
- \[turbopack] Break ties using a counter instead of node index: [#&#8203;87252](https://github.com/vercel/next.js/issues/87252)
- bundle-analyzer: use <Select> and multiselect for top bar: [#&#8203;87254](https://github.com/vercel/next.js/issues/87254)
- \[test] Don't use `request.allHeaders()` in sync `page.on()` callbacks: [#&#8203;86751](https://github.com/vercel/next.js/issues/86751)
- test: fix actions deployment tests: [#&#8203;87279](https://github.com/vercel/next.js/issues/87279)
- bundle analyzer: prevent flashes and stuck empty canvases on resize: [#&#8203;87289](https://github.com/vercel/next.js/issues/87289)
- Cross link to the demo from the bundle analyzer: [#&#8203;87290](https://github.com/vercel/next.js/issues/87290)
- bundle analyzer: remove geist font in favor of system ui fonts: [#&#8203;87292](https://github.com/vercel/next.js/issues/87292)

##### Credits

Huge thanks to [@&#8203;kdy1](https://github.com/kdy1), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;SyMind](https://github.com/SyMind), [@&#8203;bgw](https://github.com/bgw), [@&#8203;swarnava](https://github.com/swarnava), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;huozhi](https://github.com/huozhi), [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;gusfune](https://github.com/gusfune), [@&#8203;vercel-release-bot](https://github.com/vercel-release-bot), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;sokra](https://github.com/sokra), [@&#8203;hayes](https://github.com/hayes), [@&#8203;shuding](https://github.com/shuding), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;marjan-ahmed](https://github.com/marjan-ahmed), [@&#8203;timneutkens](https://github.com/timneutkens), [@&#8203;ajstrongdev](https://github.com/ajstrongdev), [@&#8203;zigang93](https://github.com/zigang93), [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;Nayeem-XTREME](https://github.com/Nayeem-XTREME), [@&#8203;hamirmahal](https://github.com/hamirmahal), [@&#8203;eli0shin](https://github.com/eli0shin), [@&#8203;tessamero](https://github.com/tessamero), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;jamesdaniels](https://github.com/jamesdaniels), [@&#8203;georgesfarah](https://github.com/georgesfarah), [@&#8203;timeyoutakeit](https://github.com/timeyoutakeit), [@&#8203;sequencerr](https://github.com/sequencerr), [@&#8203;Strernd](https://github.com/Strernd), [@&#8203;lucasadrianof](https://github.com/lucasadrianof), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;hamidreza-nateghi](https://github.com/hamidreza-nateghi), [@&#8203;jokokoloko](https://github.com/jokokoloko), [@&#8203;dijonmusters](https://github.com/dijonmusters), [@&#8203;H01001000](https://github.com/H01001000), [@&#8203;xusd320](https://github.com/xusd320), [@&#8203;lubieowoce](https://github.com/lubieowoce), [@&#8203;KaziMahbuburRahman](https://github.com/KaziMahbuburRahman), [@&#8203;zhiyanzhaijie](https://github.com/zhiyanzhaijie), [@&#8203;feedthejim](https://github.com/feedthejim), [@&#8203;that-one-arab](https://github.com/that-one-arab), [@&#8203;JamBalaya56562](https://github.com/JamBalaya56562), [@&#8203;shrink](https://github.com/shrink), [@&#8203;florianliebig](https://github.com/florianliebig), [@&#8203;allenzhou101](https://github.com/allenzhou101), [@&#8203;benmerckx](https://github.com/benmerckx), [@&#8203;ymc9](https://github.com/ymc9), [@&#8203;Marukome0743](https://github.com/Marukome0743), [@&#8203;pyrytakala](https://github.com/pyrytakala), [@&#8203;danpeleg4](https://github.com/danpeleg4), [@&#8203;gaearon](https://github.com/gaearon), [@&#8203;styfle](https://github.com/styfle), [@&#8203;jhuleatt](https://github.com/jhuleatt), [@&#8203;muhammadsyaddad](https://github.com/muhammadsyaddad), [@&#8203;roelvan](https://github.com/roelvan), and [@&#8203;SukkaW](https://github.com/SukkaW) for helping!

### [`v16.0.10`](https://github.com/vercel/next.js/releases/tag/v16.0.10)

[Compare Source](https://github.com/vercel/next.js/compare/v16.0.9...v16.0.10)

Please see the [Next.js Security Update](https://nextjs.org/blog/security-update-2025-12-11) for information about this security patch.

### [`v16.0.9`](https://github.com/vercel/next.js/compare/v16.0.8...v16.0.9)

[Compare Source](https://github.com/vercel/next.js/compare/v16.0.8...v16.0.9)

### [`v16.0.8`](https://github.com/vercel/next.js/releases/tag/v16.0.8)

[Compare Source](https://github.com/vercel/next.js/compare/v16.0.7...v16.0.8)

> \[!NOTE]
> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.

##### Core Changes

- Update react version in cna templates ([#&#8203;86950](https://github.com/vercel/next.js/issues/86950))

##### Credits

Huge thanks to [@&#8203;huozhi](https://github.com/huozhi) for helping!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), A…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants