NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Janka Uryga

Developer

Janka Uryga

lolzatu2@gmail.com

107 commits~12 files/commit

Performance

YoY:+1465%
2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthFeb'26624 performance
Growth Trend↑223%vs prior period
Avg Files/Commit12files per commit
Active Days76of 455 days
Top Reponext.js103 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.

34%Productive TimeGrowth 47% + Fixes 53%
48%Maintenance Time
18%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
b7438b4This commit introduces a **new capability** to the **Next.js instant validation UI**, significantly **enhancing error reporting** by displaying the **owner component stack** for validation-blocking errors. This improvement is particularly beneficial for debugging issues originating from `node_modules` or `next/dynamic` components with `ssr: false`, which previously lacked contextual stack information. The change involves modifying the `trackThrownErrorInNavigation` function within the **App Router's dynamic rendering** to wrap errors with component context, alongside a minor **refactoring** of the `NextError` interface and the addition of a new error code `1118`. This provides developers with more actionable debugging information, leading to **faster issue resolution** for complex validation failures.Mar 1216maint
1411870This commit **fixes** an outdated autocomplete hint within the **Next.js TypeScript language service plugin**. It updates the suggestion for the `unstable_instant` configuration, changing the property from `mode` to `prefetch` in `packages/next/src/server/typescript/rules/config.ts`. This **maintenance update** corrects an oversight from a previous change, ensuring developers receive accurate guidance when configuring instant loading. The change improves the overall **developer experience** by preventing potential misconfigurations and streamlining development workflows.Mar 121waste
fe2f1e4This commit **refactors** the **`app-render` module** by **removing a custom `runInContext` pattern** from `stream-ops` and related rendering functions. It simplifies the codebase by directly wrapping rendering functions with `AsyncLocalStorage.run` instead of using an intermediate callback abstraction. This change primarily affects **server-side rendering (SSR) streaming operations** in `stream-ops.web.ts` and `app-render.tsx`, including functions like `renderToFlightStream` and `generateDynamicFlightRenderResult`. The refactoring improves code clarity and corrects a potential semantic issue with `AsyncLocalStorage` context preservation, as the previous pattern was incomplete. This work is a prerequisite for further improvements in #89859.Feb 272maint
08ae81fThis commit **fixes a bug** in the **Next.js App Router's instant validation** where `loading.js` was not correctly recognized as a suspense boundary. The issue stemmed from the instant validation boundary being incorrectly placed around the segment component, rather than above the `LoadingBoundary` within the `OuterLayoutRouter`. To resolve this, the **boundary placement logic** has been **reworked** to use a new context-based mechanism, introducing components like `PlaceValidationBoundaryBelowThisLevel` and `RenderValidationBoundaryAtThisLevel` to precisely control where the validation boundary is rendered. This ensures the boundary is correctly positioned above `ErrorBoundary` and `LoadingBoundary`, **enhancing the reliability** of **instant validation** for pages utilizing `loading.js` and dynamic layouts, with comprehensive new e2e tests confirming the corrected behavior.Feb 2512waste
c1e485cThis commit **fixes** a **bug** in **Next.js's instant validation system** where errors related to a **blocking `generateViewport`** within the `head` element were not properly detected. Previously, instant validation always used the dynamic stage for the head, but now it correctly treats the `head` as a separate segment and applies the appropriate validation stage (Static or Runtime) based on the prefetch configuration. This **enhances the robustness** of **App Router server-side rendering** by ensuring invalid `head` configurations are caught early, preventing potential runtime issues. The core validation logic is refactored in `packages/next/src/server/app-render/instant-validation/instant-validation.tsx` to handle these new validation stages and cache structures. A new error message is added to `packages/next/errors.json`, and comprehensive E2E tests are introduced to cover various `head` validation scenarios, including dynamic and runtime viewports.Feb 2414maint
2eeaeb0This commit **exports** the `Instant` type from the **Next.js core types**, making it publicly available for use in userland configurations. Previously, this type, which is crucial for defining the `unstable_instant` configuration, was not exported, leading to potential type-checking issues for developers. This **enhancement** allows developers to correctly type their `unstable_instant` configurations, significantly improving type safety and developer experience within **Next.js applications**. Additionally, it includes a **refactoring** in `packages/next/src/server/app-render/instant-validation/instant-validation.tsx` to align with the renamed `Instant` type.Feb 203grow
415e0dfThis commit significantly **optimizes the performance** of the `instant-validation` **test suite**, reducing its execution time from 450s to approximately 100s. It achieves this by **refactoring** the `app-render` module (`packages/next/src/server/app-render/app-render.tsx`) to emit debug logs that signal the start and end of validation, specifically within `spawnStaticShellValidationInDev`. The `instant-validation` E2E tests (`test/e2e/app-dir/instant-validation/instant-validation.test.ts`) are then updated to leverage these new logs, allowing them to replace a lengthy default wait in the `waitForNoErrorToast` utility (now enhanced in `test/lib/next-test-utils.ts`) with a much shorter, conditional check. This **test suite optimization** provides a substantial improvement in developer feedback cycles for instant validation, acting as a stopgap until a dedicated UI indicator is implemented.Feb 204maint
9fce25aThis commit introduces a **new feature** to enhance **instant validation** in Next.js, preventing server-side blocking on client APIs that would not block in a browser environment. It achieves this by integrating a new `validation-client` store type across various **server-side rendering and request handling mechanisms**, including `app-render`, `dynamic-rendering`, and `work-unit-async-storage`. This ensures that client-specific APIs like `connection()`, `cookies()`, `headers()`, `draftMode()`, and `revalidate()` now throw an `InvariantError` when accessed within a `validation-client` context, while others like `params()` and `searchParams()` are adapted. This change refines the behavior of **server-side APIs during client-side validation**, improving development experience and performance by avoiding unnecessary blocking.Feb 1730grow
2e5fc01This commit **optimizes the E2E test suite** by removing the redundant `'reactDebugChannel'` permutation from the **instant validation tests** within the `app-dir` context. Specifically, it simplifies the test setup for both `instant-validation-static-shells.test.ts` and `instant-validation.test.ts`. This **test maintenance** ensures that existing test sharding mechanisms correctly handle this permutation, thereby avoiding unnecessary duplication and streamlining the overall testing process. The change improves test efficiency without altering test coverage or functionality.Feb 175maint
85d74bbThis commit **enhances the Instant Validation feature** within Next.js, enabling it to gracefully handle **non-blocking dynamic holes and errors in shared parent components** during navigation. It introduces sophisticated **state management and tracking mechanisms** across the **`app-render`** server-side rendering logic, specifically within `dynamic-rendering.ts` and new `instant-validation` modules like `boundary-tracking.tsx`. This **feature improvement** allows the system to precisely track validation boundaries and reasons for disallowed dynamic behavior, preventing unnecessary full page reloads. The change significantly improves the robustness and flexibility of instant navigations, ensuring a smoother user experience even when dynamic content or errors occur in parent components. Extensive new E2E tests have been added to validate these complex scenarios.Feb 1738maint
f9d5df3This commit **fixes a crash** occurring in the **Next.js App Router's instant validation** mechanism when requests include **search parameters**. Previously, the `findNavigationsToValidate` function in `instant-validation.tsx` did not account for these parameters, leading to incorrect page segment naming and a failure to look up segments in the cache during validation. The fix involves passing the `ctx.query` object from `app-render.tsx` to `findNavigationsToValidate`, which now correctly incorporates search parameters into the segment names. This **bug fix** ensures the robustness of instant validation for pages that utilize search queries, preventing application failures.Feb 127waste
f7dd09fThis commit **enables instant validation for client-side navigations** within the Next.js **instant validation system**, marking a **new capability**. It achieves this by conditionally rendering the **full React Server Component (RSC) tree**, including shared layouts, during client navigations when an `instant` configuration is detected, primarily affecting `app-render.tsx` and introducing `createFullTreeFlightDataForNavigation`. A **performance optimization** was also implemented in `instant-config.tsx` to cache validation checks. This change, while currently inefficient and not matching production behavior, extends the `instant` feature's scope to client routing and is supported by comprehensive **test updates** for client navigation scenarios.Feb 1060maint
2521b8aThis commit introduces **instant validation** for the **Next.js App Router**, enabling developers to define and verify non-blocking UI segments using `export const instant = { prefetch: 'static' | 'runtime' }`. This **new capability** integrates into the **development-time rendering pipeline** to simulate client navigations and ensure that segments marked for instant display do not unexpectedly block, or correctly identify segments explicitly marked as blocking (`instant = false`). It significantly enhances **developer experience** by providing early feedback on potential performance issues, leveraging new modules like `instant-validation.tsx` and `debug-channel-server.ts` to provide precise error reporting. This validation runs on full-page loads and HMR, helping to guarantee a smooth user experience by catching blocking UI patterns before deployment.Feb 571grow
812996cThis commit performs a **mechanical rename** of the `unstable_prefetch` configuration option to `unstable_instant` and its `mode` property to `prefetch` across the codebase. This **refactoring** impacts the **Next.js App Router's instant navigation/prefetching feature**, updating its internal server-side rendering logic, TypeScript definitions, and extensive test suite. Additionally, it introduces a **new error code** (`990`) for invalid `unstable_instant` configurations and updates related documentation, including a new error page at `errors/invalid-instant-configuration.mdx`. The change ensures consistent terminology for this experimental API, affecting core `next` packages, documentation, and numerous test fixtures.Feb 464maint
b1533b0This commit introduces a **new capability** to the **React Flight Server** by allowing the `request.timeOrigin` to be explicitly overridden via a `startTime` option in rendering functions like `renderToReadableStream`. This **feature** addresses a critical issue where debug information about I/O operations was lost when a Flight stream was deserialized and then re-serialized, as the system previously assumed the request always started at the current time. By providing control over the request's start time, this change ensures that **I/O timing information is preserved** across re-encodings, improving the fidelity of debug data in various **React Server DOM environments** and bundler integrations.Feb 315maint
6cc7273This commit provides a **bug fix** for the **Next.js server environment extensions**, specifically within the `fast-set-immediate` utility located at `packages/next/src/server/node-environment-extensions/fast-set-immediate.external.ts`. It addresses a crash that occurred in **Edge runtime environments** due to `globalThis.setImmediate` being undefined when attempting to access `util.promisify.custom`. By adding a check for `originalSetImmediate` before this access, the commit prevents runtime errors and ensures **broader compatibility** for Next.js applications deployed to Edge environments.Jan 171waste
bd90b6cThis commit **fixes a validation error** occurring in **development mode** for **Cache Components** when using **server action bound arguments**. The issue stemmed from debug information being included in serialized bound arguments, making cache keys non-deterministic and causing cache misses and static shell validation failures. To resolve this, the `encryptActionBoundArgs` and `decryptActionBoundArgs` functions in `packages/next/src/server/app-render/encryption.ts` are updated to filter out this problematic debug data. This **bug fix** ensures deterministic cache keys, preventing validation errors and improving the reliability of server actions within Cache Components during development.Jan 154waste
c0d6a5dThis commit **fixes a potential bug** in the **`use cache` transform** for **Next.js server actions**. It addresses an issue where local shadowing of `Object` or `Array` built-ins could break the generated code for cached functions, leading to runtime errors. By implementing an **unresolved syntax context** (`unresolved_mark` and `unresolved_ctxt`), the transform now defensively ensures that references to `Object.defineProperty` and `Array.prototype.slice` always point to the global built-ins. This **enhances the robustness** and **reliability** of **cached server actions**, preventing unexpected failures caused by name collisions in user code. The change involves updates across the `next-core` and `next-custom-transforms` crates, along with new test cases demonstrating the fix.Jan 79waste
bf23890This commit introduces a **new capability** to optimize **Cache Components** rendering by implementing a "fast `setImmediate`" mechanism within the Next.js server environment. This **feature** patches Node.js's `setImmediate` and `process.nextTick` to allow `setImmediate` callbacks to execute immediately after the current task's microtasks and `process.nextTick` queue, but before subsequent `setTimeout` calls, when activated via `DANGEROUSLY_runPendingImmediatesAfterCurrentTask()`. This change ensures `setImmediate` is no longer considered I/O in the rendering model, preventing dynamic holes and improving staged rendering predictability for **prerendering and rendering utilities**. The work includes **refactoring** of scheduling logic and extensive **unit and integration tests** to validate its behavior. This significantly impacts the timing of asynchronous operations within the server-side rendering pipeline, with documented divergences from native Node.js error handling for `process.nextTick` and unhandled rejections.Dec 322maint
1660d39This commit **fixes a critical bug** in the **server-side rendering** process where **dynamic promises** could hang indefinitely if a render was **abandoned** due to a cache miss. The `abort` method within `packages/next/src/server/app-render/staged-rendering.ts` is updated to correctly reject these promises when the `RenderStage.Abandoned` state is encountered, preventing a deadlock. This ensures that **Next.js applications**, especially those leveraging **Cache Components** with dynamic content, no longer freeze or hang during render restarts, improving overall application stability. New end-to-end tests were added to verify the correct abortion of dynamic promises in such scenarios.Dec 25maint
b7438b4Mar 12

This commit introduces a **new capability** to the **Next.js instant validation UI**, significantly **enhancing error reporting** by displaying the **owner component stack** for validation-blocking errors. This improvement is particularly beneficial for debugging issues originating from `node_modules` or `next/dynamic` components with `ssr: false`, which previously lacked contextual stack information. The change involves modifying the `trackThrownErrorInNavigation` function within the **App Router's dynamic rendering** to wrap errors with component context, alongside a minor **refactoring** of the `NextError` interface and the addition of a new error code `1118`. This provides developers with more actionable debugging information, leading to **faster issue resolution** for complex validation failures.

16 filesmaint
1411870Mar 12

This commit **fixes** an outdated autocomplete hint within the **Next.js TypeScript language service plugin**. It updates the suggestion for the `unstable_instant` configuration, changing the property from `mode` to `prefetch` in `packages/next/src/server/typescript/rules/config.ts`. This **maintenance update** corrects an oversight from a previous change, ensuring developers receive accurate guidance when configuring instant loading. The change improves the overall **developer experience** by preventing potential misconfigurations and streamlining development workflows.

1 fileswaste
fe2f1e4Feb 27

This commit **refactors** the **`app-render` module** by **removing a custom `runInContext` pattern** from `stream-ops` and related rendering functions. It simplifies the codebase by directly wrapping rendering functions with `AsyncLocalStorage.run` instead of using an intermediate callback abstraction. This change primarily affects **server-side rendering (SSR) streaming operations** in `stream-ops.web.ts` and `app-render.tsx`, including functions like `renderToFlightStream` and `generateDynamicFlightRenderResult`. The refactoring improves code clarity and corrects a potential semantic issue with `AsyncLocalStorage` context preservation, as the previous pattern was incomplete. This work is a prerequisite for further improvements in #89859.

2 filesmaint
08ae81fFeb 25

This commit **fixes a bug** in the **Next.js App Router's instant validation** where `loading.js` was not correctly recognized as a suspense boundary. The issue stemmed from the instant validation boundary being incorrectly placed around the segment component, rather than above the `LoadingBoundary` within the `OuterLayoutRouter`. To resolve this, the **boundary placement logic** has been **reworked** to use a new context-based mechanism, introducing components like `PlaceValidationBoundaryBelowThisLevel` and `RenderValidationBoundaryAtThisLevel` to precisely control where the validation boundary is rendered. This ensures the boundary is correctly positioned above `ErrorBoundary` and `LoadingBoundary`, **enhancing the reliability** of **instant validation** for pages utilizing `loading.js` and dynamic layouts, with comprehensive new e2e tests confirming the corrected behavior.

12 fileswaste
c1e485cFeb 24

This commit **fixes** a **bug** in **Next.js's instant validation system** where errors related to a **blocking `generateViewport`** within the `head` element were not properly detected. Previously, instant validation always used the dynamic stage for the head, but now it correctly treats the `head` as a separate segment and applies the appropriate validation stage (Static or Runtime) based on the prefetch configuration. This **enhances the robustness** of **App Router server-side rendering** by ensuring invalid `head` configurations are caught early, preventing potential runtime issues. The core validation logic is refactored in `packages/next/src/server/app-render/instant-validation/instant-validation.tsx` to handle these new validation stages and cache structures. A new error message is added to `packages/next/errors.json`, and comprehensive E2E tests are introduced to cover various `head` validation scenarios, including dynamic and runtime viewports.

14 filesmaint
2eeaeb0Feb 20

This commit **exports** the `Instant` type from the **Next.js core types**, making it publicly available for use in userland configurations. Previously, this type, which is crucial for defining the `unstable_instant` configuration, was not exported, leading to potential type-checking issues for developers. This **enhancement** allows developers to correctly type their `unstable_instant` configurations, significantly improving type safety and developer experience within **Next.js applications**. Additionally, it includes a **refactoring** in `packages/next/src/server/app-render/instant-validation/instant-validation.tsx` to align with the renamed `Instant` type.

3 filesgrow
415e0dfFeb 20

This commit significantly **optimizes the performance** of the `instant-validation` **test suite**, reducing its execution time from 450s to approximately 100s. It achieves this by **refactoring** the `app-render` module (`packages/next/src/server/app-render/app-render.tsx`) to emit debug logs that signal the start and end of validation, specifically within `spawnStaticShellValidationInDev`. The `instant-validation` E2E tests (`test/e2e/app-dir/instant-validation/instant-validation.test.ts`) are then updated to leverage these new logs, allowing them to replace a lengthy default wait in the `waitForNoErrorToast` utility (now enhanced in `test/lib/next-test-utils.ts`) with a much shorter, conditional check. This **test suite optimization** provides a substantial improvement in developer feedback cycles for instant validation, acting as a stopgap until a dedicated UI indicator is implemented.

4 filesmaint
9fce25aFeb 17

This commit introduces a **new feature** to enhance **instant validation** in Next.js, preventing server-side blocking on client APIs that would not block in a browser environment. It achieves this by integrating a new `validation-client` store type across various **server-side rendering and request handling mechanisms**, including `app-render`, `dynamic-rendering`, and `work-unit-async-storage`. This ensures that client-specific APIs like `connection()`, `cookies()`, `headers()`, `draftMode()`, and `revalidate()` now throw an `InvariantError` when accessed within a `validation-client` context, while others like `params()` and `searchParams()` are adapted. This change refines the behavior of **server-side APIs during client-side validation**, improving development experience and performance by avoiding unnecessary blocking.

30 filesgrow
2e5fc01Feb 17

This commit **optimizes the E2E test suite** by removing the redundant `'reactDebugChannel'` permutation from the **instant validation tests** within the `app-dir` context. Specifically, it simplifies the test setup for both `instant-validation-static-shells.test.ts` and `instant-validation.test.ts`. This **test maintenance** ensures that existing test sharding mechanisms correctly handle this permutation, thereby avoiding unnecessary duplication and streamlining the overall testing process. The change improves test efficiency without altering test coverage or functionality.

5 filesmaint
85d74bbFeb 17

This commit **enhances the Instant Validation feature** within Next.js, enabling it to gracefully handle **non-blocking dynamic holes and errors in shared parent components** during navigation. It introduces sophisticated **state management and tracking mechanisms** across the **`app-render`** server-side rendering logic, specifically within `dynamic-rendering.ts` and new `instant-validation` modules like `boundary-tracking.tsx`. This **feature improvement** allows the system to precisely track validation boundaries and reasons for disallowed dynamic behavior, preventing unnecessary full page reloads. The change significantly improves the robustness and flexibility of instant navigations, ensuring a smoother user experience even when dynamic content or errors occur in parent components. Extensive new E2E tests have been added to validate these complex scenarios.

38 filesmaint
f9d5df3Feb 12

This commit **fixes a crash** occurring in the **Next.js App Router's instant validation** mechanism when requests include **search parameters**. Previously, the `findNavigationsToValidate` function in `instant-validation.tsx` did not account for these parameters, leading to incorrect page segment naming and a failure to look up segments in the cache during validation. The fix involves passing the `ctx.query` object from `app-render.tsx` to `findNavigationsToValidate`, which now correctly incorporates search parameters into the segment names. This **bug fix** ensures the robustness of instant validation for pages that utilize search queries, preventing application failures.

7 fileswaste
f7dd09fFeb 10

This commit **enables instant validation for client-side navigations** within the Next.js **instant validation system**, marking a **new capability**. It achieves this by conditionally rendering the **full React Server Component (RSC) tree**, including shared layouts, during client navigations when an `instant` configuration is detected, primarily affecting `app-render.tsx` and introducing `createFullTreeFlightDataForNavigation`. A **performance optimization** was also implemented in `instant-config.tsx` to cache validation checks. This change, while currently inefficient and not matching production behavior, extends the `instant` feature's scope to client routing and is supported by comprehensive **test updates** for client navigation scenarios.

60 filesmaint
2521b8aFeb 5

This commit introduces **instant validation** for the **Next.js App Router**, enabling developers to define and verify non-blocking UI segments using `export const instant = { prefetch: 'static' | 'runtime' }`. This **new capability** integrates into the **development-time rendering pipeline** to simulate client navigations and ensure that segments marked for instant display do not unexpectedly block, or correctly identify segments explicitly marked as blocking (`instant = false`). It significantly enhances **developer experience** by providing early feedback on potential performance issues, leveraging new modules like `instant-validation.tsx` and `debug-channel-server.ts` to provide precise error reporting. This validation runs on full-page loads and HMR, helping to guarantee a smooth user experience by catching blocking UI patterns before deployment.

71 filesgrow
812996cFeb 4

This commit performs a **mechanical rename** of the `unstable_prefetch` configuration option to `unstable_instant` and its `mode` property to `prefetch` across the codebase. This **refactoring** impacts the **Next.js App Router's instant navigation/prefetching feature**, updating its internal server-side rendering logic, TypeScript definitions, and extensive test suite. Additionally, it introduces a **new error code** (`990`) for invalid `unstable_instant` configurations and updates related documentation, including a new error page at `errors/invalid-instant-configuration.mdx`. The change ensures consistent terminology for this experimental API, affecting core `next` packages, documentation, and numerous test fixtures.

64 filesmaint
b1533b0Feb 3

This commit introduces a **new capability** to the **React Flight Server** by allowing the `request.timeOrigin` to be explicitly overridden via a `startTime` option in rendering functions like `renderToReadableStream`. This **feature** addresses a critical issue where debug information about I/O operations was lost when a Flight stream was deserialized and then re-serialized, as the system previously assumed the request always started at the current time. By providing control over the request's start time, this change ensures that **I/O timing information is preserved** across re-encodings, improving the fidelity of debug data in various **React Server DOM environments** and bundler integrations.

15 filesmaint
6cc7273Jan 17

This commit provides a **bug fix** for the **Next.js server environment extensions**, specifically within the `fast-set-immediate` utility located at `packages/next/src/server/node-environment-extensions/fast-set-immediate.external.ts`. It addresses a crash that occurred in **Edge runtime environments** due to `globalThis.setImmediate` being undefined when attempting to access `util.promisify.custom`. By adding a check for `originalSetImmediate` before this access, the commit prevents runtime errors and ensures **broader compatibility** for Next.js applications deployed to Edge environments.

1 fileswaste
bd90b6cJan 15

This commit **fixes a validation error** occurring in **development mode** for **Cache Components** when using **server action bound arguments**. The issue stemmed from debug information being included in serialized bound arguments, making cache keys non-deterministic and causing cache misses and static shell validation failures. To resolve this, the `encryptActionBoundArgs` and `decryptActionBoundArgs` functions in `packages/next/src/server/app-render/encryption.ts` are updated to filter out this problematic debug data. This **bug fix** ensures deterministic cache keys, preventing validation errors and improving the reliability of server actions within Cache Components during development.

4 fileswaste
c0d6a5dJan 7

This commit **fixes a potential bug** in the **`use cache` transform** for **Next.js server actions**. It addresses an issue where local shadowing of `Object` or `Array` built-ins could break the generated code for cached functions, leading to runtime errors. By implementing an **unresolved syntax context** (`unresolved_mark` and `unresolved_ctxt`), the transform now defensively ensures that references to `Object.defineProperty` and `Array.prototype.slice` always point to the global built-ins. This **enhances the robustness** and **reliability** of **cached server actions**, preventing unexpected failures caused by name collisions in user code. The change involves updates across the `next-core` and `next-custom-transforms` crates, along with new test cases demonstrating the fix.

9 fileswaste
bf23890Dec 3

This commit introduces a **new capability** to optimize **Cache Components** rendering by implementing a "fast `setImmediate`" mechanism within the Next.js server environment. This **feature** patches Node.js's `setImmediate` and `process.nextTick` to allow `setImmediate` callbacks to execute immediately after the current task's microtasks and `process.nextTick` queue, but before subsequent `setTimeout` calls, when activated via `DANGEROUSLY_runPendingImmediatesAfterCurrentTask()`. This change ensures `setImmediate` is no longer considered I/O in the rendering model, preventing dynamic holes and improving staged rendering predictability for **prerendering and rendering utilities**. The work includes **refactoring** of scheduling logic and extensive **unit and integration tests** to validate its behavior. This significantly impacts the timing of asynchronous operations within the server-side rendering pipeline, with documented divergences from native Node.js error handling for `process.nextTick` and unhandled rejections.

22 filesmaint
1660d39Dec 2

This commit **fixes a critical bug** in the **server-side rendering** process where **dynamic promises** could hang indefinitely if a render was **abandoned** due to a cache miss. The `abort` method within `packages/next/src/server/app-render/staged-rendering.ts` is updated to correctly reject these promises when the `RenderStage.Abandoned` state is encountered, preventing a deadlock. This ensures that **Next.js applications**, especially those leveraging **Cache Components** with dynamic content, no longer freeze or hang during render restarts, improving overall application stability. New end-to-end tests were added to verify the correct abortion of dynamic promises in such scenarios.

5 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