Repository navigation
Conversation
🦋 Changeset detectedLatest commit: 7ec5ea1 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
ryansolid
marked this pull request as ready for review
October 19, 2026 21:14
The flight-data consumer moves from the action module into query.ts and
the Router subscribes it at mount (unless singleFlight={false}), so a
server function called straight from an event handler gets X-Revalidate,
redirect and flight data applied without an action. Query reads, the
consumer and actions share one redirect/revalidation helper
(applyServerResponse), and the routing.ts rendezvous is gone, so this
costs nothing: HN-style bundle (query + server fn, no actions) is 12 B
brotli smaller, an app with actions 99 B smaller.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CLHVghj7oAvSMqnq9WRKdv
The router's action is the form layer (submissions, aria-busy, no-JS posts, .with()), and `action` is solid-js's own primitive, so the router export becomes `formAction` (type `FormAction`). `action` and `Action` stay as deprecated aliases with a one-time dev warning. `useAction` is deprecated with no replacement: the router now applies revalidation and redirects on any server function call, so outside a form the server function (or a core action) is called directly. `query` and `liveQuery` keep their names. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CLHVghj7oAvSMqnq9WRKdv
ryansolid
force-pushed
the
claude/project-thread-257vck
branch
from
October 20, 2026 07:19
03739af to
7ec5ea1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before: the router's single flight (applying
X-Revalidatekeys,redirect(),reload()and flight data from a server function response) was installed only when the first routeractionwas created. A server function called straight from an event handler got none of it unless it went throughuseAction. The router'sactionalso shared its name with solid-js'sactionprimitive.After: a mounted router subscribes to single flight itself (unless
singleFlight={false}), so any server function call gets revalidation and redirects. The router's action is renamedformAction(typeFormAction), the form layer: submissions,aria-busy, no-JS posts and.with().actionandActionstay as deprecated aliases with a one-time dev warning.useActionis deprecated with no replacement; outside a form, call the server function or a coreactiondirectly.queryandliveQuerykeep their names.How:
data/action.tsintodata/query.ts, and the Router calls it at mount. Therouting.tsregister/provide rendezvous is removed.applyServerResponse). As a result, action redirects now resolve against the router base the same way query redirects do.src/data/deprecated.tsholds theactionalias;useActionwarns once in dev.Size (entry chunk, brotli, Vite production build through the
solidentry):Tests:
npm test(710 client tests, 96 server tests, type tests) passes andpnpm build(fs gate) passes. A new test checks that a router with no actions subscribes at mount and thatsingleFlight: falsenever subscribes.🤖 Generated with Claude Code
https://claude.ai/code/session_01CLHVghj7oAvSMqnq9WRKdv