Repository navigation
Build and release official Encrypted Spaces bridge fork - #1
Merged
Merged
Conversation
Prevent removed members from reading stale cached rows or receiving ambiguous write errors before their removal is fast-forwarded. Allow runtime tests to launch the exact release binaries and trust ID.
Bound native transport deadlines, preserve uncertain commit outcomes, and require trusted default-branch attestation before publishing release artifacts.
There was a problem hiding this comment.
Pull request overview
This PR turns the Encrypted Spaces SDK into an “official” runtime bridge deliverable by adding a versioned, bounded JSONL stdio protocol (encrypted-spaces-bridge), hardening SDK behaviors needed for long-running native clients (timeouts, trusted restore, broadcast delivery semantics), and introducing release/upstream-sync automation to produce and attest packaged backend/bridge binaries.
Changes:
- Add
bridge/crate implementing protocol framing, request coordination/cancellation, and a process-configured runtime over the Rust SDK, plus extensive integration tests. - Harden the SDK with native request deadlines, bounded HTTP body streaming, commit-unknown semantics for timed-out transmitted mutations, trusted snapshot restore, and “only publish applied broadcasts” behavior.
- Pin workspace/tooling for reproducible releases (Rust toolchain, dependency versions), add legal/notice artifacts, and introduce GitHub Actions workflows for release building/attestation and upstream compatibility sync.
Reviewed changes
Copilot reviewed 27 out of 29 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| sdk/src/websocket_transport.rs | Add native request timeouts, bounded HTTP body collection, and stricter pending-request correlation handling. |
| sdk/src/state.rs | Add restore_trusted and snapshot decoding helper to enforce a process-pinned trust bundle on restore. |
| sdk/src/schema.rs | Add ApplicationSchema::FromOwnedBytes to avoid requiring 'static schema bytes in long-running processes. |
| sdk/src/lib.rs | Add tests validating trusted restore rejects mismatched trust bundles. |
| sdk/src/changelog.rs | Adjust broadcast fast-forward handling and add tests ensuring stale broadcasts aren’t re-emitted. |
| sdk/src/broadcast.rs | Only forward broadcast events to subscribers when the SDK actually applied them. |
| rust-toolchain.toml | Switch toolchain pinning to Rust 1.94.1. |
| README.md | Document the runtime bridge contract, limits, and release workflow model. |
| PATCHES.md | Add upstream delta ledger describing intentional fork changes. |
| NOTICE | Add Apache-style NOTICE content for fork attribution. |
| ffproof/methods/guest/Cargo.lock | Update internal crate versions to 0.1.0 within guest lockfile. |
| ffproof/Cargo.toml | Make real-proofs enable risc0-zkvm/prove. |
| Cargo.toml | Add bridge workspace member, bump workspace version, pin kdl to =6.5.0. |
| Cargo.lock | Bump workspace crate versions, add encrypted-spaces-bridge, and align dependency graph to kdl 6.5.0. |
| bridge/tests/stdio.rs | Add protocol-level stdio framing/validation/termination behavior tests. |
| bridge/tests/runtime.rs | Add end-to-end runtime suite validating bridge behavior, release contracts, and CI workflow invariants. |
| bridge/src/schema.rs | Define JSONL protocol request/operation schema and validation. |
| bridge/src/runtime.rs | Implement process-configured runtime that executes operations against the SDK with pinned trust roots. |
| bridge/src/protocol.rs | Implement coordinator/worker model for bounded frames, pending limits, cancellation, and wait-on-change sync. |
| bridge/src/main.rs | Add bridge binary entrypoint including --version handling. |
| bridge/Cargo.toml | Add bridge package manifest and real-proofs feature wiring. |
| backend/src/schema.rs | Derive PartialEq for schema structs to support snapshot trust comparisons. |
| backend/src/error.rs | Add CommitOutcomeUnknown error variant with Display formatting. |
| backend/server/src/app_config.rs | Enable clap version on server CLI. |
| .github/workflows/upstream-sync.yml | Add weekly upstream sync automation with CI-gated fast-forward merge behavior. |
| .github/workflows/upstream-compat.yml | Add trusted, read-only compatibility workflow to validate upstream sync candidates. |
| .github/workflows/release-publish.yml | Add trusted workflow_run publisher that attests and publishes only verified main/tag builds. |
| .github/workflows/release-bridge.yml | Add release build matrix, packaging, and real-proof gate for packaged binaries. |
| .github/scripts/ci_matrix.json | Add bridge crate to CI package matrix. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Bind compatibility results to every dispatch input and reject sync heads whose parents or tree differ from the recorded fork/upstream merge.
Author
|
CI follow-up for
|
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
Design
See the platform design.
Implementation Plan
See the locked implementation plan.
Scope Manifest
encrypted-spaces-runtime-bridgeRuntime launch transcript
Build:
Launch:
Local constraint: macOS uses
RISC0_SKIP_BUILD=1for launch validation because the local real guest build faults in the RISC Zero toolchain. The unskipped LinuxPackaged Linux real-proof gatebuilds real guest ELFs, launches packaged binaries withoutr0vmon PATH, and generates and verifies a real fast-forward receipt before attestation.Verification
cargo test --workspace --locked -- --test-threads=1cargo clippy --workspace --all-targets --locked -- -D warningscargo fmt --all -- --checkactionlinton release, publisher, upstream-sync, and compatibility workflowsDoc-reconciliation: clean
Generated by the implementing agent.
Regression proof
With exact-tree and full-input correlation checks reverted:
With the checks restored: