Dashboard › cli › Distillation
f007f98e-cd88-42d2-b415-177ae8ebb66b["lore_tm_v1_yre7mcbHtLDe0q062nnbHr-3c7vDx-BQ-fgT3jBCg7g","lore_tm_v1_GAP2kVLH92EY2Z1cQpI98k1ZdM3gRbrE_pGXt13ul-s"]
Date: Sep 10, 2026
packages/cli/src/lib/ghcr.ts now imports valid as semverValid from semver and imports PRIMARY_UPGRADE_SOURCE plus type UpgradeSource from ./binary.js.getAnonymousToken(sourceOrSignal: UpgradeSource | AbortSignal = PRIMARY_UPGRADE_SOURCE, signal?: AbortSignal) supports either an upgrade source or the legacy AbortSignal argument; it requests ${GHCR_REGISTRY}/token?scope=repository:${source.ghcrRepo}:pull and preserves the external signal.getNightlyVersion(manifest) now rejects a manifest annotation when semverValid(version) === null or !NIGHTLY_VERSION_REGEX.test(version), throwing UpgradeError("network_error", "Nightly manifest has invalid version annotation").downloadNightlyBlob(token, digest, signal?, source = PRIMARY_UPGRADE_SOURCE) builds the blob URL as ${GHCR_REGISTRY}/v2/${source.ghcrRepo}/blobs/${digest} rather than using a fixed GHCR repository.downloadNightlyBlob() calls rethrowExternalAbort(error, signal) when the authenticated GHCR blob request throws, preserving externally requested cancellation rather than wrapping it as an ordinary network failure.Authorization header to Azure Blob Storage; automatically forwarding that header causes Azure to return HTTP 404.packages/cli/src/commands/cli/upgrade.ts supports stable and nightly release channels; stable tracks the latest GitHub release, nightly tracks the rolling prerelease built from main, and the selected channel is persisted so subsequent bare sentry cli upgrade calls reuse it.validateMethod() throws UpgradeError("unsupported_operation", "Offline upgrade is only supported for curl-installed binaries.") when offline is true and method !== "curl".validateMethod() rejects method === "unknown" with UpgradeError("unknown_method").sentry cli upgrade; validateMethod() throws UpgradeError("unsupported_operation", "Homebrew does not support installing a specific version. Run 'brew upgrade getsentry/tools/sentry' to upgrade to the latest formula version.").packages/cli/src/commands/cli/upgrade.ts now returns { kind: "target", target: resolvedTarget, source } and uses the imported resolveExistingUpgradeVersion, resolveLatestUpgradeVersion, isNightlyVersion, and type UpgradeSource.runSetupOnNewBinary() invokes the upgraded binary with ordered base arguments cli, setup, --quiet, --method, method, --channel, channel, --no-modify-path; it conditionally adds --install, --ensure-auth-scopes, and --no-agent-skills.--install set SENTRY_INSTALL_DIR in the child environment to pin the installation directory and prevent determineInstallDir() from relocating the new binary.sentry cli upgrade nightly means βSwitch to nightly channel and update.β