Repository navigation
Conversation
liveQuery wraps a server function producer in live() (which implies GET) so the channel multicasts a connection with the transport's live lifecycle, and forwards hydration's served value to the first connection so an unchanged takeover costs nothing on the wire. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fmb4aQtDJWoA8CUktR9QoZ
🦋 Changeset detectedLatest commit: 1d13328 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 |
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.
Requested by Ryan · project thread
Summary
liveQuery(fn, key)over a server function now wraps it inlive()(which implies GET), so the channel multicasts a connection with the transport's live lifecycle: live address,Last-Event-IDresume, response-lifetime deaths,Retry-After. Before, it only appliedGET, soliveQuery(fn)silently lacked all of that unless writtenliveQuery(live(fn)). An explicitlive(fn)passes through untouched.Hydration takeover's
LIVE_RESUME_FROMstamp on the subscriber iterable is forwarded onto the channel's firstlive()iterable, so a takeover whose value is unchanged costs nothing on the wire.Release order: depends on solidjs/solid "live() implies GET" shipping first (its seam edit keeps
livefrom pulling the transport into plain-producer apps). Bump the@solidjs/webpeer to that rc before releasing. On older@solidjs/webthis still works (live POSTs at the live address).Bytes (brotli, app bundles, measured against local solid with the seam edit): query + server fn without liveQuery +0; liveQuery over a bare server fn +1.33 KB (live() itself, which that app needs);
liveQuery(live(GET(fn)))already +18 B; liveQuery over a plain non-server producer +1.85 KB oflive()it never runs (no static way to drop it without charging every server-function app).How did you test this change?
pnpm test: 713 client, 96 server, types green (against published@solidjs/web)./_server/live/<id>; explicitlive()passes through; the hydrated value is forwarded to the first connection.prettier --checkclean on the changed files.Generated by Claude Code