Repository navigation
v2 fetch: zero-request frozen paths (#414), Go frozen re-download, TS lock platforms and error class, Python index duplicates (#487) - #606
Merged
Conversation
… lock platforms and error class, Python index duplicates (#487) --frozen with a warm cache answers from the installed record whose platform, manifest, layer and bundle digests equal the lock's pin, with zero requests, in all four bindings (Go made three requests and 42.5 MB). --frozen --offline verifies the installed build against the lock with zero network and is CHTYPES_ARTIFACT_PINNED on a mismatch. Three conformance cases pin both, in the v1 and production-v2 corpora. TypeScript: fetch --lock pins every platform; ArtifactError now extends ChtypesError (breaking). Python: index.json deduplicates by digest. Refs #487 Refs #414 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…installed, PINNED when its record does not match Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 10, 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 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.
Refs #487
Refs #414
The production-v2 fetch channel honours
--lock,--frozenand--update, so its pinned paths ship at 2.0.0. This fixes the fetch-layer defects of #487 and the zero-request frozen paths of #414 in all four bindings.The pinned path (#414, and Go's #487 defect 1)
--frozenwith a warm cache makes zero requests. Before any request it looks forunpacked/sha256/<pinned manifest>/verified.json(cache, then system directories); a record for the platform that records exactly the pinned manifest, layer and bundle digests is used as it is. Anything else falls through to the by-digest fetch. Go made 3 requests and 42.5 MB on every run (measured on 1.0.2; onv2the newfrozen-warm-cache-zero-requestscase failed with 3 requests before the fix).--frozen --offlineverifies the installed build against the lock with zero network. A missing lock entry, or no installed build matching the pin, isCHTYPES_ARTIFACT_PINNED.--offlinealone is unchanged. The Go CLI no longer rejects the combination as a usage error.docs/guides/fetch-v1.mdsection 6 spells this out. Three cases in the generated corpus (genfixtures, bothfetch-v1andfetch-v2regenerated):frozen-warm-cache-zero-requests,frozen-offline-lock-match,frozen-offline-lock-mismatch.TypeScript (#487 defects 2 and 3)
fetch --lockpinned only the host platform: the all-platforms write was an opt-in that only the conformance runner set. It is now the default (lockAllPlatforms: falseopts out) and the runner no longer sets it, solock-write-all-platformsexercises the default.ArtifactErrorextendsChtypesError. The abstract base moved toocifetch/errors.ts(no import cycle); it is still exported asChtypesError, codes and messages are unchanged. Names are unchanged, so no parity allowlist change.Python (#487 defect 4)
index.jsonis deduplicated by digest on merge (test_ensure_index_json_never_gets_a_second_entry_for_one_manifestfails without the fix).Verification
Go, Python and the generator gates were run locally and are green. TypeScript and Rust are verified in CI only.
🤖 Generated with Claude Code