You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+76Lines changed: 76 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,7 @@ We manage release notes in this file instead of the paginated Github Releases Pa
13
13
<summary>Table of Contents</summary>
14
14
15
15
- [React Router Releases](#react-router-releases)
16
+
- [v7.15.0](#v7150)
16
17
- [v7.14.2](#v7142)
17
18
- [v7.14.1](#v7141)
18
19
- [v7.14.0](#v7140)
@@ -169,6 +170,81 @@ We manage release notes in this file instead of the paginated Github Releases Pa
169
170
170
171
</details>
171
172
173
+
## v7.15.0
174
+
175
+
Date: 2026-05-05
176
+
177
+
### Minor Changes
178
+
179
+
- `react-router` - Stabilize `unstable_defaultShouldRevalidate` as `defaultShouldRevalidate` on `<Link>`, `<Form>`, `useLinkClickHandler`, `useSubmit`, `fetcher.submit`, and `setSearchParams` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
180
+
181
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
182
+
183
+
- `react-router` - Stabilize the instrumentation APIs. `unstable_instrumentations` is now `instrumentations` and `unstable_pattern` is now `pattern` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
184
+
185
+
- The `unstable_ServerInstrumentation`, `unstable_ClientInstrumentation`, `unstable_InstrumentRequestHandlerFunction`, `unstable_InstrumentRouterFunction`, `unstable_InstrumentRouteFunction`, and `unstable_InstrumentationHandlerResult` types have had their `unstable_` prefixes removed
186
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
187
+
188
+
- `react-router` - Stabilize `unstable_mask` as `mask` on `<Link>`, `useLinkClickHandler`, and `useNavigate`, and rename the corresponding `Location.unstable_mask` field to `Location.mask` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
189
+
190
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
191
+
192
+
- `react-router` - Stabilize the `unstable_normalizePath` option on `staticHandler.query` and `staticHandler.queryRoute` as `normalizePath` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
193
+
194
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
195
+
196
+
- `react-router` - Stabilize `future.unstable_passThroughRequests` as `future.v8_passThroughRequests` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
197
+
198
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
199
+
200
+
- `react-router` - Remove `unstable_subResourceIntegrity` from the runtime `FutureConfig` type; the flag is now controlled by the top-level `subResourceIntegrity` option in `react-router.config.ts` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
201
+
202
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
203
+
204
+
- `react-router` - Stabilize `unstable_url` as `url` on `loader`, `action`, and `middleware` function args ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
205
+
206
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
207
+
208
+
- `react-router` - Stabilize `unstable_useTransitions` as `useTransitions` on `<BrowserRouter>`, `<HashRouter>`, `<HistoryRouter>`, `<MemoryRouter>`, `<Router>`, `<RouterProvider>`, `<HydratedRouter>`, and `useLinkClickHandler` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
209
+
210
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
211
+
212
+
- `@react-router/dev` - Stabilize `future.unstable_passThroughRequests` as `future.v8_passThroughRequests` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
213
+
214
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
215
+
216
+
- `@react-router/dev` - Stabilize `prerender.unstable_concurrency` as `prerender.concurrency` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
217
+
218
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
219
+
220
+
- `@react-router/dev` - Stabilize `future.unstable_subResourceIntegrity` as a top-level `subResourceIntegrity` config option in `react-router.config.ts` ([a993f09](https://github.com/remix-run/react-router/commit/a993f09))
221
+
222
+
- ⚠️ This is a breaking change if you have already opted into the unstable version - you will need to update your code accordingly
223
+
224
+
### Patch Changes
225
+
226
+
- `react-router` - Add `nonce` to `<Scripts>` `<link rel="modulepreload">` elements (if provided) ([af5d49b](https://github.com/remix-run/react-router/commit/af5d49b))
227
+
228
+
- `react-router` - Fix a bug with `unstable_defaultShouldRevalidate={false}` where parent routes that did not export a `shouldRevalidate` function could be incorrectly included in the single fetch call for new child route data ([#15012](https://github.com/remix-run/react-router/pull/15012))
- Performance benchmarks showed roughly a 10-15% improvement in server-side request handling performance
233
+
234
+
- `react-router` - Mark `mask` as an optional field in `Location` for easier mocking in unit tests ([#14999](https://github.com/remix-run/react-router/pull/14999))
- Avoiding unnecessary calls to `matchRoutes` in data router scenarios
241
+
- This includes adding back the optimization that was removed in `7.6.0` ([#13562](https://github.com/remix-run/react-router/pull/13562))
242
+
- The issues that prompted the revert have been addressed by using the available router `matches` but always updating `match.route` to the latest route in the `manifest`
243
+
- Leverage pre-computed pre-computing flattened/cached route branches during client side route matching
244
+
- Performance benchmarks showed roughly a 15-30% improvement in server-side request handling performance
0 commit comments