Dashboard › cli › Distillation
8284b841-9ced-4ed2-a8f9-c5d0af905993["lore_tm_v1_AGQg8LlgssSmBg1okmCejzSfiNNQCsaAMC6mfNLlki0","lore_tm_v1_UFp34XzmYmjrk8KqkUH6bTPh8L4JmRRccfnFDCl2SaM"]
packages/cli/src/lib/release-notes.ts: fetchReleasesForChangelog(source: UpgradeSource) requests ${getGitHubReleasesUrl(source)}?per_page=${CHANGELOG_MAX_RELEASES} with getGitHubHeaders() and normalizes successful array responses via normalizeStableReleases(data as GitHubRelease[], source).isNormalizedForSource, NormalizedGitHubReleases, and normalizeStableReleases, with PRIMARY_UPGRADE_SOURCE as the primary source context.fetchReleasesForChangelog(source): fetch failures, non-OK HTTP responses, JSON parsing failures, and non-array responses return []; fetch and parse failures are logged with log.debug().fetchLatestFromGitHubWithSource and fetchLatestNightlyVersionWithSource instead of fetchLatestFromGitHub and fetchLatestNightlyVersion.maybePrefetchPatches(channel, latestVersion, signal, source), propagating the selected UpgradeSource.checkForUpdateInBackgroundImpl() does not block, performs its fetch in the background, reports errors to Sentry in a detached span, and never throws because errors are caught and reported to Sentry.checkForUpdateInBackgroundImpl(): if shouldCheckForUpdate() throws due to DB access failure, it calls Sentry.captureException(error) and returns without crashing the CLI.cleanupPatchCache() failures are caught and logged as "Patch cache cleanup failed (best-effort)".UpgradeTransportError usage in packages/cli/src/lib/binary.ts for upgrade-source probe transport failures.fetchUpgradeProbe(), which uses options.fetch ?? customFetch, passes the external AbortSignal, rethrows options.signal.reason when externally aborted, preserves AbortError, and maps other transport failures to UpgradeTransportError.packages/cli/src/lib/binary.ts: the source defaults to PRIMARY_UPGRADE_SOURCE, and release tags are formed as ${source.tagPrefix}${version}.getGitHubRepositoryUrl(...) for source-specific GitHub repository URLs.