Skip to content

feat: support snapshot#22

Merged
InftyAI-Agent merged 7 commits into
InftyAI:mainfrom
kerthcet:feat/support-snapshot
Jun 29, 2026
Merged

feat: support snapshot#22
InftyAI-Agent merged 7 commits into
InftyAI:mainfrom
kerthcet:feat/support-snapshot

Conversation

@kerthcet

Copy link
Copy Markdown
Member

What this PR does / why we need it

Which issue(s) this PR fixes

part of #6

Special notes for your reviewer

Does this PR introduce a user-facing change?


kerthcet added 5 commits June 27, 2026 11:06
Signed-off-by: kerthcet <kerthcet@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
Copilot AI review requested due to automatic review settings June 29, 2026 15:36
@InftyAI-Agent InftyAI-Agent added needs-triage Indicates an issue or PR lacks a label and requires one. needs-priority Indicates a PR lacks a label and requires one. do-not-merge/needs-kind Indicates a PR lacks a label and requires one. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Jun 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces an initial “Git-inspired” snapshot subsystem in the sandd daemon crate (content-addressable object store + tree metadata + snapshot manager), along with supporting docs, examples, and benchmarks. It also reshuffles documentation links to point at new docs/proposals/* specs and adds a sandd library target to expose the snapshot API to examples/benches.

Changes:

  • Add a new sandd::snapshot module (object store, tree model, snapshot manager, types) with async create/restore/list/get/delete operations.
  • Add snapshot examples and Criterion benchmarks; add a Makefile target to run/view benchmark results.
  • Add proposal docs (Tunnel/Protocol/Snapshots) and update repo documentation links to point to the proposals.

Reviewed changes

Copilot reviewed 17 out of 20 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
sandd/src/snapshot/types.rs Defines Snapshot/SnapshotInfo metadata types.
sandd/src/snapshot/tree.rs Defines tree entry format + mode/mtime helpers.
sandd/src/snapshot/object_store.rs Implements BLAKE3 content-addressable blob store + tests.
sandd/src/snapshot/manager.rs Implements snapshot creation/restoration + snapshot listing APIs + tests.
sandd/src/snapshot/mod.rs Exposes snapshot submodules and re-exports key types.
sandd/src/main.rs Exposes snapshot module from the binary crate; simplifies command execution path.
sandd/src/lib.rs Adds a library crate entrypoint exporting snapshot.
sandd/Cargo.toml Adds library target, examples, benchmarks, and snapshot-related deps.
sandd/benches/snapshot_bench.rs Adds Criterion benchmarks for snapshot create/restore scaling.
examples/snapshot_simple.rs Adds a simple end-to-end snapshot demo.
examples/snapshot_real_project.rs Adds a “real repo” snapshot demo using git clone.
README.md Updates documentation links to proposal docs.
Makefile Adds benchmark / benchmark-results targets.
hack/docker/README.md Updates tunnel doc link to proposals path.
examples/tunnel-simple/README.md Updates tunnel doc links to proposals path.
docs/proposals/TUNNEL.md Adds tunnel mode proposal documentation.
docs/proposals/SNAPSHOTS.md Adds snapshot proposal/design documentation.
docs/proposals/PROTOCOL.md Adds protocol proposal/spec documentation.
docs/DEVELOP.md Updates protocol spec link to proposals path.
Cargo.lock Locks new dependencies for snapshot/bench/proposal additions.
Comments suppressed due to low confidence (1)

Makefile:145

  • benchmark-results uses open, which is macOS-specific and will fail on Linux/Windows. Prefer a portable xdg-open/open fallback or print the path for manual opening.
.PHONY: benchmark-results
benchmark-results:
	@echo "Benchmark results for sandd daemon:"
	@echo ""
	open target/criterion/report/index.html


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sandd/src/snapshot/manager.rs Outdated
Comment thread sandd/src/snapshot/manager.rs
Comment thread sandd/src/snapshot/object_store.rs
Comment thread sandd/src/snapshot/object_store.rs
Comment thread sandd/src/snapshot/object_store.rs
Comment thread sandd/src/snapshot/object_store.rs Outdated
Comment thread sandd/Cargo.toml
Comment thread docs/proposals/SNAPSHOTS.md
Comment thread sandd/src/snapshot/manager.rs Outdated
kerthcet added 2 commits June 29, 2026 17:15
Signed-off-by: kerthcet <kerthcet@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
@kerthcet

Copy link
Copy Markdown
Member Author

/lgtm

@kerthcet

Copy link
Copy Markdown
Member Author

/kind feature

@InftyAI-Agent InftyAI-Agent added the lgtm Looks good to me, indicates that a PR is ready to be merged. label Jun 29, 2026
@InftyAI-Agent InftyAI-Agent added feature Categorizes issue or PR as related to a new feature. and removed do-not-merge/needs-kind Indicates a PR lacks a label and requires one. labels Jun 29, 2026

@InftyAI-Agent InftyAI-Agent left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved: PR has both lgtm and approved labels

@InftyAI-Agent InftyAI-Agent merged commit 834e658 into InftyAI:main Jun 29, 2026
20 checks passed
@kerthcet kerthcet deleted the feat/support-snapshot branch June 29, 2026 19:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. feature Categorizes issue or PR as related to a new feature. lgtm Looks good to me, indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a label and requires one. needs-triage Indicates an issue or PR lacks a label and requires one.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants