Slipstream sdk private - #2
Draft
Chlup wants to merge 23 commits into
Draft
Conversation
…ase versions prepare-release.sh and release.sh now detect a SemVer pre-release suffix in the version (e.g. 2.6.0-alpha.1) and pass --prerelease to gh release create/edit, so alpha/beta/rc releases no longer need to be marked as pre-releases manually in the GitHub UI. This covers both the local release flow and the Build FFI XCFramework workflow, which calls prepare-release.sh. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…g release The --force-overwrite-existing-release path only re-uploads assets via `gh release upload --clobber`, which cannot change release properties, so a pre-release version force-overwritten onto a release that already existed without the pre-release bit (e.g. one created before pre-release detection was added) stayed presented as a full release. Follow the upload with a guarded `gh release edit --prerelease` so the existing release gains the detected pre-release bit; stable versions skip the edit call entirely. Found by autonomous code review of PR zcash#1802. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mark GitHub releases as pre-releases for SemVer pre-release versions
…endored) The slipstream engine lives in its own repository (https://github.com/LukasKorba/slipstream); the SDK references the tagged v0.5.0 release via a git dependency instead of carrying the code: - Cargo.toml: slipstream-core = { git, tag = "v0.5.0" } + [patch.crates-io] entries for the engine's two minimally-patched fork crates (orchard GLV endomorphism DH + batch seam; zcash_note_encryption BatchDomain seam — byte-identical, KAT-gated; the patches disappear once the seams land upstream). - Swift: SlipstreamSynchronizer (actor, conforms to Synchronizer) + engine glue; opt-in — the existing SDKSynchronizer path is byte-for-byte intact. - FFI: purely additive zcashlc_slipstream_* C symbols; existing symbols and struct layouts untouched. - Source compatibility: WalletInitMode and the prepare(for:) overload are deprecated shims forwarding to the new prepare(with:walletBirthday:name: keySource:) (async, closure and Combine surfaces); allTransactions() is the one new protocol requirement (see MIGRATING.md). - SimpleConnectionProvider: bounded SQLite busy timeout (the engine writes data.db under WAL while Swift reads concurrently). Gates: cargo check green against the git tag; swift build + OfflineTests 515/0; SwiftLint clean on touched files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The SDK changelog now carries one entry for Slipstream itself plus the three changes that touch existing behavior (ZINIT0006 seed guard, WalletInitMode deprecation, post-submit foundTransactions emission) — the deleted bullets described fixes to code that is new in this PR. docs/SLIPSTREAM_DESIGN.md and docs/SYNC_PERFORMANCE_PROPOSAL.md were internal working documents; the engine repository's own docs (REVIEWING.md, HOSTING.md) are the reviewer entry points. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v0.5.0 predates a fix for a panic when restoring wallets whose birthday lies below the 2022-23 spam era: deep-history batches flooded the sparse checkpoint store (a v0.4 graft-accumulator interaction) and shardtree's checkpoint prune panicked on root-only ingested shard leaves. v0.5.1 prevents the flood and self-heals already-damaged wallets at session open; validated by a full-era 2.4M-block production restore. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… tests Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
f5200e4 (Harden cut-private-release: clean-tree trap restore + push-remote guard) made the EXIT trap remove DOWNLOAD_DIR unconditionally on every exit, success or failure. That left the old inline `rm -rf "$DOWNLOAD_DIR"` right after computing the checksum redundant -- harmless (rm -rf on an already-removed dir no-ops), but two places responsible for the same cleanup instead of one. Drop it so the trap is the sole source of truth, per the original fix spec's "fold into the EXIT trap" requirement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lay comments Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…hed-private Scripts touching only the public repo gain 'public' in the name (release-public.sh, prepare-public-release.sh); the flavor mode switch becomes private-ffi-mode.sh; docs gain a full per-script realm table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A fork PR that modifies .github/workflows/ gets no pull_request CI runs at all, so the workflow keeps its original script path and the old name forwards to prepare-public-release.sh. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Chlup
force-pushed
the
slipstream-sdk-private
branch
from
July 8, 2026 14:21
7e30c05 to
a4e1320
Compare
The public STUB flavor never touches tokio directly (it remains a transitive dependency of the tonic/Tor stack); the direct dependency with its runtime features belongs to the slipstream engine overlay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-private-ffi) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
This code review checklist is intended to serve as a starting point for the author and reviewer, although it may not be appropriate for all types of changes (e.g. fixing a spelling typo in documentation). For more in-depth discussion of how we think about code review, please see Code Review Guidelines.
Author
Reviewer