Dashboard › cli › Distillation
6ee772c9-6852-4112-8e21-cf060850bed4["lore_tm_v1_QJrWisBWY4-zDStHbHcgrCXIrL0kLcq4BILSv8dEeC4","lore_tm_v1_FvlHqGa15S8s5iDlO4CAPv_ih_EVR95xiEZCjaUHM88","lore_tm_v1_nF3KjsZwQ4ffJx6pf5OePrJGL9uchYamiM6twZFdg_0","lore_tm_v1_-v_C7ZfdTYq7cHqk-Y9gptTHMz1YwRCsKMP7HGDqDJY"]
packages/cli/src/commands/cli/upgrade.ts states that package-manager installation methods always require network access to fetch and install packages; consequently, offline upgrades are supported only when method === "curl".packages/cli/src/commands/cli/upgrade.ts states that nightly builds are GitHub-only and therefore always use the curl/GitHub lookup path when resolving the target version, regardless of another installation method.packages/cli/src/commands/cli/upgrade.ts includes offline target resolution without network fetching, structured upgrade results, --offline handling, release-channel handling, installation-method dispatch, Windows EBUSY retry handling for libuvβs uv_spawn, upgrade locking, package-manager execution, curl migration, and changelog fetching designed to run alongside upgrade work.packages/cli/src/commands/cli/upgrade.ts accounts for antivirus scanners temporarily locking executable files, causing libuvβs uv_spawn to fail with EBUSY until the lock is released.packages/cli/src/commands/cli/upgrade.ts treats release of the same lock path after a parent-process takeover (ppid takeover) as a harmless no-op.packages/cli/src/commands/cli/upgrade.ts returns warnings that an old package-manager installation may remain earlier in PATH; a pinned version request uses its corresponding download tag rather than an unpinned channel tag.packages/cli/src/lib/ghcr.ts accesses the public ghcr.io/getsentry/cli package anonymously; the nightly package is public and does not require a user-provided token beyond the registryβs anonymous token exchange.packages/cli/src/lib/ghcr.ts defines GHCR_BLOB_TIMEOUT = 30_000; its retry helper iterates from attempt 0 through GHCR_MAX_RETRIES inclusive and distinguishes externally initiated aborts using externalSignal?.aborted && error.name === "AbortError".126ms to 30s for identical requests.packages/cli/src/lib/ghcr.ts defines GHCR_REGISTRY = "https://ghcr.io" and supports token acquisition, OCI manifest fetching, version extraction, blob lookup/download, and paginated tag listing.Authorization header because the signed URL carries query-string credentials and forwarding authorization can produce HTTP 404.fetchManifest() in packages/cli/src/lib/ghcr.ts requests the OCI manifest media type and reports a failed tag lookup as Failed to fetch manifest for tag "${tag}": HTTP ${response.status}.lastTag from the previous page and appends &last=${encodeURIComponent(lastTag)}; tag listing also supports an optional prefix filter such as "nightly-" for versioned nightly tags.packages/cli/test/lib/version-check.test.ts, packages/cli/test/lib/upgrade.test.ts, packages/cli/test/lib/scan/binary.test.ts, packages/cli/test/lib/scan/binary.property.test.ts, packages/cli/test/lib/release-notes.test.ts, packages/cli/test/lib/release-notes.property.test.ts, packages/cli/test/lib/patch-cache.test.ts, packages/cli/test/lib/ghcr.test.ts, packages/cli/test/lib/delta-upgrade.test.ts, packages/cli/test/lib/delta-upgrade.mocked.test.ts, packages/cli/test/lib/binary.test.ts, packages/cli/test/lib/binary.mocked.test.ts, packages/cli/test/e2e/delta-upgrade.test.ts, and packages/cli/test/commands/cli/upgrade.test.ts.packages/cli/src/lib/version-check.ts, packages/cli/src/lib/upgrade.ts, packages/cli/src/lib/scan/binary.ts, packages/cli/src/lib/release-notes.ts, packages/cli/src/lib/patch-cache.ts, packages/cli/src/lib/ghcr.ts, packages/cli/src/lib/delta-upgrade.ts, packages/cli/src/lib/db/version-check.ts, packages/cli/src/lib/binary.ts, and packages/cli/src/commands/cli/upgrade.ts.packages/cli/src/lib/binary.ts: InstallationMethod at line 40, getPlatformBinaryName() at line 130, getBinaryDownloadUrl() at line 151, GITHUB_RELEASES_URL at line 156, isNightlyVersion() at line 168, compareVersions() at line 181, getBinaryPaths() at line 211, fetchWithUpgradeError() at line 283, and replaceBinarySync() at line 321.