Dashboard › cli › Distillation
971f8d7f-daf1-447a-943d-79ed0c4c18eb["lore_tm_v1_GrKWEyXDK24PVvPivqgzXk0Ir7cNxG2VqgVHA2dlgfc","lore_tm_v1_DV8PaAFW9boZSIS3VxKjgrwl-VySc0G63YNKsuAvaOM","lore_tm_v1_MvvTwNSh-TsVAEckTP_ZvIqHChUxCD5iYzLbgZBKs5E","lore_tm_v1_s79S2fJAOSI2Vte8PKNI4YfgXanvczui6EgLGPLe37Q","lore_tm_v1_d3CS1g5vzkzJrHfLYzglWFwHTgw5tz-XKpIeGYKwZOs","lore_tm_v1_dfBCsZV3dtUBO45zED6kOOdZ3vtcOxIt6lqtBuqReAk","lore_tm_v1_JkllBuG1xHHmXPUO4bt6hK0GFKg2UV-OarbbSsTvScg","lore_tm_v1_aovLGJu0zo-ic_5JQpFPymog_vyx43UqibyTmeNm8RU","lore_tm_v1_WiizghRVKaTsBQNBYGAqA4kosknOfAAjZ1A_JKP7Q-E","lore_tm_v1_1FqhqjoRqClDBVIAcLwDEcH4PEqVSTkwp3P324m4bZA","lore_tm_v1_yBtTUmpjY73RWL0kVtA8uOyK_v-ZCy0zScoAXhojpHk","lore_tm_v1_FdXKqSW9Kl6JV-TMscZwvp0e3zHi1zArAUoLimXmLPQ","lore_tm_v1_SW_LW_b_JqsssqMjW6qqiR2DPyt880ITBkhM57sfBJ8","lore_tm_v1_2jKqJbA2sxdwts8Rmkd8OVsDr0F2rei1ukXI6c3Q9Zk","lore_tm_v1_H7y8oNDF_P-4zHajasi79-5ObcRDm9G7XYtoFAlK6K0","lore_tm_v1_1tOKhm0KQzBrDNX0z1I9Odpl0CROBwRKmIpPqCPzJKI","lore_tm_v1_EjIeAj10cEVk6IgBkUg4NwNBCwtiT18rjD48XXAOrtw","lore_tm_v1_tMA8O3W9xCQaKmQsdNThnczUBUjIgk4Klarm4fNyk-Q","lore_tm_v1_E3Ez81CtQ9-kfec2vgw56T6n81mgjEMpOiESFYPUrxk","lore_tm_v1_umesvvg4ZnV-bRuE8fV9yQgRG1iOQK5eMhysww3GNzc","lore_tm_v1_HoAlWQJ8tWFWnmnnc_orjAVhNUg0HAf1pV3zUy9TEus","lore_tm_v1_pQcylHi0YG9YcxCRCPPr6WX1sTJHAz6-y5YdJst5qoM","lore_tm_v1_jfPKutCOx8-OeBV1KgzU7tBY_BXkBmECSeuhN6HMEKg","lore_tm_v1_-VLrTBx1dy3wycykZ6Go67mAtrSx3KBRihXs6zf6XL8","lore_tm_v1_jjYa3EMF8Ba6c8znWOMIBSdgPD8RIk-mg2MfRAS4tIo","lore_tm_v1_aK6VIMHeMYg4kz7RGHlcJDy6U4izev2MlQ3UFJH7g3A","lore_tm_v1_yKt2efFd3HcYMCzHDLr3WITxAqqWJ0SO8b3uxXZ8aRo","lore_tm_v1_TzbJ_Qw-pSA9MVsPplb1_H840FYNLsERp6n-LlVdEJE","lore_tm_v1_a_yEtT_uCl17yJ_5DBaHWzVajBClwlVFqMF9VJ0xpbU","lore_tm_v1_5uQBi9RcC2UWDJTCuF4aGc7wllnIwUCnMyLJkna90z8","lore_tm_v1_DZ0tMAS4PaNsW1ZPLi24PZWfUUJ0Lvi0D2kc8foHs-Y","lore_tm_v1_GrjoS5V581hPBTzwAE3vt3kJvRnpxsEx33XmCEW9ZUo","lore_tm_v1_V7Y1RPhM4zPOizx4GOJP2A32IFjRy8NOZVmy_uQtvEg","lore_tm_v1_J7BvL6o74smdR1LCaOqT6QlgZcpkD34mN92f98oCZdk","lore_tm_v1_xYDXulmvdqM5bOTvaJUDbu_hyI7MDE9Jb3dgmEd51Qo","lore_tm_v1_XzUZ7jPYAsOrtwaqm4HUr8_hvyX2r-bckwoNnXJW9o4","lore_tm_v1_Gt51xIHrsBH5wcUGFveslHPwPoAwX1fKGzgDxA-CwV4","lore_tm_v1_b4cvK-uryd9VadO8po2z-Bzrn5EedZtuiO7PkHiKuFk","lore_tm_v1_3y-46lNN6iesGZm-e5GefCXZ--NmT4dMkMK_KwHW6M8","lore_tm_v1_SsJG_msPnWTHj-5sj3-GbXZFvLtag2HNPsLM6CPcDpE","lore_tm_v1_9hgsSsmBbuhUpDa1vI_TQenPgB_RAGFNlykik3_VvO0","lore_tm_v1_rn0jMycAMfbrRYFG_r_dLm7CrnZry7LoQK1Na_Zej0o","lore_tm_v1_CeSKu7hfH3bbhg9AKnlKLTo9aSJfOTqFwb3SC7Zb3zk","lore_tm_v1_5IFWd2mzAN5jxjRhsYq5WKXv6C5fyLkfwt0K_lk_NTU"]
ses_f76adf43effeHHsTAxGbw1UC91 completed with DO-NOT-MERGE for PR #1569 exact head e565b1afb39a341605adc883de8812851de7d581; review used immutable Git objects across all 16 changed source/test paths, did not execute runtime tests, and recorded patch SHA-256 c3d7791d84ebb5ad57a949129d66f9147973d239432b7695c3f1d034a1956351.upgrade --method brew 0.99.0-dev.123 is rejected at packages/cli/src/commands/cli/upgrade.ts:256-262, so it never reaches the intended target-based standalone branch at :1067-1077.packages/cli/src/commands/cli/upgrade.ts:331-333, retains Homebrew at :1078-1091, and runs unpinned brew upgrade getsentry/tools/sentry via packages/cli/src/lib/upgrade.ts:1309-1318,1425-1427; output at commands/cli/upgrade.ts:1094-1100 can falsely report the requested version although Homebrew installed its latest formula.lookupMethod must be selected from isNightlyVersion(target), not channel === "nightly".upgrade --method brew 0.99.0-dev.123, assert GHCR resolution and standalone installation, and assert brew is never spawned; 2. persist nightly, invoke upgrade --method brew 1.2.3, assert unsupported_operation before fetch or spawn; 3. persist nightly, invoke an npm stable pin, and assert validation uses the exact npm endpoint rather than GitHub.packages/cli/src/commands/cli/upgrade.ts:836-851, and only explicit nightly/stable selectors persist at :860-867, but pinned-nightly migration passes channel: "nightly" to setup at :796-805; setup persists it at packages/cli/src/commands/cli/setup.ts:507-518.commands/cli/upgrade.ts:1025-1032 and result reporting at :1094-1100 still use the old stable channel; existing npm migration coverage at packages/cli/test/commands/cli/upgrade.test.ts:1128-1199 never asserts persisted channel, result channel, or changelog endpoint.src/lib/upgrade.ts:118-137; pinned resolution validates the exact source-specific stable tag or nightly annotation at src/lib/upgrade.ts:696-740; only typed HTTP 404 advances source selection; GitHub pagination is HTTPS/API-host constrained, rebuilt on the selected source, and cycle checked; selected source propagates through GHCR token, manifest, blob, delta, prefetch, and changelog calls; redirected blob requests omit authorization; delta output retains SHA-256 verification at src/lib/delta-upgrade.ts:450-469; offline behavior and installer files are unchanged.ses_f76ae3c9affebqwadog9Jt8YRy completed with DO-NOT-MERGE for exact head e565b1afb39a341605adc883de8812851de7d581, head tree d6c50e6e63351dd7e552c193199788fb455a5d47, and reviewed diff SHA-256 c3d7791d84ebb5ad57a949129d66f9147973d239432b7695c3f1d034a1956351; all 16 changed source/test files were inspected from immutable Git objects and runtime tests were not run.migrateToStandaloneForNightly() hardcodes channel: "nightly" at packages/cli/src/commands/cli/upgrade.ts:797-805, despite resolution at :325-333 retaining the existing channel; setup.ts:507-518 persists the hardcoded value. Curl installs preserve the original channel, making behavior installation-method dependent.--channel stable, result channel is stable, and persisted channel remains stable; existing coverage at test/commands/cli/upgrade.test.ts:1185-1201 checked migration but not channel state.packages/cli/src/lib/delta-upgrade.ts:127-155 checks only GitHubβs prerelease flag and legacy releases can bypass even that; fetchRecentReleases() repeats incomplete filtering at :227-237; packages/cli/src/lib/release-notes.ts:427-448 accepts the same tags and range selection at :459-465 can include their notes.cli@1.0.0-dev.1 with prerelease: false can enter stable delta and changelog inputs; stable-chain resolution never requests its patch.1.0.0-dev.1 with prerelease: false between stable endpoints, asserting fetchRecentReleases() excludes it, stable-chain resolution never requests its patch, and stable changelog output never includes its body.packages/cli/src/lib/release-notes.ts:441-445 accepts every unprefixed valid SemVer in prefetched input, allowing arbitrary raw legacy releases to masquerade as Toolkit data; raw and prefetched behavior diverges.fetchChangelog() regressions where Toolkit-selected raw prefetched release 0.21.0 is excluded, while source-tagged or explicitly normalized Toolkit data remains accepted.packages/cli/src/lib/ghcr.ts:75-89 only propagates when the signal is aborted and error.name === "AbortError"; controller.abort(reason) may cause fetch to reject with signal.reason, which can instead be retried or wrapped at :121-144, :393-400, and :435-442.new Error("cancelled"), with fetch rejecting using signal.reason, asserting exactly one request and identity-preserving propagation.packages/cli/src/lib/upgrade.ts, src/lib/delta-upgrade.ts, src/lib/binary.ts, src/lib/release-notes.ts, src/commands/cli/upgrade.ts, and corresponding tests.fetchRecentReleases() returns a branded normalized release array; raw prefetched arrays retain source prefixes, only branded arrays may contain stripped tags, and the brand records the selected source. This preserves the array API while preventing unprefixed cross-source data from being trusted.apply_patch failed because Begin/End markers were missing; the next normalization patch was truncated and introduced invalid code tag_name: releaselk? no in packages/cli/src/lib/delta-upgrade.ts.packages/cli/src/lib/delta-upgrade.ts introduced NORMALIZED_RELEASE_SOURCE, exported type NormalizedGitHubReleases, getNormalizedReleaseSource(), and normalizeStableReleases() to carry explicit source provenance with normalized stable releases.packages/cli/src/lib/delta-upgrade.ts, packages/cli/src/lib/release-notes.ts, packages/cli/src/commands/cli/upgrade.ts, and packages/cli/src/lib/ghcr.ts, separating target artifact kind from tracking channel, adding source-aware stable normalization, and handling arbitrary abort reasons.func() in src/commands/cli/upgrade.ts:990 had cognitive complexity 19 above maximum 15, and validateMethod() had an unused channel: ReleaseChannel parameter at :250.validateMethod() and moved artifact-channel selection out of inline target-kind ternaries into a small helper to reduce command complexity.4 focused production files; focused Vitest run passed all 366/366 tests across 6 test files in 12.16s. A warning showed delta fallback after Patch too small: 4 bytes (need at least 32).packages/cli/test/lib/delta-upgrade.test.ts, packages/cli/test/lib/release-notes.test.ts, and packages/cli/test/lib/ghcr.test.ts for both-source semantic-prerelease filtering, raw-versus-branded provenance, stable changelog exclusion, and arbitrary abort-reason identity.packages/cli/test/commands/cli/upgrade.test.ts, strengthening the pinned-nightly migration harness to check no package-manager spawn, stable channel persistence, and setup receiving --channel stable; separate checks cover target-driven Homebrew and npm behavior.373 passing and 1 failing test across 6 files (374 total). Failure: rejects a pinned stable for Homebrew before network access expected rendered output to contain Homebrew does not support installing a specific version, but output was empty.errors collection, so the assertion was changed to inspect errors.join("\n") while retaining zero-network and zero-spawn assertions.errors while it still called getOutput(), and left the Homebrew test binding getOutput while it used errors; Biome reported getOutput and errors as undeclared plus their opposite bindings as unused.getOutput binding was restored, and only the Homebrew rejection test was switched to errors. No subsequent test result was reported in this segment.