Dashboard › cli › Distillation
76605f43-5f0a-4711-9155-4d811dd7d043["lore_tm_v1_IRDaz3ZTTzMDYbzLbdENWbNgG6tjObIFUKgbO71luD8","lore_tm_v1_AdH1cQU4aeepQiBFZM2_WTQZge6f0hmOgAkpQDAmLd0"]
Date: September 10, 2026
detectInstallationMethod() must always check Homebrew first because stored installation information may be stale—for example, a user may switch from a previously recorded curl install to Homebrew. The Homebrew realpath check is considered cheap and authoritative.realpath check, overriding stale stored information; 2. stored install information in the DB as the fast path; 3. legacy detection via curl paths, then subprocess calls, then the node_modules path; 4. automatically save the detected method for future runs."uses the cached target after response body transport failure" sets cached version "88.88.88", makes response.json() throw new TypeError("terminated"), runs ["cli", "upgrade", "--check", "--method", "curl"], and expects output containing "Using cached target: 88.88.88"."never uses the cached target after %s" for HTTP 403 and malformed HTTP 200 responses. The parameterized cases are: 1. "HTTP 403" returning new Response("Forbidden", { status: 403 }); 2. "malformed HTTP 200" returning Response.json([{ tag_name: "mcp@1.0.0" }])."resolves a pinned check target from its exact source" checks Toolkit URL getsentry/toolkit/releases/tags/cli%4088.88.88, receives 404, then checks legacy URL getsentry/cli/releases/tags/88.88.88, receives { tag_name: "88.88.88" }, and receives an empty array from getsentry/cli/releases?per_page=30.validateNightlyManifestVersion(manifest, expectedVersion) obtains the manifest version with getNightlyVersion(manifest) and throws new UpgradeError("network_error", ...) when it differs from expectedVersion; the message reports both the manifest and requested versions."GitHub returned cyclic release pagination".packages/cli/src/lib/patch-cache.ts imports makeCache, PatchCache, and PatchChain from binpatch; re-exports ChainMeta, PatchStepMeta, chainFileName, and patchFileName; and preserves the existing cache API via // biome-ignore lint/performance/noBarrelFile: preserve the existing cache API.packages/cli/src/lib/patch-cache.ts, cache() creates a PatchCache with makeCache(join(getConfigDir(), "patch-cache")); savePatchesToCache() delegates to cache().save(chain, steps); cleanupPatchCache() delegates to cache().cleanup(); and clearPatchCache() delegates to cache().clear().packages/cli/src/lib/patch-cache.ts, loadCachedChain(currentVersion, targetVersion) calls cache().load(currentVersion, targetVersion), returns null when no result exists, and otherwise maps every cached patch’s data to new Uint8Array(patch.data).a84012184c79c2566c7466aa6beda5f767199218 found makeCache usage in packages/cli/src/lib/delta-upgrade.ts at lines 21 and 173, cache-key construction patch-chain:${fromVersion}-${toVersion} at line 134, and makeCache usage in packages/cli/src/lib/patch-cache.ts at lines 2 and 10.