NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Josh Story

Developer

Josh Story

story@hey.com

91 commits~9 files/commit

Performance

YoY:+569%
2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthOct'25372 performance
Growth Trend↑119%vs prior period
Avg Files/Commit9files per commit
Active Days65of 455 days
Top Reponext.js72 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

25%Productive TimeGrowth 46% + Fixes 54%
58%Maintenance Time
17%Wasted Time
How it works

Methodology

Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.

Relationship to Growth / Maintenance / Fixes

The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.

Proposed API Endpoint

Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:

POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json

Request:
{
  "startTime": "2025-01-01T00:00:00Z",
  "endTime": "2025-12-31T23:59:59Z",
  "bucketSize": "BUCKET_SIZE_MONTH",
  "groupBy": ["repository_id" | "deliverer_email"]
}

Response:
{
  "productivePct": 74,
  "maintenancePct": 18,
  "wastedPct": 8,
  "buckets": [
    {
      "bucketStart": "2025-01-01T00:00:00Z",
      "productive": 4.2,
      "maintenance": 1.8,
      "wasted": 0.6
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
468de5dThis commit **refactors** the **Next.js core** by removing the explicit `workStore` parameter from numerous functions responsible for creating `params`, `searchParams`, and `pathname` across the framework. Instead of being passed explicitly, `workStore` is now retrieved idiomatically from `workAsyncStorage.getStore()` internally within these functions, simplifying their signatures and **reducing boilerplate** for callers. This change impacts **client and server components**, **metadata resolution**, and various **server-side request processing** utilities, and includes a **new error code** for uninitialized `workStore` access. Ultimately, this is a step towards enabling **metadata components** to render directly without requiring factory closures.Feb 2012maint
ca0957dThis commit **fixes a critical bug** in the **Next.js server runtime** that caused stack overflows due to the `unhandled-rejection` module being bundled and loaded twice, leading to mutual recursion. To resolve this, the `unhandled-rejection` module is **externalized** by renaming it to `unhandled-rejection.external.tsx`, ensuring it is loaded only once and preventing the double-installation issue. Furthermore, **robustness improvements** include a global symbol guard to prevent re-installation and a reentrancy guard on the handler, safeguarding against synchronous re-emissions. This significantly enhances the stability of **server processes** by preventing crashes from unhandled promise rejections and introduces a new error code for detecting such issues.Feb 205maint
2bf2c9cThis commit introduces a significant **refactoring** to the **Next.js metadata and viewport tag rendering logic**, simplifying its internal architecture. It replaces a complex, layered component-based abstraction with a single, flat imperative function that constructs the tags array using explicit JSX, if-checks, and for-loops. This change primarily impacts `packages/next/src/lib/metadata/metadata.tsx`, specifically functions like `renderMetadata` and `renderViewport`, making all meta/link tags explicitly visible at their call site. The rewrite also enumerates Open Graph and AppLinks properties explicitly, rather than iterating generically, and optimizes key assignment by eliminating the `cloneElement` pass, leading to a more transparent and potentially more performant rendering process for **HTML metadata**.Feb 207maint
38cd020This commit **fixes** an issue in **React's server-side rendering (SSR) with Suspense** where boundaries were unnecessarily outlined due to "suspensey" CSS during the initial shell flush, leading to higher-level fallbacks being displayed prematurely. It introduces a `flushingInShell` flag, passed to the `hasSuspenseyContent` function in the **Fizz server renderer** and **DOM host configuration**, to prevent outlining for stylesheet-only suspensey content when flushing the shell. This change improves the **user experience** by ensuring more granular fallbacks are shown, as stylesheets emitted in the `<head>` already block paint. While suspensey images still trigger outlining for ViewTransition animations, the behavior for streamed completions, where suspensey CSS still causes outlining, remains unaffected.Feb 196waste
ea3cad2This commit **refines the validation of synchronous I/O (sync IO)** within the **Next.js App Router's runtime prefetching** mechanism. Previously, sync IO after runtime data access would error across the entire route if any segment was configured for runtime prefetching, making adoption difficult. This **enhancement** now restricts sync IO errors only to segments that are *actually* runtime prefetched and their descendants, significantly **simplifying the integration of runtime prefetching** for specific parts of an application. It introduces new **`EarlyStatic` and `EarlyRuntime` rendering stages** to enable this granular validation and updates various request utilities like `cookies`, `headers`, and `params` to respect these new stages and prefetchability. This **refactoring** of the rendering pipeline makes runtime prefetching more practical by reducing the burden of fixing sync IO across the entire segment stack.Feb 1824maint
78f13e0This commit implements a **fix** to enhance the robustness of the **Staged Rendering Controller** in **Next.js server-side rendering**. It ensures that upon receiving an `AbortSignal`, all outstanding **stage promises**, encompassing both runtime and dynamic types, are **unconditionally rejected**. Specifically, the changes in `packages/next/src/server/app-render/staged-rendering.ts` remove conditional checks to guarantee these promises do not remain in a perpetually pending state. This improvement prevents potential resource leaks or stalled rendering processes, leading to more reliable and efficient handling of aborted rendering operations.Feb 181waste
715103aThis commit **refactors** the **Next.js server-side rendering (SSR) and prerendering pipeline** by **unifying sequential task execution** under a single `runInSequentialTasks` utility. The `runInSequentialTasks` utility in `app-render-render-utils.ts` is enhanced to correctly handle thenable results and suppress unhandled rejections, while removing the redundant `scheduleInSequentialTasks`. This **refactoring** standardizes how sequential tasks are managed across various rendering functions, including `stagedRenderToReadableStreamWithoutCachesInDev` and `prerenderToStream`, improving code consistency and maintainability within the `app-render` module.Feb 184maint
6df47fcThis commit performs a significant **refactoring** of the **task pipelining mechanism** within **Next.js's server-side rendering (SSR) and app-render processes**. The utility `pipelineInSequentialTasks` is renamed and restructured to `runInSequentialTasks`, allowing for an arbitrary number of sequential tasks and ensuring all tasks, including the final user-provided one, receive "Fast Immediate" treatment for **improved performance**. This change also introduces a **new error (1054)** to explicitly prevent `runInSequentialTasks` from being invoked in the **edge runtime**, clarifying its intended execution environment. Key functions like `renderWithRestartOnCacheMissInDev` and `collectStagedSegmentData` are updated to utilize this enhanced pipelining utility.Feb 174maint
e5e0d35This commit **refactors** the **runtime prerendering mechanism** in Next.js to leverage the `StagedRenderingController` for managing rendering stages. It integrates the `StagedRenderingController` into the **`app-render`** and **`dynamic-rendering`** modules, replacing direct promise-based stage management with a more robust system for build and runtime prerendering. This **internal architectural improvement** prepares the rendering pipeline for more advanced sync I/O error handling and complex stage transitions. Furthermore, the private cache store is updated to remove the redundant `runtimeStagePromise`, ensuring nested caches correctly await the outer store's runtime stage.Feb 176maint
d45f83fThis commit **refactors** the mechanism for signaling **render abandonment** within the Next.js **server-side rendering** pipeline. It introduces an explicit `AbortController` and its `signal` to manage render interruptions, replacing the previous implicit `mayAbandon` flag and direct abandonment calls. This change primarily affects the `StagedRenderingController` in `staged-rendering.ts` and its usage in `app-render.tsx`, improving the clarity and robustness of the abandonment interface. The update prepares the `StagedRenderingController` for broader use cases, including future **production prerendering** and runtime prefetches.Feb 132maint
e6d27d4This commit performs a **refactoring** to enhance **code clarity** within the **Next.js server-side Node.js environment extensions**. It renames a utility file, previously ambiguously named `utils`, to `io-utils` to more accurately reflect its synchronous I/O related contents. Consequently, several modules within the `node-environment-extensions` directory, including `date`, `node-crypto`, `random`, and `web-crypto`, have their import paths updated from `./utils` to `./io-utils`. This internal change improves discoverability for developers working on the **Next.js core** without altering any runtime behavior or introducing functional changes to the framework.Feb 135maint
db71391This commit **enhances the React Fiber runtime** by ensuring that the thenable returned by a **lazy initializer** (e.g., `React.lazy`) is **unconditionally instrumented** in all environments, rather than only in development builds with specific debug flags. This change is critical for enabling the `SuspendOnImmediate` optimization, which allows the runtime to **resume rendering immediately** if a lazy component resolves before the stack unwinds. By making this optimization pathway available universally, it facilitates robust testing and production use of features like `useId` that rely on quick resolution, and simplifies development by allowing standard Promises to be used with `React.lazy` without custom instrumentation workarounds.Jan 162waste
f0fbb0dThis commit **fixes a bug** in the **React Fiber reconciler** where the `Forked` flag was incorrectly stripped from Fibers during work replay after suspension. By including the `Forked` flag in the `StaticMask` within `ReactFiberFlags.js`, the system now correctly preserves this flag's state, which is crucial for maintaining proper tree context. This ensures **consistent and correct `useId` tracking** in server-rendered applications, especially when components suspend and resume. A new test case in `ReactDOMFizzServer-test.js` validates `useId` behavior with suspended and lazy-loaded siblings, confirming the fix's effectiveness.Jan 162waste
c186624This commit **fixes a critical hydration bug** within the **React Fiber reconciler** that could lead to **hydration errors** when a `HostComponent` suspends and then immediately resolves during the hydration process. Previously, this scenario could cause the hydration cursor to become offset due to incomplete unwinding of work. The **bug fix** introduces a new function, `popHydrationStateOnInterruptedWork`, to correctly restore the hydration cursor's position when replaying interrupted work, which is integrated into the `replayBeginWork` process. This ensures **robust and accurate server-side rendering (SSR) hydration**, preventing mismatches and improving the stability of applications using suspending components. New test cases were added to validate the correct behavior across various component types, including `HostSingleton`, `Suspense`, and `Activity` components.Jan 133waste
69d9d29This commit implements a **critical security fix** by **disallowing `javascript:` URLs** across various Next.js routing mechanisms and redirects. It prevents their use in the `Link` component's `href` and `as` props, `router.push`, `router.replace`, and `router.prefetch` methods for both App and Pages Routers, and within server action redirects. This **bug fix** enhances application security by preventing potential XSS vulnerabilities, treating `javascript:` URLs as non-routable and introducing a new utility function `isJavaScriptURLString` and error code for detection. The change ensures that Next.js APIs align with React's existing prohibition, improving the overall robustness of URL handling and protecting users from malicious scripts.Jan 724waste
c0c75e4This commit introduces a significant **refactoring** to how **React instances** are managed and accessed within the Next.js server runtime, particularly for **error reporting** and **owner stack capturing**. It replaces the complex `AsyncLocalStorage`-based proxying of `captureOwnerStack()` through the `workUnitStore` with a simpler mechanism that directly registers and retrieves client and server React instances via new global utility functions like `registerServerReact` and `getClientReact`. This **architectural improvement** simplifies the plumbing for external code, such as patched I/O methods in `node-environment-extensions`, to correctly attribute errors to the appropriate React component owner in both **SSR** and **RSC** contexts. The change enhances the maintainability and robustness of error reporting by providing a more direct and less error-prone way to access React's internal state.Oct 299maint
1b45163This commit **adjusts the Next.js bundling process** by **excluding the `next-js` condition** for **middleware, proxy, and instrumentation** entrypoints. This **bug fix** addresses an inconsistency where these environments, lacking full Next.js API support, were incorrectly bundled with the condition, causing potential runtime issues for third-party libraries. By modifying `next-core`'s edge and server context resolution, the change ensures that external packages can reliably target Next.js with consistent API expectations across all environments. This significantly improves **developer experience** and **ecosystem compatibility**, validated by comprehensive new end-to-end tests.Oct 2787maint
3dafab9This commit **corrects an incorrect invariant** within the **Cache Components**' `cacheLife` configuration, which previously mandated that the `stale` duration must exceed the `expire` duration. Recognizing that `stale` and `expire` describe distinct cache entry lifetimes (client read vs. cache creation, respectively), this change **removes the erroneous requirement**. This **bug fix** enhances the **flexibility and correctness of cache behavior**, allowing for more logical and independent configuration of cache entry expiration and staleness. The change **improves cache configuration options** and prevents misinterpretations of cache entry lifetimes.Oct 212–
e2d6ff9This commit **updates the React channel usage** for **Cache Components** when **partial prerendering (PPR)** is enabled, shifting from experimental to the more stable **canary channel**. It modifies the `next-core` crate's import map generation (`get_next_client_import_map`, `apply_vendored_react_aliases_server`) to prioritize canary React. Additionally, the `needsExperimentalReact` function in `packages/next/src/lib/needs-experimental-react.ts` is refined to only require experimental React if the `taint` feature is active, removing PPR as a condition. This **feature enhancement** leverages React's stabilization of PPR, providing a more stable default experience for users while retaining flexibility for bleeding-edge experimental features.Oct 182grow
49fcbd9This commit introduces a **developer experience improvement** to the **Next.js server-side rendering pipeline** by **skipping cache warming** when caches are explicitly disabled in development mode. Previously, disabling caches would force every request to block while refilling empty caches, leading to slow renders. Now, the system detects this scenario via `isBypassingCachesInDev` in `app-render.tsx` and proceeds without warming, ensuring faster streaming. This **new capability** includes a console warning (`WarnForBypassCachesInDev`) about inaccurate React DevTools metadata and is covered by **new documentation** and **end-to-end tests**.Oct 188maint
468de5dFeb 20

This commit **refactors** the **Next.js core** by removing the explicit `workStore` parameter from numerous functions responsible for creating `params`, `searchParams`, and `pathname` across the framework. Instead of being passed explicitly, `workStore` is now retrieved idiomatically from `workAsyncStorage.getStore()` internally within these functions, simplifying their signatures and **reducing boilerplate** for callers. This change impacts **client and server components**, **metadata resolution**, and various **server-side request processing** utilities, and includes a **new error code** for uninitialized `workStore` access. Ultimately, this is a step towards enabling **metadata components** to render directly without requiring factory closures.

12 filesmaint
ca0957dFeb 20

This commit **fixes a critical bug** in the **Next.js server runtime** that caused stack overflows due to the `unhandled-rejection` module being bundled and loaded twice, leading to mutual recursion. To resolve this, the `unhandled-rejection` module is **externalized** by renaming it to `unhandled-rejection.external.tsx`, ensuring it is loaded only once and preventing the double-installation issue. Furthermore, **robustness improvements** include a global symbol guard to prevent re-installation and a reentrancy guard on the handler, safeguarding against synchronous re-emissions. This significantly enhances the stability of **server processes** by preventing crashes from unhandled promise rejections and introduces a new error code for detecting such issues.

5 filesmaint
2bf2c9cFeb 20

This commit introduces a significant **refactoring** to the **Next.js metadata and viewport tag rendering logic**, simplifying its internal architecture. It replaces a complex, layered component-based abstraction with a single, flat imperative function that constructs the tags array using explicit JSX, if-checks, and for-loops. This change primarily impacts `packages/next/src/lib/metadata/metadata.tsx`, specifically functions like `renderMetadata` and `renderViewport`, making all meta/link tags explicitly visible at their call site. The rewrite also enumerates Open Graph and AppLinks properties explicitly, rather than iterating generically, and optimizes key assignment by eliminating the `cloneElement` pass, leading to a more transparent and potentially more performant rendering process for **HTML metadata**.

7 filesmaint
38cd020Feb 19

This commit **fixes** an issue in **React's server-side rendering (SSR) with Suspense** where boundaries were unnecessarily outlined due to "suspensey" CSS during the initial shell flush, leading to higher-level fallbacks being displayed prematurely. It introduces a `flushingInShell` flag, passed to the `hasSuspenseyContent` function in the **Fizz server renderer** and **DOM host configuration**, to prevent outlining for stylesheet-only suspensey content when flushing the shell. This change improves the **user experience** by ensuring more granular fallbacks are shown, as stylesheets emitted in the `<head>` already block paint. While suspensey images still trigger outlining for ViewTransition animations, the behavior for streamed completions, where suspensey CSS still causes outlining, remains unaffected.

6 fileswaste
ea3cad2Feb 18

This commit **refines the validation of synchronous I/O (sync IO)** within the **Next.js App Router's runtime prefetching** mechanism. Previously, sync IO after runtime data access would error across the entire route if any segment was configured for runtime prefetching, making adoption difficult. This **enhancement** now restricts sync IO errors only to segments that are *actually* runtime prefetched and their descendants, significantly **simplifying the integration of runtime prefetching** for specific parts of an application. It introduces new **`EarlyStatic` and `EarlyRuntime` rendering stages** to enable this granular validation and updates various request utilities like `cookies`, `headers`, and `params` to respect these new stages and prefetchability. This **refactoring** of the rendering pipeline makes runtime prefetching more practical by reducing the burden of fixing sync IO across the entire segment stack.

24 filesmaint
78f13e0Feb 18

This commit implements a **fix** to enhance the robustness of the **Staged Rendering Controller** in **Next.js server-side rendering**. It ensures that upon receiving an `AbortSignal`, all outstanding **stage promises**, encompassing both runtime and dynamic types, are **unconditionally rejected**. Specifically, the changes in `packages/next/src/server/app-render/staged-rendering.ts` remove conditional checks to guarantee these promises do not remain in a perpetually pending state. This improvement prevents potential resource leaks or stalled rendering processes, leading to more reliable and efficient handling of aborted rendering operations.

1 fileswaste
715103aFeb 18

This commit **refactors** the **Next.js server-side rendering (SSR) and prerendering pipeline** by **unifying sequential task execution** under a single `runInSequentialTasks` utility. The `runInSequentialTasks` utility in `app-render-render-utils.ts` is enhanced to correctly handle thenable results and suppress unhandled rejections, while removing the redundant `scheduleInSequentialTasks`. This **refactoring** standardizes how sequential tasks are managed across various rendering functions, including `stagedRenderToReadableStreamWithoutCachesInDev` and `prerenderToStream`, improving code consistency and maintainability within the `app-render` module.

4 filesmaint
6df47fcFeb 17

This commit performs a significant **refactoring** of the **task pipelining mechanism** within **Next.js's server-side rendering (SSR) and app-render processes**. The utility `pipelineInSequentialTasks` is renamed and restructured to `runInSequentialTasks`, allowing for an arbitrary number of sequential tasks and ensuring all tasks, including the final user-provided one, receive "Fast Immediate" treatment for **improved performance**. This change also introduces a **new error (1054)** to explicitly prevent `runInSequentialTasks` from being invoked in the **edge runtime**, clarifying its intended execution environment. Key functions like `renderWithRestartOnCacheMissInDev` and `collectStagedSegmentData` are updated to utilize this enhanced pipelining utility.

4 filesmaint
e5e0d35Feb 17

This commit **refactors** the **runtime prerendering mechanism** in Next.js to leverage the `StagedRenderingController` for managing rendering stages. It integrates the `StagedRenderingController` into the **`app-render`** and **`dynamic-rendering`** modules, replacing direct promise-based stage management with a more robust system for build and runtime prerendering. This **internal architectural improvement** prepares the rendering pipeline for more advanced sync I/O error handling and complex stage transitions. Furthermore, the private cache store is updated to remove the redundant `runtimeStagePromise`, ensuring nested caches correctly await the outer store's runtime stage.

6 filesmaint
d45f83fFeb 13

This commit **refactors** the mechanism for signaling **render abandonment** within the Next.js **server-side rendering** pipeline. It introduces an explicit `AbortController` and its `signal` to manage render interruptions, replacing the previous implicit `mayAbandon` flag and direct abandonment calls. This change primarily affects the `StagedRenderingController` in `staged-rendering.ts` and its usage in `app-render.tsx`, improving the clarity and robustness of the abandonment interface. The update prepares the `StagedRenderingController` for broader use cases, including future **production prerendering** and runtime prefetches.

2 filesmaint
e6d27d4Feb 13

This commit performs a **refactoring** to enhance **code clarity** within the **Next.js server-side Node.js environment extensions**. It renames a utility file, previously ambiguously named `utils`, to `io-utils` to more accurately reflect its synchronous I/O related contents. Consequently, several modules within the `node-environment-extensions` directory, including `date`, `node-crypto`, `random`, and `web-crypto`, have their import paths updated from `./utils` to `./io-utils`. This internal change improves discoverability for developers working on the **Next.js core** without altering any runtime behavior or introducing functional changes to the framework.

5 filesmaint
db71391Jan 16

This commit **enhances the React Fiber runtime** by ensuring that the thenable returned by a **lazy initializer** (e.g., `React.lazy`) is **unconditionally instrumented** in all environments, rather than only in development builds with specific debug flags. This change is critical for enabling the `SuspendOnImmediate` optimization, which allows the runtime to **resume rendering immediately** if a lazy component resolves before the stack unwinds. By making this optimization pathway available universally, it facilitates robust testing and production use of features like `useId` that rely on quick resolution, and simplifies development by allowing standard Promises to be used with `React.lazy` without custom instrumentation workarounds.

2 fileswaste
f0fbb0dJan 16

This commit **fixes a bug** in the **React Fiber reconciler** where the `Forked` flag was incorrectly stripped from Fibers during work replay after suspension. By including the `Forked` flag in the `StaticMask` within `ReactFiberFlags.js`, the system now correctly preserves this flag's state, which is crucial for maintaining proper tree context. This ensures **consistent and correct `useId` tracking** in server-rendered applications, especially when components suspend and resume. A new test case in `ReactDOMFizzServer-test.js` validates `useId` behavior with suspended and lazy-loaded siblings, confirming the fix's effectiveness.

2 fileswaste
c186624Jan 13

This commit **fixes a critical hydration bug** within the **React Fiber reconciler** that could lead to **hydration errors** when a `HostComponent` suspends and then immediately resolves during the hydration process. Previously, this scenario could cause the hydration cursor to become offset due to incomplete unwinding of work. The **bug fix** introduces a new function, `popHydrationStateOnInterruptedWork`, to correctly restore the hydration cursor's position when replaying interrupted work, which is integrated into the `replayBeginWork` process. This ensures **robust and accurate server-side rendering (SSR) hydration**, preventing mismatches and improving the stability of applications using suspending components. New test cases were added to validate the correct behavior across various component types, including `HostSingleton`, `Suspense`, and `Activity` components.

3 fileswaste
69d9d29Jan 7

This commit implements a **critical security fix** by **disallowing `javascript:` URLs** across various Next.js routing mechanisms and redirects. It prevents their use in the `Link` component's `href` and `as` props, `router.push`, `router.replace`, and `router.prefetch` methods for both App and Pages Routers, and within server action redirects. This **bug fix** enhances application security by preventing potential XSS vulnerabilities, treating `javascript:` URLs as non-routable and introducing a new utility function `isJavaScriptURLString` and error code for detection. The change ensures that Next.js APIs align with React's existing prohibition, improving the overall robustness of URL handling and protecting users from malicious scripts.

24 fileswaste
c0c75e4Oct 29

This commit introduces a significant **refactoring** to how **React instances** are managed and accessed within the Next.js server runtime, particularly for **error reporting** and **owner stack capturing**. It replaces the complex `AsyncLocalStorage`-based proxying of `captureOwnerStack()` through the `workUnitStore` with a simpler mechanism that directly registers and retrieves client and server React instances via new global utility functions like `registerServerReact` and `getClientReact`. This **architectural improvement** simplifies the plumbing for external code, such as patched I/O methods in `node-environment-extensions`, to correctly attribute errors to the appropriate React component owner in both **SSR** and **RSC** contexts. The change enhances the maintainability and robustness of error reporting by providing a more direct and less error-prone way to access React's internal state.

9 filesmaint
1b45163Oct 27

This commit **adjusts the Next.js bundling process** by **excluding the `next-js` condition** for **middleware, proxy, and instrumentation** entrypoints. This **bug fix** addresses an inconsistency where these environments, lacking full Next.js API support, were incorrectly bundled with the condition, causing potential runtime issues for third-party libraries. By modifying `next-core`'s edge and server context resolution, the change ensures that external packages can reliably target Next.js with consistent API expectations across all environments. This significantly improves **developer experience** and **ecosystem compatibility**, validated by comprehensive new end-to-end tests.

87 filesmaint
3dafab9Oct 21

This commit **corrects an incorrect invariant** within the **Cache Components**' `cacheLife` configuration, which previously mandated that the `stale` duration must exceed the `expire` duration. Recognizing that `stale` and `expire` describe distinct cache entry lifetimes (client read vs. cache creation, respectively), this change **removes the erroneous requirement**. This **bug fix** enhances the **flexibility and correctness of cache behavior**, allowing for more logical and independent configuration of cache entry expiration and staleness. The change **improves cache configuration options** and prevents misinterpretations of cache entry lifetimes.

2 files–
e2d6ff9Oct 18

This commit **updates the React channel usage** for **Cache Components** when **partial prerendering (PPR)** is enabled, shifting from experimental to the more stable **canary channel**. It modifies the `next-core` crate's import map generation (`get_next_client_import_map`, `apply_vendored_react_aliases_server`) to prioritize canary React. Additionally, the `needsExperimentalReact` function in `packages/next/src/lib/needs-experimental-react.ts` is refined to only require experimental React if the `taint` feature is active, removing PPR as a condition. This **feature enhancement** leverages React's stabilization of PPR, providing a more stable default experience for users while retaining flexibility for bleeding-edge experimental features.

2 filesgrow
49fcbd9Oct 18

This commit introduces a **developer experience improvement** to the **Next.js server-side rendering pipeline** by **skipping cache warming** when caches are explicitly disabled in development mode. Previously, disabling caches would force every request to block while refilling empty caches, leading to slow renders. Now, the system detects this scenario via `isBypassingCachesInDev` in `app-render.tsx` and proceeds without warming, ensuring faster streaming. This **new capability** includes a console warning (`WarnForBypassCachesInDev`) about inaccurate React DevTools metadata and is covered by **new documentation** and **end-to-end tests**.

8 filesmaint

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch