Repository navigation
fix(archive): preserve checkpoint lease compatibility - #143
Merged
Merged
Conversation
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.
The incoming refactor #141 moved checkpoint ownership from the published
.lock/owner.jsondirectory to.locks. That permits a new writer to acquire a lease while the published release holds the same checkpoint. An isolated regression fails on merged 9f8f719 because acquisition resolves instead of refusing the live legacy holder.Retain the published host-format lease protocol and recognized local stale recovery until the shared lock adapter can support it. Keep the shared atomic checkpoint write, symlink-folder resolution, temporary-file cleanup and the rest of #141’s download/module refactor. Archive writer/partial/publication leases remain shared in Core. This avoids treating the already-published format as unused.
Validation: 29 focused lease/sync/cancellation tests, full typecheck and docs pass. Real-module interoperability against installed registry 0.22.1/Core 0.307.0 passes: old excludes new, new excludes old, and both round-trip one checkpoint in sequence. Full coverage passes all 486 tests across 58 files, with 98.46% lines and 93.77% branches. All fixtures use temporary state and no account data. The live-holder regression is retained alongside existing stale/foreign/replaced-owner and concurrent-acquisition contracts.