Uh oh!
There was an error while loading. Please reload this page.
fix: replay frozen artifacts from the local store before registry access - #156
Merged
Conversation
Preserve the lock-authoritative offline replay implementation while bringing canonical asdf routing and deterministic Devbox/Flox export into the exact current merge candidate.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 4, 2026
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 freeto 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.
Root cause
Frozen install already carries immutable package identity and SHA-256 in
.zpkg.lock, and the transactional installer can authenticate locally owned store/cache bytes from that lock. The recursive prefetch facade nevertheless performed an unconditionalregistry.get_version(...)before it entered the shared artifact-acquisition path.That made exact frozen replay fail after the original registry was deleted, even though the content-addressed store or artifact cache contained the locked bytes. The independent global-profile canary exposed the extracted-store case on Ubuntu and macOS.
Fix
VersionMetadatafrom the immutable lock whenever the extracted store object or verified artifact cache is present;ensure_artifactpath, preserving process locking, cache verification, extraction, and dependency-manifest checks;Regression coverage
tests/frozen_offline_prefetch.rsnow builds and packs a real package, writes an exact lock, and proves all three states:Exact candidate:
Independent evidence
zed-pkg-test/zed-pkg-e2e#57built the compiled CLI at the identical product implementation and passed the complete global-package lifecycle on Ubuntu 24.04 and macOS 15, including first install, collision rollback, deletion of registry and profile materialization, lock/store-only frozen restoration, alias routes, tamper-preserving uninstall, clean uninstall, and credential-marker scanning. That harness merged as5986aa9784ce4b0837e5bd3d8fce7d64d5710a72.This PR is synchronized with current
main, including canonical asdf routing (#143) and deterministic Devbox/Flox export (#122). Repository-wide and the focused cross-platform gates remain the exact merge gates.No credential, network registry, or mutable selector is introduced.