Dashboard › cli › Distillation
06200d83-bb85-40da-980b-04eb7fc9aa51["lore_tm_v1_zRfJ_whx44kO0KESu2PCEUXo7l-LjOc7hrgHU48oM8I","lore_tm_v1_q04DDyt17oB9BK8ZJdEOuDRjJ_8RpHVSKr26MwEJcg8","lore_tm_v1_m83y_2wn029d9SruHRusfL26K0E41CC2oOgn-OxbqUY","lore_tm_v1_1MmH_vsts01VpN04zLZ24UnYay4RfhDDdv1LIh4yvzY"]
Uint8Array results must propagate as JsError and must never be silently discarded with .ok()?.getsentry/cli.SelfCell<ByteView<'static>, di::Archive<'static>>, allowing owned object cells to share underlying bytes without reparsing.Object is exported to JavaScript as ObjectFile using #[wasm_bindgen(js_name = "ObjectFile")].@sentry/symbolic 13.4.0 performs bundling through SourceBundleWriter.writeObject(object, objectName, filter, provider).ObjectFile still lacks source enumeration, so print-sources remains blocked.SourceFileDescriptor.contents should be read only when text is required because it copies data across the WASM boundary.ObjectFile.codeId using obj.codeId ?? null.getsentry/toolkit first and legacy getsentry/cli second, with fallback only on HTTP 404.401, 403, 429, 5xx, transport errors, authentication failures, rate-limit failures, server failures, or abort failures.UPGRADE_SOURCES must encode the ordered Toolkitβlegacy CLI fallback, the installer must mirror it in a marked array, and a parity test must enforce exact order.apps/cli-docs and must never nest under or move to packages/cli.packages/cli/** and apps/cli-docs/** from the verified bridge CLI release commit, then import both into a dedicated integration branch based on current getsentry/sentry-mcp main.git log --follow, and blame before renaming.getsentry/cli tree because docs belong at apps/cli-docs, never packages/cli.getsentry/toolkit, followed by revalidation of all wiring.getsentry/cli must remain writable and unarchived until dual publishing ends, at least two stable releases and roughly 90 days have passed, and legacy usage is verified finished.chore: regenerate docs commit as github-actions[bot], and force-advances the branch.#1254 as an example: pushed commit 30ad8b075 was auto-advanced to 605e8318d, modifying 33 skill-doc .md files plus packages/cli/script/bundle.ts.getsentry/cli Dependabotβs /repos/getsentry/cli/security-advisories endpoint returns an empty array, while /repos/getsentry/cli/dependabot/alerts is the source of truth, with 13 open and 15 fixed alerts as of 2026-08-01. (meaning August 1, 2026)getsentry/cli refer either to stale lockfile entries without a source manifest or to transitive dependencies without a direct upgrade path.pnpm.overrides in package.json is the canonical remediation mechanism for transitive vulnerabilities, while direct dependency upgrades cascade through the lockfile.pnpm audit exposes additional CVEs not shown by Dependabot, including @ai-sdk/provider-utils@<=3.0.97 LOW CVE-2026-8769; this is a separate scope requiring a package upgrade rather than an override.packages/cli/src/lib/binary.ts defines KNOWN_CURL_DIRS in exact order as [".local/bin", "bin", ".sentry/bin"].InstallationMethod in packages/cli/src/lib/binary.ts is "curl" | "brew" | "npm" | "pnpm" | "bun" | "yarn" | "unknown"; VALID_METHODS contains the first six in that order and excludes "unknown".parseInstallationMethod(value) lowercases input, validates it against VALID_METHODS, and throws Error(\Invalid method: ${value}. Must be one of: ${VALID_METHODS.join(", ")}`)` for an unsupported value.isMusl() in packages/cli/src/lib/binary.ts returns false outside Linux and caches its Linux result in cachedIsMusl.isMusl() checks two heuristics in order: 1. existence of /lib/ld-musl-${muslArch}.so.1, where muslArch is x86_64 for x64 and otherwise aarch64; 2. combined stdout and stderr from ldd --version, lowercased and checked for "musl". If ldd is unavailable or fails, it assumes glibc and returns false.getPlatformBinaryName() emits sentry-<os>-<arch>[-musl][.exe]: OS is darwin, windows, or linux; architecture is arm64 or x64; -musl comes from isMusl(); and Windows receives .exe.getBinaryDownloadUrl(version) currently returns https://github.com/getsentry/cli/releases/download/${version}/${getPlatformBinaryName()}.GITHUB_RELEASES_URL is currently "https://api.github.com/repos/getsentry/cli/releases".isNightlyVersion(version) identifies a nightly when the version contains "-dev.", corresponding to X.Y.Z-dev.<unix-seconds>.compareVersions(a, b) uses semverCompare(a, b) imported from semver and returns -1 | 0 | 1; its comment still says it uses Bun.semver.order.isDowngrade(current, target) returns compareVersions(current, target) === 1.getBinaryFilename() returns "sentry.exe" on Windows and "sentry" elsewhere.getBinaryPaths(installPath) returns { installPath, tempPath: \${installPath}.download`, oldPath: `${installPath}.old`, lockPath: `${installPath}.lock` }`.$SENTRY_INSTALL_DIR if set and writable; 2. ~/.local/bin if it exists and is in $PATH; 3. ~/bin if it exists and is in $PATH; 4. ~/.sentry/bin as the fallback, with setup responsible for PATH modification.GHCR_BLOB_TIMEOUT = 30_000.AbortSignal.timeout(timeout).126ms to 30s for identical requests.externalSignal?.aborted && error.name === "AbortError" rather than relying on runtime-dependent error-message text.https://ghcr.io.