Repository navigation
Conversation
This PR publishes complete cache artifacts and mappings atomically, restores or rebuilds after eviction, and lets compatible executables select a shared local store while retaining a private fallback for older executables.
This PR reserves sibling temporary files with process and monotonic-clock identifiers, retaining exclusive creation and collision retry without requiring a system entropy source.
kim-em
marked this pull request as ready for review
November 6, 2026 05:20
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.
This PR makes Lake's local artifact cache safe to share between cooperating workspaces and adds an opt-in shared store with private fallback for unsupported invocations.
Artifacts are validated in invocation-unique temporary files before publication, output and revision metadata is replaced as complete files, and builds recover from cache entries disappearing during restoration or archive unpacking. Existing private-cache behavior and cached project configuration layouts are preserved.
LAKE_SHARED_CACHE_ROOTselects a toolchain-scoped namespace only for supported release installations with restored outputs and working hard links on the workspace filesystem.LAKE_CACHE_DIRremains the private fallback exported to child invocations, so older Lake binaries keep using private storage. Explicit private overrides remain effective. This adds no retention limits or work admission policy.The integration tests exercise paused and overlapping HTTP downloads, killed publishers, controlled partial binary/text copies, extra download destinations in cold and warm stores, concurrent metadata publication, cross-workspace reuse and rebuild isolation, cached configuration alternation with stock Lake, executable permissions, archive overwrite isolation, and controlled artifact/store removal during restoration and unpacking. Existing cache and transfer fixtures cover private operation. The full Linux build and test suite passes in CI.