Skip to content

feat: add Waku adapter - #1289

Open
franky47 wants to merge 8 commits into
nextfrom
test/e2e-waku
Open

feat: add Waku adapter#1289
franky47 wants to merge 8 commits into
nextfrom
test/e2e-waku

Conversation

@franky47

@franky47 franky47 commented Dec 30, 2025

Copy link
Copy Markdown
Member

Waku is about to reach 1.0. Having an official adapter now lets us report API gaps before they freeze their router.

This supersedes the community adapter in the registry. Shallow updates (the nuqs default) go through the router's unstable_RouterContext.changeRoute with refetch: false, which keeps useRouter().query in sync without a server round-trip. The old history.pushState approach left Waku's route state stale. Waku has no public option for this yet, the ask is tracked upstream in wakujs/waku#1251 / wakujs/waku#2234 (refetch auto-decide) and the original nuqs discussion in wakujs/waku#1123.

The e2e harness runs the shared suite twice, on static and dynamic pages, since Waku only forwards the query string to the server for dynamic routes. Typed search params (Waku search codecs) are documented as a recipe built on createLoader / createSerializer from nuqs/server.

Docs are gated behind <SinceVersion v="2.11.0">.

Resources

Possibly related on the Waku repo:

@franky47 franky47 added this to the 🪵 Backlog milestone Dec 30, 2025
@vercel

vercel Bot commented Dec 30, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nuqs Ready Ready Preview Aug 21, 2026 3:33pm

@franky47 franky47 added the tests Issues & PRs related to test environments (unit, browser, e2e) label Dec 30, 2025
Waku is close to 1.0 and has no shallow navigation option on push/replace,
so shallow updates go through the router's unstable changeRoute with
refetch: false, which keeps useRouter().query in sync without an RSC fetch.
Raw history.pushState (the community adapter) left that route state stale.
Runs the shared suite twice, on static and dynamic pages, since Waku only
forwards the query string to the server for dynamic routes.
@franky47 franky47 changed the title test: add e2e test harness for Waku feat: add Waku adapter Aug 21, 2026
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0e5026a0-26d5-4ddd-889c-04b7ea867b69

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Aug 21, 2026

Copy link
Copy Markdown
pnpm add https://pkg.pr.new/nuqs@1289

commit: ce5dee0

@socket-security

socket-security Bot commented Aug 21, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm webpack is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: pnpm-lock.yamlnpm/@react-router/dev@7.18.1npm/@tanstack/router-plugin@1.168.20npm/react-server-dom-webpack@19.2.8npm/webpack@5.109.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/webpack@5.109.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Every place that enumerates supported frameworks (README, error pages, agent
docs, landing page, feature support matrix, registry) now knows about Waku,
so readers find the built-in adapter instead of the community gist.
Waku applies navigations asynchronously, so after a queue flush the hooks
reconciled against the previous query and flashed back to null. The adapter
now serves the written search until the route moves on, and resets the update
queues when something other than nuqs moves the route (Link, back/forward),
so pending updates do not flush onto the new location.
Key isolation is left out: Waku's router context re-renders every consumer
on navigation, like Next.js, so exact render counts cannot hold.
@franky47
franky47 marked this pull request as ready for review August 21, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tests Issues & PRs related to test environments (unit, browser, e2e)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant