Dashboard › cli › Distillation
5cd6c4e0-1aaf-44f5-a57d-22ce89f47feb["lore_tm_v1_Y2mCjHWEmf7Nfzz5YxceUEAjeV3IKdFjqVewT1m2o2g"]
packages/cli/src/lib/delta-upgrade.ts was expanded from 388 to 481 lines and now imports prerelease as semverPrerelease and valid as semverValid from semver.packages/cli/src/lib/delta-upgrade.ts replaced the fixed GITHUB_RELEASES_URL and GHCR_REPO dependencies with source-aware imports: getGitHubReleasesUrl, PRIMARY_UPGRADE_SOURCE, and UpgradeSource from ./binary.js.packages/cli/src/lib/delta-upgrade.ts adds NORMALIZED_RELEASE_SOURCE, the branded NormalizedGitHubReleases type, source-specific release filtering/normalization, and getPrimaryUpgradeSource().resolveStableChain(currentVersion, targetVersion, signal?, source = getPrimaryUpgradeSource()) now accepts an UpgradeSource and calls stableSource(source).resolveChain(...), replacing the previously source-agnostic stableSource().resolveNightlyDelta(targetVersion, oldBinaryPath, destPath, offline?, setMessage?, source = getPrimaryUpgradeSource()) now accepts an UpgradeSource and passes it to nightlySource(source), replacing the previously source-agnostic nightlySource().validateChainStep() instead of binpatch’s validator: local telemetry preserves the three specific failure reasons version-mismatch, missing-layer, and size-exceeded, whereas binpatch reports only malformed or over_budget.telemetry_reason to the local validation failure reason; it also reports version-mismatch when the final resolved version differs from opts.targetVersion or the expected SHA-256 is absent._source.current. onResolved sets delta.source, logs source, patch count, and formatted total size; onOfflineMiss records offline_miss; and onUnavailable records the supplied DeltaUnavailableReason as telemetry_reason._source.current capture fixes missing delta.source telemetry when patch application fails after successful chain resolution, allowing attemptDeltaUpgrade’s catch path to stamp the source on the active span.