mirror of
https://github.com/kvcache-ai/AgentENV.git
synced 2026-11-05 01:17:36 +00:00
[PR #304] [MERGED] fix(p2p): publish committed OSS layer artifacts #332
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#332
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/304
Author: @WindSongShaoGe
Created: 9/19/2026
Status: ✅ Merged
Merged: 9/28/2026
Merged by: @LSX-s-Software
Base:
main← Head:fix/p2p-publish-committed-layers📝 Commits (1)
461b246fix(p2p): publish committed OSS layer artifacts📊 Changes
8 files changed (+373 additions, -50 deletions)
View changed files
📝
crates/e2e-tests/tests/snapshot_oss_e2e_test.rs(+143 -5)📝
docs/src/internals/p2p-design.md(+3 -1)📝
src/snapshot/manager.rs(+68 -11)📝
src/snapshot/p2p.rs(+2 -4)📝
src/snapshot/repository/backends/common/acr/publisher.rs(+22 -7)📝
src/snapshot/repository/backends/common/recontainerize.rs(+39 -1)📝
src/snapshot/repository/backends/oss/repository.rs(+74 -21)📝
src/snapshot/repository/interfaces.rs(+22 -0)📄 Description
What
Publish OSS snapshot layers under their committed digest even when local image configs have no descriptor or upload preparation produces different bytes.
Suggested title:
fix(p2p): publish committed OSS layer artifactsWhy
Post-commit publication currently scans local image configs. Descriptorless memory layers have no digest to advertise, and compressed or dense-exported upload files are dropped before publication. Consumers cannot discover the committed layer by its digest.
Related issue
Follow-up to the P2P snapshot publication investigation. PR #293 addressed URL probe Range compatibility; this PR addresses the separate publication gaps.
Scope and non-goals
Includes committed layer publication and its regression tests. Digest-only OSS reads and the dedicated full-chain E2E harness remain separate changes.
Design and behavior changes
Compatibility and operations
Validation
make fmtmake clippymake test-unitmake -C services test(required whenservices/changes)maketargetCommands and results:
On unmodified main
531a002with only the integration-test changes applied, all threesnapshot_oss_publish*tests fail because the committed digest is absent from the peer. With the implementation, all pass. Real MinIO/iroh tests compare peer bytes against OSS objects, including compression and sparse dense-export, and verify access after capture cleanup.Skipped checks and reasons: the broader capability/VM suites and E2B compatibility suite were not run for this publication-only change. No Go or generated schema changes. No performance benchmark was run.
Risks and reviewer notes
Prepared temporary files now remain until post-commit P2P publication finishes, extending their disk lifetime. Review the ownership transfer through
SnapshotPublicationand the dense-export temporary guard. The read-side digest route is intentionally a separate PR, so this change alone does not establish end-to-end zero-origin restore.Checklist
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.