Repository navigation
Export local workspaces with retained file history - #107
Draft
jerelvelarde wants to merge 2 commits into
Draft
jerelvelarde wants to merge 2 commits into
jerelvelarde wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This branch has not been deployed
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.
Problem and behavior
A raw workspace copy preserves bytes but cannot provide valid authority for writes at a new physical root. Existing reconstruction packages preserve one selected snapshot and omit other per-file history.
Add the experimental
folderbase.local-export@0.1.0capability with Core, CLI and typed SDK interfaces to list retained snapshots, create a closed local package, and restore it into an absent destination. The package keeps the selected folder snapshot and all retained ordinary-file history for selected and ancestry-proven retired Objects. Git metadata is explicitly snapshot-only. Older snapshot selection keeps later retained Versions of included Objects and reports excluded later-created identities.Restoration derives new local authority and installs exact original ordered Version records before publication. Digest-bound retries validate the entire retained history and anchor inventory. Existing destinations and source bytes are preserved; invalid, changed or incomplete inputs refuse. The existing reconstruction 0.1 format and generic behavior remain unchanged.
Scope and integration
Stacked on
release/local-mvp-candidate(#98); refs #99. This is unreleased and is not available in public Core 0.7.2. Complete capability discovery is limited to supported Linux/macOS targets. Windows keeps the explicit refusal surface.The profile preserves one complete full snapshot, not the entire historical snapshot graph. It keeps distinct retired Object generations separate, retains original legacy permission metadata, and refuses bounded-overflow cases without truncation. ADR-0022 and
docs/local-export-0.1.mddescribe the retention, CLI/SDK recipe and durability boundaries.The combined identity/export work depends on #106: verified ancestry anchors must be wired into ownership resolution with metadata-only history reads, and continued edits/capture/re-export on restored multi-generation paths must pass before the combined MVP is delivered.
Validation
Standalone focused tests cover ordered and duplicate-byte Versions, old snapshot selection, Git bytes, executable fidelity, corruption, occupied destinations, observed source changes, explicit copied-archive export, exact replay, physical-root refusal, repeated generations and reached interruption checkpoints. Public black-box conformance and clean SDK consumers exercise export, restore, replay, continued file edits/capture and historical recovery.
All 12 required local gates passed on clean
3f8a6b368d7bafa614c170dcfe06cbeea7fd8963: policy/naming/format/Clippy, full workspace (1,156 passes, 3 ignored), CLI JSON (108 passes), all 9 advertised capabilities, 15 runner self-tests, SDK tests/typecheck, fresh extracted Cargo packages and packed SDK consumer proof, and optimized CLI build. Release binary SHA-256:7b385b455980c718a3644e0c03938a855c1abf384c83d3663a1d31da4cec8a6b. Native Windows execution was not run on this macOS host. No release or deployment is included.