Skip to content

chore: Update version for release#14908

Merged
brophdawg11 merged 1 commit into
release-nextfrom
changeset-release/release-next
Mar 23, 2026
Merged

chore: Update version for release#14908
brophdawg11 merged 1 commit into
release-nextfrom
changeset-release/release-next

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to release-next, this PR will be updated.

Releases

create-react-router@7.13.2

Patch Changes

  • chore: replace chalk with picocolors (#14837)

react-router@7.13.2

Patch Changes

  • Fix clientLoader.hydrate when an ancestor route is also hydrating a clientLoader (#14835)

  • Fix type error when passing Framework Mode route components using Route.ComponentProps to createRoutesStub (#14892)

  • Fix percent encoding in relative path navigation (#14786)

  • Add future.unstable_passThroughRequests flag (#14775)

    By default, React Router normalizes the request.url passed to your loader, action, and middleware functions by removing React Router's internal implementation details (.data suffixes, index + _routes query params).

    Enabling this flag removes that normalization and passes the raw HTTP request instance to your handlers. This provides a few benefits:

    • Reduces server-side overhead by eliminating multiple new Request() calls on the critical path
    • Allows you to distinguish document from data requests in your handlers base don the presence of a .data suffix (useful for observability purposes)

    If you were previously relying on the normalization of request.url, you can switch to use the new sibling unstable_url parameter which contains a URL instance representing the normalized location:

    // ❌ Before: you could assume there was no `.data` suffix in `request.url`
    export async function loader({ request }: Route.LoaderArgs) {
      let url = new URL(request.url);
      if (url.pathname === "/path") {
        // This check will fail with the flag enabled because the `.data` suffix will
        // exist on data requests
      }
    }
    
    // ✅ After: use `unstable_url` for normalized routing logic and `request.url`
    // for raw routing logic
    export async function loader({ request, unstable_url }: Route.LoaderArgs) {
      if (unstable_url.pathname === "/path") {
        // This will always have the `.data` suffix stripped
      }
    
      // And now you can distinguish between document versus data requests
      let isDataRequest = new URL(request.url).pathname.endsWith(".data");
    }
  • Internal refactor to consolidate framework-agnostic/React-specific route type layers - no public API changes (#14765)

  • Sync protocol validation to rsc flows (#14882)

  • Add a new unstable_url: URL parameter to route handler methods (loader, action, middleware, etc.) representing the normalized URL the application is navigating to or fetching, with React Router implementation details removed (.datasuffix, index/_routes query params) (#14775)

    This is being added alongside the new future.unstable_passthroughRequests future flag so that users still have a way to access the normalized URL when that flag is enabled and non-normalized request's are being passed to your handlers. When adopting this flag, you will only need to start leveraging this new parameter if you are relying on the normalization of request.url in your application code.

    If you don't have the flag enabled, then unstable_url will match request.url.

@react-router/architect@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2
    • @react-router/node@7.13.2

@react-router/cloudflare@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2

@react-router/dev@7.13.2

Patch Changes

  • Fix react-router dev crash when Unix socket files exist in the project root (#14854)

  • Escape redirect locations in prerendered redirect HTML (#14880)

  • Add future.unstable_passThroughRequests flag (#14775)

    By default, React Router normalizes the request.url passed to your loader, action, and middleware functions by removing React Router's internal implementation details (.data suffixes, index + _routes query params).

    Enabling this flag removes that normalization and passes the raw HTTP request instance to your handlers. This provides a few benefits:

    • Reduces server-side overhead by eliminating multiple new Request() calls on the critical path
    • Allows you to distinguish document from data requests in your handlers base don the presence of a .data suffix (useful for observability purposes)

    If you were previously relying on the normalization of request.url, you can switch to use the new sibling unstable_url parameter which contains a URL instance representing the normalized location:

    // ❌ Before: you could assume there was no `.data` suffix in `request.url`
    export async function loader({ request }: Route.LoaderArgs) {
      let url = new URL(request.url);
      if (url.pathname === "/path") {
        // This check will fail with the flag enabled because the `.data` suffix will
        // exist on data requests
      }
    }
    
    // ✅ After: use `unstable_url` for normalized routing logic and `request.url`
    // for raw routing logic
    export async function loader({ request, unstable_url }: Route.LoaderArgs) {
      if (unstable_url.pathname === "/path") {
        // This will always have the `.data` suffix stripped
      }
    
      // And now you can distinguish between document versus data requests
      let isDataRequest = new URL(request.url).pathname.endsWith(".data");
    }
  • Add a new unstable_url: URL parameter to route handler methods (loader, action, middleware, etc.) representing the normalized URL the application is navigating to or fetching, with React Router implementation details removed (.datasuffix, index/_routes query params) (#14775)

    This is being added alongside the new future.unstable_passthroughRequests future flag so that users still have a way to access the normalized URL when that flag is enabled and non-normalized request's are being passed to your handlers. When adopting this flag, you will only need to start leveraging this new parameter if you are relying on the normalization of request.url in your application code.

    If you don't have the flag enabled, then unstable_url will match request.url.

  • Updated dependencies:

    • react-router@7.13.2
    • @react-router/node@7.13.2
    • @react-router/serve@7.13.2

react-router-dom@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2

@react-router/express@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2
    • @react-router/node@7.13.2

@react-router/fs-routes@7.13.2

Patch Changes

  • Updated dependencies:
    • @react-router/dev@7.13.2

@react-router/node@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2

@react-router/remix-routes-option-adapter@7.13.2

Patch Changes

  • Updated dependencies:
    • @react-router/dev@7.13.2

@react-router/serve@7.13.2

Patch Changes

  • Updated dependencies:
    • react-router@7.13.2
    • @react-router/node@7.13.2
    • @react-router/express@7.13.2

@brophdawg11 brophdawg11 merged commit aadb56f into release-next Mar 23, 2026
1 check passed
@brophdawg11 brophdawg11 deleted the changeset-release/release-next branch March 23, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant