Dashboard › cli › Distillation
23b05f03-adee-4c32-9887-a4b5448fb53a["lore_tm_v1_eF4q6VSQnOaAN0ktnXaV1lWFZU98Q0uI5u-gFh6gs4Y","lore_tm_v1_z9HUKEKKbhligLIm1PaC9lrIfc3Jns1IocbSzx99rgY","lore_tm_v1_-Yc9oHu4k01s7As4BNmDOg-4Enh06vb0A3Rf00QHLtQ","lore_tm_v1_pnN5h1EguMCOioXeqHsbBlT6NQ9H3MTYP6RvqY0g1zI","lore_tm_v1_1yLFOjDyS97kDGtpo7caYnI51o3OsX_UJzrCpNAYD_E","lore_tm_v1_flFigyNGJToJ5eKQlby1FG_bpfuehcRkAECUth6xSgo","lore_tm_v1_Y7ZPN6QOb0tV-_wn78pObHszMYdZCdD1AlO7tWjiUdE"]
getsentry/toolkit / ghcr.io/getsentry/toolkit; 2. getsentry/cli / ghcr.io/getsentry/cli.404; network and fetch failures are transient errors and must never poison a source.install script must use one shared source definition, with a check: script that fails if their source lists or ordering diverge.getsentry/cli.UPGRADE_SOURCES: src/lib/binary.ts, ghcr.ts, upgrade.ts, and delta-upgrade.ts; the install script must mirror the ordered fallback.sha256-<binary> and from-version metadata.getsentry/cli using the release systemβs computed version rather than manually pinning one; verify a pre-bridge binary upgrades through getsentry/cli; verify the bridge binary handles a getsentry/toolkit 404 and falls back to getsentry/cli; verify the same behavior in the install script; record the bridge version before beginning issue #1239.getsentry/cli; verify bridge and Toolkit-built binaries upgrade through getsentry/toolkit; simulate a Toolkit 404 and verify both new binaries fall back to getsentry/cli; compare matching release assets, SHA-256 values, GHCR manifests, and delta-chain metadata; repeat the matrix for the install script and one nightly.getsentry/cli writable and archive it only when telemetry and release evidence show the legacy endpoint is no longer required.packages/cli/src/lib/ghcr.ts, showing source-aware GHCR functionality involving UpgradeSource, PRIMARY_UPGRADE_SOURCE, nightly OCI manifests, token exchange, manifest fetching, layer selection, blob downloading, retry/abort handling, and manual Azure redirect following because forwarding GHCRβs Authorization header to Azure returns 404.fetchChangelog() is defined at line 720 of packages/cli/src/lib/release-notes.ts and called at line 834 of packages/cli/src/commands/cli/upgrade.ts.startChangelogFetch() in packages/cli/src/commands/cli/upgrade.ts lines 825β841: it accepts channel, currentVersion, targetVersion, and offline; returns undefined when offline or versions match; otherwise calls fetchChangelog({ channel, fromVersion: currentVersion, toVersion: targetVersion }); and swallows failures by resolving to undefined. The current call does not pass an upgrade source.persistChannel() in packages/cli/src/commands/cli/upgrade.ts lines 809β817: it must run after offline target resolution because setReleaseChannel() clears the version-check cache on channel changes; it persists when channelChanged or CHANNEL_VERSIONS.has(version ?? "").mockFetch(fn: FetchMockFn): typeof fetch is defined at line 85 of packages/cli/test/helpers.ts.