Add three reusable client-side helpers (prefs store, sealed blob store, pairing)#52
Open
Herklos wants to merge 1 commit into
Open
Add three reusable client-side helpers (prefs store, sealed blob store, pairing)#52Herklos wants to merge 1 commit into
Herklos wants to merge 1 commit into
Conversation
…b store; bump to alpha.64 Extract three reusable client-side helpers so downstream apps can hold config instead of logic, and bump all packages to 3.0.0-alpha.64 (lockstep). - spaces: createPrefsStore — generic per-identity preference store on the _spaces registry extra-field (cache + subscriptions + KV persistence + CAS-safe synced write over updateSpacesExtraField); write-through or debounced from one config. - spaces: startDevicePairing / completeDevicePairing — device-pairing rendezvous over the public _pairing/<nonce> slot, centralizing the hash-guarded push, slot clear, and mandatory root-pinning invariants. Adds SpaceLayout.pairingPull/pairingPush (default _pairing/<nonce>). - client: createSealedBlobStore — cached sealed-blob store (in-memory plaintext cache + KV-persisted ciphertext cache) over the ByteSealer seal/push/pull core; app supplies a path/AAD strategy. TypeScript only this release; Python twins deferred (client-side conveniences, no protocol/wire change). Tests + docs + CHANGELOG updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wr2a6mBbDwUncEfa2NHBRp
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.
Extracts three reusable client-side helpers from downstream applications into the SDK, allowing consuming libraries to hold configuration instead of logic. TypeScript only this release; Python twins are deferred (these are client-side conveniences over existing primitives with no protocol/wire changes).
Key Changes
@drakkar.software/starfish-spacescreatePrefsStore— Generic per-identity preference store persisted on the_spacesregistryextra-fieldstartDevicePairing/completeDevicePairing— Device pairing over a public rendezvous slot_pairing/<nonce>rendezvousstarfish-pair:, any custom<name>:or*-pair:prefix)@drakkar.software/starfish-clientcreateSealedBlobStore— Cached sealed-blob store with two-tier cachingByteSealerseal/push/pull core with in-memory decrypted-plaintext cache (default 64 MB, FIFO eviction) and KV-persisted ciphertext cache (default 4 MB)SealedBlobPathsstrategy mapping blob id + context to storage paths and seal AADFileTooLargeErrorwhen payload exceeds configuredmaxBytesImplementation Details
PrefsStoreincludes detailed documentation on monotonic merge requirements for debounced mode to prevent mid-debounce clobbering*-pair:format while maintaining root pinningindex.tsfileshttps://claude.ai/code/session_01Wr2a6mBbDwUncEfa2NHBRp