Dashboard › cli › Distillation
29d7f7ee-444d-4e44-8655-e5d8b15edafd["lore_tm_v1_S_INKtmEGtO6UT15qXjEfZeW6yn-TzGvoevPYSks84Y","lore_tm_v1_knEIQJg-UtfGViLXRtP6HAisFVsUros7cAVjB43_AAU","lore_tm_v1_3QAUZd20LVLsEGUSNcavUgGO1tu4zVv57X30IofpqCA","lore_tm_v1_Uke2FjXeTh1Ccdu4HieDpJo9ZiWRZIzkXpimV0Ijrbo","lore_tm_v1_-vSE-zza6KQFtu7ipnMOJS6zpSeBtrBKJrGR_07jZx0","lore_tm_v1_yZbo-7cu9d2bzZyRfohH0B66PC6_e6F2VJngYDFxYE8","lore_tm_v1_lSzrJElk2C_4o8QMRQmp43t5EuBa11OdZQe6mKvnX0U","lore_tm_v1_jIOWr8BB2OgKn7-1zpSY94KPABzD9GXHIJPTxs56tqw","lore_tm_v1_Lk57cRrD8euPnZ9y7NS7peNoWDhru6tRkL4ymkH4KTk","lore_tm_v1_e10A9A2EAqvGOlfeY7X_Dhgd7ox3PfkSW1jQX7qPvYU","lore_tm_v1_xc3xMoFNs4D9h-nbUP57q6Fj24njqhFQPhSyL1M8Cvc","lore_tm_v1_Si7hqs5l52wTIb35sAB5o0IGL3uvYHK8aCJ1attznEY","lore_tm_v1_4QW7c-NFpxa5HAKnCGu7TtTUu-dYwbQK8TAJxywPkcY","lore_tm_v1_zFYR9kZ9BFfZTimU0-OfnGuG-1QAlScqMc6neJlzZhA","lore_tm_v1_hYrxmgerc7yh5-R563TyAf3XR7fEJ8zqPvy4OMgyoPo","lore_tm_v1_ZM5_o6FxJXouUCSrVx7_RUhn2XpvPb0pdVReDlLezrI","lore_tm_v1_eLZ6_FS3pYoo9gZERMz7dWOdCzcUpwCWvoDpEiet0W0"]
packages/cli/src/lib/delta-upgrade.ts and updated packages/cli/test/lib/delta-upgrade.test.ts; focused Vitest run under Vitest 4.1.10 passed all 89 tests in 1 test file. Vitest warned that test.poolOptions was removed in Vitest 4 and its former options are now top-level.resolveNightlyChain() at packages/cli/src/lib/delta-upgrade.ts:285 had cognitive complexity 16 versus maximum 15. Formatter also requested changes in packages/cli/src/lib/delta-upgrade.ts and packages/cli/test/lib/delta-upgrade.test.ts.packages/cli/src/lib/delta-upgrade.ts and packages/cli/test/lib/delta-upgrade.test.ts; subsequent check completed on both files with no fixes applied and no errors.PRIMARY_UPGRADE_SOURCE or a default derived from it could be undefined across packages/cli/src/lib/binary.ts, packages/cli/src/lib/delta-upgrade.ts, packages/cli/src/lib/ghcr.ts, packages/cli/src/lib/release-notes.ts, and packages/cli/src/lib/upgrade.ts; plus missing name AbortError at packages/cli/src/lib/upgrade.ts:505.getPrimaryUpgradeSource(): UpgradeSource in packages/cli/src/lib/delta-upgrade.ts; it throws Error("No primary upgrade source is configured") if PRIMARY_UPGRADE_SOURCE is absent. Replaced PRIMARY_UPGRADE_SOURCE defaults at lines corresponding to fetchRecentReleases(), resolveStableChain(), resolveNightlyChain(), resolveStableDelta(), resolveNightlyDelta(), attemptDeltaUpgrade(), prefetchNightlyPatches(), and prefetchStablePatches() with this validated helper.packages/cli/src/lib/delta-upgrade.ts or the prior missing AbortError; 23 UpgradeSource | undefined errors remained across packages/cli/src/lib/binary.ts (5), packages/cli/src/lib/ghcr.ts (9), packages/cli/src/lib/release-notes.ts (3), and packages/cli/src/lib/upgrade.ts (6).packages/cli/test/lib/delta-upgrade.test.ts run passed all 89 tests; static checks on packages/cli/src/lib/delta-upgrade.ts and packages/cli/test/lib/delta-upgrade.test.ts also passed with no fixes applied.[delta-upgrade] Delta upgrade failed (Patch too small: 4 bytes (need at least 32)), falling back to full download, plus the Vitest 4 test.poolOptions deprecation warning.packages/cli/src/lib/delta-upgrade.ts now imports getGitHubReleasesUrl, PRIMARY_UPGRADE_SOURCE, and UpgradeSource from ./binary.js, and no longer imports hard-coded GITHUB_RELEASES_URL or GHCR_REPO.packages/cli/src/lib/delta-upgrade.ts: stableSource(source) uses getGitHubReleasesUrl(source); nightlySource(source) uses source.ghcrRepo; fetchRecentReleases(signal?, source) requests ${getGitHubReleasesUrl(source)}?per_page=12; resolveStableChain(currentVersion, targetVersion, signal?, source) uses stableSource(source); and resolveNightlyChain(opts) accepts optional opts.source and initializes OciClient with repo: source.ghcrRepo.packages/cli/src/lib/delta-upgrade.ts: resolveStableDelta(), resolveNightlyDelta(), attemptDeltaUpgrade(), prefetchNightlyPatches(), and prefetchStablePatches() now accept an UpgradeSource; stable/nightly resolveDelta() strategy selection and prefetch strategy construction retain that selected source instead of reverting to PRIMARY_UPGRADE_SOURCE.packages/cli/test/lib/delta-upgrade.test.ts defines LEGACY_UPGRADE_SOURCE = UPGRADE_SOURCES[1] and throws Error("Legacy upgrade source is not configured") if absent. Existing default-source expectations were changed from getsentry/cli to getsentry/toolkit.packages/cli/test/lib/delta-upgrade.test.ts: 1. fetchRecentReleases expects exactly https://api.github.com/repos/getsentry/cli/releases?per_page=12; 2. resolveStableChain expects that same legacy GitHub URL and no getsentry/toolkit URL; 3. resolveNightlyChain expects exactly https://ghcr.io/v2/getsentry/cli/tags/list?n=100 and no getsentry/toolkit URL.importDeltaUpgradeWithVersion(version) using vi.resetModules() and vi.doMock("../../src/lib/constants.js", ...) to override CLI_VERSION, plus restoreDeltaUpgradeModule() using vi.doUnmock("../../src/lib/constants.js") and vi.resetModules(). The selected source affinity suite uses useTestConfigDir("delta-source-affinity-").packages/cli/test/lib/delta-upgrade.test.ts: 1. stable attemptDeltaUpgrade("0.14.0", ..., LEGACY_UPGRADE_SOURCE) from mocked CLI_VERSION="0.13.0" requests only https://api.github.com/repos/getsentry/cli/releases?per_page=12; 2. nightly attemptDeltaUpgrade("0.14.0-dev.101", ..., LEGACY_UPGRADE_SOURCE) from CLI_VERSION="0.14.0-dev.100" requests only https://ghcr.io/token?scope=repository:getsentry/cli:pull; 3. prefetchStablePatches("0.14.0", undefined, LEGACY_UPGRADE_SOURCE) requests only the legacy GitHub releases URL; 4. prefetchNightlyPatches("0.14.0-dev.101", undefined, LEGACY_UPGRADE_SOURCE) requests only the legacy GHCR token URL. Every test explicitly asserts that no URL contains getsentry/toolkit.packages/cli/src/lib/delta-upgrade.ts and packages/cli/test/lib/delta-upgrade.test.ts totaled 244 insertions and 33 deletions across 2 files. The worktree also had modifications in packages/cli/install, packages/cli/src/lib/binary.ts, packages/cli/src/lib/ghcr.ts, packages/cli/src/lib/release-notes.ts, packages/cli/src/lib/upgrade.ts, packages/cli/src/lib/version-check.ts, and their corresponding binary, GHCR, install-script, release-notes, upgrade, and version-check tests.