TanStack resolves a `?`-only relative `to` by appending it to the current
path, so any navigation that only changes the query string landed on
`<path>/?<query>` — e.g. picking a preset on the advisors page produced
`/advisors/security/?preset=...` and changing an auth provider produced
`/auth/providers/?provider=...`. Two producers fixed:
- The next/router compat shim's push/replace: a resolved `?`/`#`-only
target is now prefixed with the current (basepath-stripped) pathname.
- nuqs writes (useQueryState/useQueryStates across ~123 files): the stock
`nuqs/adapters/tanstack-router` adapter navigates with
`to: renderQueryString(search) || '.'`. Replaced with a custom adapter
(via nuqs's unstable_createAdapterProvider) that navigates to
`pathname + renderQueryString(search)`, preserving replace/push, scroll,
and hash behavior of the stock adapter.
Claude-Session: https://claude.ai/code/session_01MLH8WVg8zBJnmZTYTV3ooo