mirror of
https://github.com/kvcache-ai/AgentENV.git
synced 2026-11-05 01:17:36 +00:00
[PR #71] [CLOSED] [1/4] feat(snapshot): template build-context archive store (posixfs + oss) #156
Labels
No labels
bug
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/AgentENV#156
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/AgentENV/pull/71
Author: @JoyboyBrian
Created: 7/29/2026
Status: ❌ Closed
Base:
main← Head:e2b-build/03-build-file-store📝 Commits (5)
81a8edbfeat(snapshot): template build-context archive store (posixfs + oss)a858335fix(snapshot): align build archive cache semantics7e0dff1fix(snapshot): clarify build upload grant lifecycleba92573fix(snapshot): reject non-file build archive entries2ea4bccfix(snapshot): prune abandoned build imports📊 Changes
13 files changed (+1259 additions, -0 deletions)
View changed files
📝
config/default.toml(+2 -0)📝
docs/src/configuration/reference.md(+1 -0)📝
src/snapshot/image_export/service.rs(+2 -0)📝
src/snapshot/manager.rs(+8 -0)➕
src/snapshot/repository/backends/oss/build_files.rs(+170 -0)📝
src/snapshot/repository/backends/oss/mod.rs(+1 -0)📝
src/snapshot/repository/backends/oss/repository.rs(+12 -0)📝
src/snapshot/repository/backends/posixfs/backend.rs(+12 -0)➕
src/snapshot/repository/backends/posixfs/build_files.rs(+835 -0)📝
src/snapshot/repository/backends/posixfs/mod.rs(+2 -0)➕
src/snapshot/repository/build_files.rs(+202 -0)📝
src/snapshot/repository/interfaces.rs(+10 -0)📝
src/snapshot/repository/mod.rs(+2 -0)📄 Description
What
Add repository-backed template build-context archive storage for POSIX and OSS deployments, including immutable content-addressed archives, single-use upload grants, bounded pruning, and a
SnapshotManageraccessor.This is the first layer of the active COPY/ADD stack, replayed directly onto current main at
00ba6cb. The alias-rebuild work in #70 is intentionally not a dependency and is parked pending the planned alias-system refactor.e2b-build/03-build-file-storee2b-build/04-upload-apie2b-build/05-copy-plane2b-build/06-copy-execWhy
The E2B SDK uploads build-context archives separately from the template build request. This layer provides the shared repository primitive needed to accept those uploads on one node and consume them during a later build, including clustered deployments backed by the OSS repository.
Related: #28. The original PR remains the full concept/reference discussion.
Scope and non-goals
This layer contains only the storage interfaces, POSIX/OSS implementations, repository wiring, accessors, and focused storage tests. It does not expose an HTTP upload surface or execute COPY/ADD steps. Existing-alias rebuild remains unsupported.
Exact layer diff: 00ba6cb...e2b-build/03-build-file-store
Design
TemplateBuildFileStoreabstracts archive lookup, import, materialization, upload-grant issue/verify/claim, and pruning.Compatibility and operations
Validation
The rewritten stack was validated on Linux against the #74 tip:
This layer includes focused tests for immutable import, first-write-wins publication, grants/claims, pruning, mtime refresh, and failure cleanup. GitHub CI validates this cumulative branch independently.
Reviewer notes
The main review surfaces are single-use grant behavior, no-clobber publication, and bounded cleanup. #70 is not required to merge this stack.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.