Dashboard › cli › Distillation
3c52c074-a51b-48c3-ac33-f3637a832de2["lore_tm_v1_5k1HnM_qxIWaWkKiwthh70LJhimyBZ4tgafp_z3vWy0"]
packages/cli/src/lib/delta-upgrade.ts was expanded from 388 to 458 lines and changed delta-upgrade discovery/application to support source-specific repositories through UpgradeSource.packages/cli/src/lib/delta-upgrade.ts replaced imports of GITHUB_RELEASES_URL and GHCR_REPO with getGitHubReleasesUrl, PRIMARY_UPGRADE_SOURCE, and UpgradeSource from ./binary.js, removing the fixed GHCR repository dependency.isGitHubRelease(value) type guard in packages/cli/src/lib/delta-upgrade.ts; it accepts a non-null object only when tag_name is a string and assets is an array, and narrows to GitHubRelease & { draft?: boolean; prerelease?: boolean }.nightlySource(source: UpgradeSource) now configures ghcrSource with repo: source.ghcrRepo; it retains registry https://ghcr.io, targetTag: (version) => \nightly-${version}`, compareVersions, customFetch, instrumentation, platform binary name, and user agent sentry-cli/${CLI_VERSION}`.resolveNightlyChain() gained optional source?: UpgradeSource, defaults it via getPrimaryUpgradeSource(), and passes source.ghcrRepo to OciClient; caller-provided preloadedTags still avoid client.listTags(), and chains with 0 tags or more than MAX_NIGHTLY_CHAIN_DEPTH return null.resolveNightlyDelta() gained a final parameter source: UpgradeSource = getPrimaryUpgradeSource() and now invokes nightlySource(source) instead of a repository-fixed nightlySource().validateChainStep() first checks getPatchFromVersion(manifest) against opts.expectedFrom, returning version-mismatch with exact expected and actual versions on mismatch; after binpatchValidateChainStep(), failures are normalized to size-exceeded with layerSize and budget when the named layer exists, or missing-layer with layerName otherwise.resolveDelta() continues to call resolveAndApply() with currentVersion: CLI_VERSION, target/current paths, patch cache, offline state, progress handler, and telemetry, then returns both the delta result and the telemetry-selected source as { result, source: tel._source.current }.