Skip to content

Version Packages (next) - #587

Open
github-actions[bot] wants to merge 1 commit into
nextfrom
changeset-release/next
Open

Version Packages (next)#587
github-actions[bot] wants to merge 1 commit into
nextfrom
changeset-release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to next, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

next is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on next.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@solidjs/router@2.0.0-next.18

Patch Changes

  • c81606b: liveQuery() — keyed live queries over value-shaped streams (prototype)

    Declares a keyed live query: an async-iterable producer whose yields are
    successive values of one logical query, re-yielding current state on every
    invocation. liveQuery IS the live declaration — no separate wrapper needed:
    server functions are declared GET at creation (like query), the server
    face brands the resolved iterable so SSR live policy applies (document face
    renders the first value, hydration adopts it and reconnects), and the
    client channel owns reconnect-with-backoff when a connected stream dies.

    One connection per (name + args) key is shared by every consumer: late
    subscribers receive the latest value immediately, delivery is latest-wins,
    and the connection closes when the last consumer leaves (microtask linger
    so a re-running memo doesn't thrash it). Connections are lazy — calling the
    function returns a live-branded iterable; the first pull connects — so
    hydration traces open nothing. Retry is for transient deaths only: a
    definite rejection (4xx — the transport stamps HTTP statuses onto
    failures) ends the channel and surfaces the error to consumers, like a
    first-connect failure does. On the server, channels are request-scoped:
    every consumer of a key within one render observes the same first value
    (the record is retained past teardown for replay), and separate requests
    never share connections. Calling under preload intent warms the channel
    (a temporary hold spans the preload window), so navigation renders against
    an already-connected stream instead of holding the transition on connect
    plus first yield.

    Live queries participate in both router data protocols. Explicit
    revalidate(key) reconnects (the producer re-yields current state on
    invocation). Single-flight participation is delivery-side: a mutation's
    flight payload pushes straight into open channels — the mutation response
    is the round trip — while the post-mutation sweep leaves the healthy
    connection in place, since the live stream is itself the freshness
    mechanism. New registerRevalidateHook/registerFlightDataHook seams in
    query let keyed stores join those protocols without coupling.

    The callable carries the query conventions (key, keyFor) plus a
    reactive status(...args) read ("idle" | "connecting" | "connected" |
    "reconnecting" | "closed").

@github-actions
github-actions Bot force-pushed the changeset-release/next branch from ddd9816 to 4f1f4a6 Compare August 22, 2026 06:58
@github-actions
github-actions Bot force-pushed the changeset-release/next branch from 4f1f4a6 to 55dfbb7 Compare August 22, 2026 07:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants