feat!: complete compiler-backed causal client replica#132
Merged
patrickleet merged 28 commits intoJul 25, 2026
Conversation
Implements [[tasks/distributed-js-client-1]]
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Implements [[tasks/graphql-qs-client-replica-2]]
Implements tasks/graphql-qs-client-replica-4.
Implements [[tasks/graphql-qs-client-replica-5]]
Implements tasks/graphql-qs-client-replica-15.
Implements [[tasks/graphql-qs-client-replica-6]]
Implements the server and compiler slice of [[tasks/graphql-qs-client-replica-10]].
Covers [[tasks/graphql-qs-client-replica-10]].
Generate role-scoped query and command artifacts from Rust Surface IR, make the normalized causal replica the only public client runtime, and migrate the SvelteKit e2e consumer to the generated contract. BREAKING CHANGE: remove the pre-release document cache, manual target/reconcile APIs, raw GraphQL command catalog, and pilot persistence format.
Implements [[tasks/graphql-qs-client-replica-18]]
Implements [[tasks/graphql-qs-client-replica-20]].
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.
Summary
projector declarations the typed source for deterministic
role/application-scoped client artifacts
.graphqloperations into typed query, live, command,route, normalization, index, SSR, SvelteKit, and React artifacts
replica for all UI reads, including independent optimistic layers, durable
status recovery, confirmed-base revalidation, optional persistence, and
redacted diagnostics
comparability; order shared root and nested indexes only with comparable
server vectors
authorized
$distributedand$distributed/adminentrypointscatalogs, public reconciliation APIs, and compatibility shims
Developer experience
Rust declares the application surface and typed commands. A route declares its
view once in
+page.graphql. The generated operation and command APIs then ownSSR, hydration, normalized reactive reads, live updates, optimistic effects,
causal retirement, authorization-scope changes, and conservative revalidation.
Durable design decisions and specifications live in Distributed's GitKB rather
than the package source tree.
Breaking change
This is the intentional pre-release cutover.
QueryCache, manualtarget/at/bymetadata, snapshot rollback, generated policy maps,timer-based reconciliation, raw GraphQL command registration, and the pilot
persistence format are removed without compatibility shims.
Verification
passed all 19 workflow jobs on exact head
e328879; CodeRabbit also passedcargo test --workspace --all-features --all-targets, formatting, ignoredCLI/scaffold harnesses, and the each-feature matrix pass
checks, six API entrypoint consumers plus package metadata, bundle isolation,
publint, and audit checksnpm publish --dry-runreports162.5 kB packed / 821.8 kB unpacked, and nothing was published
Svelte typecheck with 0 errors/0 warnings, and 7/7 structural tests
1 data-conditional admin test skipped
git diff --checkis cleanThe final Node 20 replay also verifies that pending
receipt.projectedpollingkeeps its runtime-owned timer alive until settlement or disposal.
GitKB
tasks/graphql-qs-client-replica-1— completedtasks/graphql-qs-client-replica-12— completedtasks/graphql-qs-client-replica-14— completedspecs/query-layer/v1/client-replicaspecs/query-layer/v1/client-compilerspecs/query-layer/v1/causal-command-protocolspecs/query-layer/v1/stateIntegration
This PR targets
tasks--graphql-qs-epic, which remains the head of PR #127.PR #129 is closed and contains no unique changes. No PR merge or npm
publication is part of this update.
Screenshots: N/A — this is a compiler/runtime/package architecture cutover;
e2e-ui remains the contract consumer.