Dashboard › cli › Distillation
055d2d63-a448-4a33-885c-c3422a1ea838["lore_tm_v1_nh2nh8teZ1VaQ-gjup1OfTB9ildDoeY0b2U-DJzSefE"]
π΄ (05:09) User stated package managers always need network to fetch and install packages; --offline upgrades are supported only for curl-installed binaries, and validateMethod() throws UpgradeError("unsupported_operation", "Offline upgrade is only supported for curl-installed binaries.") when offline is true and method !== "curl".
π΄ (05:09) User stated nightly builds are GitHub-only, so nightly-channel version lookup must always use the curl installation method (GitHub lookup), regardless of the current installation method.
π΄ (05:09) User stated checkForUpdateInBackgroundImpl() never throws; errors are caught and reported to Sentry. A shouldCheckForUpdate()/DB-access failure calls Sentry.captureException(error) and returns without crashing the CLI.
π΄ (05:09) User stated getUpdateNotificationWithCopy() never throws; errors are caught and reported to Sentry. It returns null when up to date, lacking cached version info, rate-limited, stderr is non-TTY, or an error occurs.
π΄ (05:09) User stated sentry cli upgrade nightly means βSwitch to nightly channel and update.β
π‘ (05:09) Tool diff showed resolveChannelAndVersion(positional) treats case-insensitive positional "nightly" and "stable" as channel selectors with versionArg: undefined; otherwise it returns channel: getReleaseChannel() and the supplied positional as versionArg.
π‘ (05:09) Tool diff showed resolveOfflineTarget(versionArg) strips VERSION_PREFIX_REGEX from an explicit version; otherwise it reads latestVersion from getVersionCheckInfo(). If no cached version exists, it throws UpgradeError("network_error", "No cached version available. Run any command to trigger a background version check, then retry.").
π‘ (05:09) Tool diff changed validateMethod() from (method, versionArg, channel, offline) to (method, versionArg, offline). It computes pinnedVersion as undefined for values in CHANNEL_VERSIONS, otherwise strips VERSION_PREFIX_REGEX; Homebrew rejects a pinned version only when pinnedVersion exists and !isNightlyVersion(pinnedVersion).
π‘ (05:09) Tool diff showed unknown installation methods still throw UpgradeError("unknown_method"); unsupported Homebrew stable-version pinning 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.").
π‘ (05:09) Tool diff changed target resolution to return { kind: "target", target: resolvedTarget, source } and removed the shown inline versionExists() validation block that selected lookupMethod = channel === "nightly" ? "curl" : method.
π‘ (05:09) Tool output showed the upgrade warning uses sentry cli upgrade ${target} for an explicit non-channel positional version and otherwise uses sentry cli upgrade; the warning text is Run '${cmd}' to update. when CLI_VERSION !== target.