Dashboard › cli › Distillation
10634f28-c262-47fa-a7d0-eefd9e4495e1["lore_tm_v1_2HkFcGVQXlfCwa-_UJtluvTgkNHe6DP9fvos3g1vjpA","lore_tm_v1_qaxcdhF8GgQZP5TbsnCvlYgDgNYnYuCE2Usbsorq0-Q","lore_tm_v1_4APaPYCudk1B2J7IciE7FVDY46aDZCv4wmugAjAxw9s"]
packages/cli/test/lib/delta-upgrade.mocked.test.ts stable-delta fixtures from legacy release tags 0.14.0/0.13.0 to Toolkit tags cli@0.14.0/cli@0.13.0; the patch URL changed from https://github.com/getsentry/cli/releases/download/0.14.0/${BINARY_NAME}.patch to https://github.com/getsentry/toolkit/releases/download/cli@0.14.0/${BINARY_NAME}.patch.cli@0.14.0 and cli@0.13.0."attemptDeltaUpgrade keeps nightly requests on the legacy source" to verify nightly delta requests remain on the legacy source rather than migrating to Toolkit.packages/cli/test/lib/ghcr.test.ts to import UPGRADE_SOURCES from ../../src/lib/binary.js and GhcrManifestHttpError from ../../src/lib/ghcr.js.fetchManifest("token", "patch-0.13.0") HTTP-404 test to capture the thrown object and require it to be an instance of GhcrManifestHttpError with name: "GhcrManifestHttpError", status: 404, and message Failed to fetch manifest for tag "patch-0.13.0": HTTP 404, replacing the prior generic UpgradeError expectation./home/byk/.local/share/opencode/worktree/0e8c2f3bbe145a3280d6fb6ed900a5121f382cf0/toolkit-bridge-upgrade/packages/cli/node_modules/binpatch/dist/index.js, particularly the compiled OCI/GHCR implementation at lines 740β1009.binpatch OCI implementation defines REQUEST_TIMEOUT = 1e4, MAX_RETRIES = 1, BLOB_TIMEOUT = 3e4, TAGS_PAGE_SIZE = 100, and OCI_MANIFEST_TYPE = "application/vnd.oci.image.manifest.v1+json".binpatch implementation, isRetryableError(error) retries TimeoutError, AbortError, or messages containing timeout, econnreset, econnrefused, network, or fetch failed; fetchWithRetry(...) performs at most 2 attempts because its loop runs from attempt 0 through MAX_RETRIES = 1.binpatch implementation, buildSignal(timeout, externalSignal) uses AbortSignal.timeout(timeout) and combines it with an external signal using AbortSignal.any(...); an externally triggered AbortError stops retries.OciClient.getAnonymousToken(signal) requests ${registry}/token?scope=repository:${repo}:pull, sends the configured User-Agent, throws BinpatchError("network_error", "Registry token exchange failed: HTTP ...") for non-OK responses, and throws "Registry token exchange returned no token" if the JSON response lacks token.OciClient.fetchManifest(token, tag, signal) requests ${registry}/v2/${repo}/manifests/${tag} with bearer authorization, Accept: application/vnd.oci.image.manifest.v1+json, and the configured User-Agent; non-OK responses become BinpatchError("network_error", \Failed to fetch manifest for tag "${tag}": HTTP ${status}`)`.OciClient.listTags(...) paginates ${registry}/v2/${repo}/tags/list?n=100, appending &last=${encodeURIComponent(lastTag)} after a full page, optionally filters tags by prefix, and stops on an empty page or a page containing fewer than 100 tags.OciClient.downloadBlob(...) requests ${registry}/v2/${repo}/blobs/${digest} with redirect: "manual" and a 30-second timeout; it accepts HTTP 200 directly and manually follows HTTP 301, 302, 307, or 308 redirects without forwarding the bearer authorization header.User-Agent and applies the same BLOB_TIMEOUT = 3e4, specifically preventing a stalled redirected Azure Blob Storage connection from hanging the CLI when no caller signal is supplied.Registry blob redirect (${status}) had no Location header, redirected non-OK responses as Blob storage download failed: HTTP ${status}, and other initial statuses as Unexpected registry blob response: HTTP ${status}."from-version" and target checksums from sha256-${binaryName}; filterAndSortChainTags(...) keeps patch versions newer than currentVersion and no newer than targetVersion, then sorts them by version.validateChainStep(...) marks a step "malformed" when its "from-version" differs from expectedFrom or when no layer has org.opencontainers.image.title === patchLayerName; it marks the step "over_budget" when the matching layerβs size exceeds sizeLimit, otherwise returns its digest and size.945adc48d962ce15e82b986e93196caabea21672 and exact numeric value 1144; the provided output did not label their meanings.