Skip to content

Export local workspaces with retained file history - #107

Draft
jerelvelarde wants to merge 2 commits into
release/local-mvp-candidatefrom
feat/local-export
Draft

jerelvelarde wants to merge 2 commits into
release/local-mvp-candidatefrom
feat/local-export

Conversation

@jerelvelarde

Copy link
Copy Markdown
Contributor

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.0 capability 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.md describe 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.

@vercel

vercel Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
folderbase-docs Ignored Ignored Sep 15, 2026 5:09am UTC

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant