# What changed in @solidjs/router

> 15 changes in @solidjs/router 0.16 to 1 from its official release notes, upgrade guides and advisories: 3 breaking, 1 security, 1 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/npm/@solidjs/router/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @solidjs/router 1

### Behavior and default changes

- The router is declared stable as 1.0.0; ^1.0.0 receives normal caret semantics, and the major number aligns with the ecosystem. (1.0.0) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#100)

### Fixes and other changes

- Scroll restoration now performs a single scroll once routing settles; content that commits afterward keeps whatever offset the document can hold. (1.0.0) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#100)

## @solidjs/router 0.16

### Breaking changes

- Paths with doubled slashes no longer match collapsed routes and render the not-found state; doubled leading slashes are parsed rather than treated as protocol-relative URLs. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Forces a cache miss synchronously, so a same-tick refetch after an un-awaited revalidate fetches fresh data. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Static path segments no longer percent-encode RFC 3986 pchar characters, allowing routes such as /+foo and /@user to match the browser's raw pathname. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)

### Security

- Returns a copy so mutations by callers cannot corrupt router state. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)

### New APIs and options

- Adds opt-in explicit scroll restoration for back/forward navigation, persisting and restoring positions after navigation settles; off by default. (0.16.3) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0163)

### Behavior and default changes

- The data generic now defaults to any so typed components and preload functions are assignable in annotated configs without a generic inference site. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)

### Fixes and other changes

- The active state ignores trailing slashes on href. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Disposing an older owner no longer unregisters a newer action bound to the same URL, preventing forms from falling through to native submission after revalidation. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Per-route roots are disposed when the route tree unmounts, preventing leaked subscriptions from crashing on later navigation. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Route components accept VoidComponent pages while still rejecting components that require props the router does not pass. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Consecutive synchronous calls now compose by merging into the in-flight navigation target instead of the stale committed location. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- Listeners now observe defaultPrevented when another listener has set it. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
- useSubmission().retry now retries instead of being a no-op. (0.16.2) — [release notes](https://github.com/solidjs/solid-router/blob/be412bca1e7cf700090a029cc73cd3b7670aeb04/CHANGELOG.md#0162)
