unstale

npm / @solidjs/router

@solidjs/router

What changed in @solidjs/router 0.16 to 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.

3 breaking1 security1 new APIs and options2 behavior and defaults8 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.6 on npm

@solidjs/router 12 changes

Behavior and default changes 1

  • 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.0release notes

Fixes and other changes 1

  • Scroll restoration now performs a single scroll once routing settles; content that commits afterward keeps whatever offset the document can hold.

    1.0.0release notes

@solidjs/router 0.1613 changes

Breaking changes 3

  • 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.2release notes

  • Forces a cache miss synchronously, so a same-tick refetch after an un-awaited revalidate fetches fresh data.

    0.16.2release notes

  • 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.2release notes

Security 1

  • Returns a copy so mutations by callers cannot corrupt router state.

    0.16.2release notes

New APIs and options 1

  • Adds opt-in explicit scroll restoration for back/forward navigation, persisting and restoring positions after navigation settles; off by default.

    0.16.3release notes

Behavior and default changes 1

  • 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.2release notes

Fixes and other changes 7

  • The active state ignores trailing slashes on href.

    0.16.2release notes

  • 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.2release notes

  • Per-route roots are disposed when the route tree unmounts, preventing leaked subscriptions from crashing on later navigation.

    0.16.2release notes

  • Route components accept VoidComponent pages while still rejecting components that require props the router does not pass.

    0.16.2release notes

  • Consecutive synchronous calls now compose by merging into the in-flight navigation target instead of the stale committed location.

    0.16.2release notes

  • Listeners now observe defaultPrevented when another listener has set it.

    0.16.2release notes

  • useSubmission().retry now retries instead of being a no-op.

    0.16.2release notes