This repository was archived by the owner on Oct 21, 2026. It is now read-only.
Repository navigation
feat(solid-start): Convex reads ride the router's liveQuery in the browser - #6
Merged
Merged
Conversation
…owser Follows celados/delta#188 (lib/solid/convex). The browser half of the binding is now a channel of @solidjs/router's liveQuery: readers of one question share a subscription and a link preload warms it. The server half keeps its own per-request promise; serverConvex takes the deployment URLs. A subscription now opens and closes a microtask after its reader asks or leaves; test fakes wait for a subscriber before answering. Why: templates/solid-start/web/src/lib/convex-server.ts#function createServerConvex | query must return the same promise per (function, args) for the whole render; the router's query()/liveQuery() dedupe the request but return a new pending answer per call, which a retried <Loading> never settles on Why: templates/solid-start/web/src/lib/convex.ts#const terminal | a Convex query error must carry a 4xx status, or liveQuery retries it with backoff forever and <Errored> never sees it
3 tasks
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Follows https://github.com/celados/delta/pull/188, where the binding now lives in
lib/solid/convex. The template copies it:web/src/lib/convex.tsandconvex-server.tsmatch that module, minuscreateQueryStore(nothing here uses it).What changes
@solidjs/router'sliveQuery. Readers of the same question share one subscription, and a link preload warms it.query()/liveQuery()do not settle a retried<Loading>(probe table in delta#188).serverConvexnow takes the deployment URLs, passed inmiddleware.ts.<Errored>;liveQuerywould otherwise retry it with backoff.@solidjs/router.Verification
bun run checkpasses: web 16 tests, extension 24 tests, typecheck, dead code.subFetch(the compute runs under a Promise that never runs executors; the result is pulled only if it is its own iterator). Negative control: a source that opens its channel when called fails it.