Dashboard › cli › Distillation
4d5d8f31-9ada-4709-9f83-be486cabb083["lore_tm_v1_66OefEunUT-WMU9lS85NRADMKOYHjn5i6zP9B25h-W0","lore_tm_v1_pwzq2kSMq_AS93bRvw1yG0J5cKGAT9TZMZJGYHOKOU4","lore_tm_v1__WOPZLgiyA3z-8aM9_0LTwrEIo_f92gcaSJbM_veeBc","lore_tm_v1_QIFIcIHru9HLdlMBl2blSDN_OxdyDEwPDaN6p2uh0q8","lore_tm_v1_G1GopZtNi0IP7oukahpsjNhMqs070pO2Wp-ElSLcqzI"]
Date: Sep 10, 2026
truncateSectionMarkdown.marked, Token, and Tokens from "marked"; strips emoji and symbols from heading text for category matching; strips a leading v from version tags; normalizes headings by stripping emoji/extra whitespace and lowercasing; and exports extractSections(body: string): ChangeSection[].ChangeSection[] and category: ChangeCategory; changelog generation returns a summary or null when sections are empty, accepts maxItems?: number, and can accept pre-fetched releases to avoid a duplicate API call.per_page is 100 and uses 30 releases because that covers roughly 6+ months of weekly releases.binpatch, uses cache keys formatted as patch-chain:${fromVersion}-${toVersion}, obtains the binary name through getPlatformBinaryName(), and records patch-chain total size as patches.reduce((sum, patch) => sum + patch.size, 0)."upgrade.delta.apply" and records "delta.chain_length"; application progress starts a fresh bar whose total spans bytes across the apply phase.binpatch in pnpm-lock.yaml at lines 221, 2696, and 7801; the resolved package version is binpatch@0.4.2.packages/cli/test/lib/version-check.test.ts line 456.packages/cli/test/lib/version-check.test.ts, in displayed order: shouldSuppressNotification—suppresses for upgrade command; suppresses for cli management commands; suppresses cli management commands with global flags before the subcommand; suppresses with global flags before cli; does not suppress when a non-flag token precedes cli; does not suppress for cli feedback; does not suppress when setup/fix appear as non-cli args; suppresses for --version; suppresses for --json; does not suppress regular commands; does not suppress empty args.getUpdateNotification tests in packages/cli/test/lib/version-check.test.ts, in displayed order: returns null with no cached version info; returns null when cached and current versions match; returns null when cached version is older; returns a notification when a newer version exists; uses "New nightly available:" on nightly; uses "Update available:" on stable; returns null when stderr is not a TTY; notifies only once per process; and rate-limits across CLI invocations to once per day.getErrorUpdateNotification tests in packages/cli/test/lib/version-check.test.ts, in displayed order: returns null with no cached version info; returns null when cached and current versions match; gives a contextual message for unexpected errors when a newer version exists; omits the standard "Update available:" label; returns null when stderr is not a TTY; shares the once-per-process latch with getUpdateNotification; is suppressed by a standard notification; and rate-limits across CLI invocations.abortPendingVersionCheck tests in packages/cli/test/lib/version-check.test.ts: it does not throw with no pending check and does not throw when called multiple times.maybeCheckForUpdateInBackground tests in packages/cli/test/lib/version-check.test.ts, in displayed order: does not throw when called; checks when never checked before; respects probabilistic checking when recently checked; aborts cleanly through abortPendingVersionCheck; passes the Toolkit source from stable discovery to patch prefetch without legacy access; keeps stable patch prefetch on the legacy source selected after a Toolkit 404; and passes the Toolkit source from nightly discovery to patch prefetch without legacy access.SENTRY_CLI_NO_UPDATE_CHECK=1, covered in packages/cli/test/lib/version-check.test.ts.packages/cli/test/lib/release-notes.test.ts, in displayed order: extractSections extracts features/fixes while filtering docs/internal changes; features contain correct entries; #### scope-group subheadings are preserved; empty bodies return []; bodies without matching sections return []; performance sections are handled.buildChangelogSummary tests in packages/cli/test/lib/release-notes.test.ts, in displayed order: filters releases by version range; returns null with no releases in range; returns null when all bodies are empty; returns null when only internal changes exist; strips author attributions; merges identical categories across releases; orders sections as features, fixes, performance; handles v-prefixed tags; and truncates with maxItems.parseCommitMessages tests in packages/cli/test/lib/release-notes.test.ts, in displayed order: groups by category; extracts scoped commit descriptions; uses only the first line of multiline messages; filters #skip-changelog commits; and produces empty sections for empty commits.extractNightlyTimestamp tests in packages/cli/test/lib/release-notes.test.ts: extracts the timestamp from the standard nightly format, returns null for stable versions, and returns null for invalid formats.countListItems tests in packages/cli/test/lib/release-notes.test.ts: counts simple-list items, returns 0 for non-list content, and returns 0 for an empty token array.fetchChangelog source-affinity tests in packages/cli/test/lib/release-notes.test.ts, in displayed order: stable releases are fetched only from the explicitly selected Toolkit source; a Toolkit changelog is built from normalized prefetched releases; stable releases are fetched only from the explicitly selected legacy source; and nightly commits are fetched only from the explicitly selected Toolkit source.packages/cli/test/lib/delta-upgrade.mocked.test.ts: resolveStableDelta resolves/applies a stable delta patch and returns null when no chain exists; resolveNightlyDelta returns null when the nightly manifest lacks a .gz layer and when no patch chain exists; attemptDeltaUpgrade returns null for stable→nightly cross-channel upgrades, returns null when stable-chain resolution fails, catches patch-application errors and returns null, and returns DeltaResult with telemetry after a successful stable patch.packages/cli/test/lib/delta-upgrade.test.ts: getPlatformBinaryName() returns a string beginning with "sentry-", includes platform and architecture components after removing ".exe" and splitting on "-", and uses an .exe suffix on Windows; canAttemptDelta() returns false for stable→nightly cross-channel upgrades, dev builds, and nightly targets from dev builds.packages/cli/test/lib/delta-upgrade.mocked.test.ts, packages/cli/test/lib/version-check.test.ts, packages/cli/test/lib/release-notes.test.ts, and packages/cli/test/lib/delta-upgrade.test.ts.