Dashboard › cli › Distillation
79fd3b07-258b-415c-9f2d-150f2c6db8d8["lore_tm_v1_hPkyZMij1oKwn0l98MnFkZiWEOP_8-5BphovBVx5Nj8","lore_tm_v1_71V1YiyTtRwXtstuMJfY2sCcelABGUYSiz4xPdIRvhc","lore_tm_v1_EHcj9Xf-Tbl0lkTwL1jBb8Tk_-QMPtXq052SQ8ldCfY"]
Date: Sep 9, 2026
UpgradeError when the file never becomes visible or stays empty.packages/cli/src/lib/upgrade.ts changed detectInstallationMethod() priority to: 1. Homebrew via authoritative realpath check, 2. stored install info in the DB as a fast path, 3. legacy detection through curl paths, subprocess calls, and the node_modules path, 4. auto-save the detected method for future runs; inability to determine the method returns "unknown".packages/cli/src/lib/upgrade.ts added valid as semverValid from semver, added compareVersions, and replaced direct use of static GITHUB_RELEASES_URL with source-aware upgrade-resolution imports from ./binary.js.packages/cli/src/lib/upgrade.ts now returns ResolvedUpgradeVersion containing both version and the selected source, specifically { version, source: resolved.source }.packages/cli/src/lib/upgrade.ts remains based on GHCR tags such as nightly-0.14.0-dev.1772661724 and now obtains credentials with getAnonymousToken(source), preserving the selected upgrade source.packages/cli/src/lib/upgrade.ts added standaloneVersionExists(...); it checks source-aware standalone-version resolution and returns whether the result is non-null.packages/cli/src/lib/upgrade.ts sends a HEAD request to ${NPM_REGISTRY_URL}/${version} through fetchWithUpgradeError(..., "npm registry") and returns response.ok.packages/cli/src/lib/upgrade.ts now fully consumes the response with await response.arrayBuffer() and writes new Uint8Array(body) via writeFile(destPath, ...); this avoids Bun issue https://github.com/oven-sh/bun/issues/13237, where Bun.write(path, Response) with a large streaming body can let the process exit before the download finishes.packages/cli/src/lib/upgrade.ts documents downloaded-file polling backoff beginning with attempt 1 at 0 ms and then 100 ms; failure occurs if the file never appears or remains zero-length.packages/cli/src/lib/upgrade.ts now carry downloadTag, allowing downstream installation logic to retain the exact selected tag.packages/cli/test/commands/cli/upgrade.test.ts found coverage titled "uses the selected legacy source for the check-mode changelog" at line 412, plus an npm-registry fallback case near line 234, a pre-network validation error case near line 378, an unexpected HTTP 500 guard near line 428, and an EBUSY: resource busy or locked, uv_spawn error fixture near line 1155.