Skip to content

feat(toolkit): import CLI and docs history - #1320

Merged
BYK merged 767 commits into
mainfrom
feat/toolkit-cli-import
Sep 30, 2026
Merged

BYK merged 767 commits into
mainfrom
feat/toolkit-cli-import

Conversation

@BYK

@BYK BYK commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Import packages/cli and apps/cli-docs with their unsquashed history from CLI release 0.45.0, then advance the imported CLI history to the latest getsentry/cli main.
  • Add both packages to the pnpm workspace, restore root patch authority under pnpm 11, and replace Turbo with pnpm-native orchestration and affected-package PR validation.
  • Keep MCP deployment, smoke, eval, and clean-consumer workflows scoped to their product closures.

Import provenance

  • Release source: 03f636f8d1fe6553acf22595eb029ddc8efc79eb; initial filtered CLI tip: d5ffbcefa8977382127dc752dd0c78e34fc90ccd; initial filtered docs tip: 6620138c1cb167babb45987cb2fc499adc00805a.
  • Initial import merges: CLI 7d81b40ab93b2f57240cdab3d1b813963c18b062; docs 86902bac7b2e4ac072ec667b4ab5b11d310450b0. Both imported trees were byte-identical to their source release trees. The release commit made no docs-tree change, so the filtered docs tip is its parent.
  • Earlier source-main refresh: fc1140092883409046438c8bb5d6f7f939eb9659, with filtered CLI tip 6b08e9029dc7e092bfebaa3870ca116e7dfdfc89 and filtered docs tip 4358ec2729a60ef034f3866680fc5fd7bce62ce0.
  • Latest CLI source main: c1337081e382f28a67a0f7594b542e9429402d1c, imported as filtered CLI commit 5eb94845654fa8e3856a8b0473cb24261c3169d0 by merge 8ff191c70201086a2b391ab3999ef63f6afaeb1d. Its filtered parent e34a7c2b31f0501328ab43b4a5a5be31639b8322 maps to upstream 6f9d32308b58633b00fbfe67f288d956d4419d9c. The latest upstream commit changes only CLI error reporting and its tests; the upstream docs tree is unchanged. The filtered ancestry retains the earlier import history. Toolkit-specific integration changes remain in the destination tree.

Validation

  • Frozen pnpm 11 offline install, workspace typecheck/build (pnpm run tsc), and workspace lint pass. Lint reports two pre-existing warnings outside this change.
  • CLI unit suite passes: 479 files, 10,183 passed, 13 skipped. Focused error-reporting tests pass: 92 tests.
  • The workspace pnpm run test reached the MCP core suite after the CLI suite passed, then hit the local command's 10-minute timeout. Exact-head CI validates the remaining packages.
  • Earlier import validation passed the CLI docs static build, generated-definition and documentation checks, workflow YAML/actionlint checks, the compiled Linux CLI binary, and the CLI E2E suite (144 passed, 3 skipped).

Full-range git diff --check reports trailing whitespace inherited from the original byte-identical release import. Integration commits pass git diff --check; preserving imported history avoids rewriting the source commits.

Closes getsentry/cli#1239.

Administrative migration is tracked separately in getsentry/cli#1597. The source repository must not be archived until that workflow has migrated settings, open PRs have destination replacements, this integration PR has merged, and release/deployment cutover gates pass.

MathurAditya724 and others added 30 commits September 2, 2026 23:49
The Sixel dashboard renderer now embeds Spleen 8x16 glyphs instead of
Cozette, while retaining the current terminal-cell scaling and dashboard
box, block, and sparkline coverage. The packaged third-party notice now
carries Spleen's BSD-2-Clause attribution.

<img width="1914" height="621" alt="image"
src="https://github.com/user-attachments/assets/7681ff3e-2c30-4ead-8c1f-fa271f0edf63"
/>
The Sixel dashboard renderer now embeds Spleen 8x16 glyphs instead of
Cozette, while retaining the current terminal-cell scaling and dashboard
box, block, and sparkline coverage. The packaged third-party notice now
carries Spleen's BSD-2-Clause attribution.

<img width="1914" height="621" alt="image"
src="https://github.com/user-attachments/assets/7681ff3e-2c30-4ead-8c1f-fa271f0edf63"
/>
The Sixel dashboard renderer now embeds Spleen 8x16 glyphs instead of
Cozette, while retaining the current terminal-cell scaling and dashboard
box, block, and sparkline coverage. The packaged third-party notice now
carries Spleen's BSD-2-Clause attribution.

<img width="1914" height="621" alt="image"
src="https://github.com/user-attachments/assets/7681ff3e-2c30-4ead-8c1f-fa271f0edf63"
/>
`sentry dashboard view` now caps high-DPI graphics canvases at 2560px by
default, preventing large Retina terminal windows from hitting the
existing 8M-pixel guard and falling back to ASCII.

`--no-graphics-cap` restores terminal-native width for callers who
prefer it; the existing hard safety limit remains in place. The
regression coverage exercises both the capped graphics path and the
uncapped safety fallback.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
`sentry dashboard view` now caps high-DPI graphics canvases at 2560px by
default, preventing large Retina terminal windows from hitting the
existing 8M-pixel guard and falling back to ASCII.

`--no-graphics-cap` restores terminal-native width for callers who
prefer it; the existing hard safety limit remains in place. The
regression coverage exercises both the capped graphics path and the
uncapped safety fallback.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
`sentry dashboard view` now caps high-DPI graphics canvases at 2560px by
default, preventing large Retina terminal windows from hitting the
existing 8M-pixel guard and falling back to ASCII.

`--no-graphics-cap` restores terminal-native width for callers who
prefer it; the existing hard safety limit remains in place. The
regression coverage exercises both the capped graphics path and the
uncapped safety fallback.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…#1512)

## Bug

`maybePrefetchPatches()` in `src/lib/version-check.ts` contained two
silent catch blocks that swallowed errors from delta patch pre-fetching
and patch cache cleanup without any logging.

## Root cause

Both catch blocks used comment-only error suppression (`// Pre-fetch is
best-effort` and `/* ignore */`) instead of `logger.debug()`, violating
the project's silent-catch prohibition and making failures invisible
even with `--verbose`.

## Reproduction

Any error during `prefetchNightlyPatches`/`prefetchStablePatches` or
`cleanupPatchCache` would be silently dropped, providing no diagnostic
output when delta upgrades fail to pre-fetch.

## Fix

- Added `logger.debug()` to both catch blocks so errors appear in
`--verbose` output
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
…#1512)

## Bug

`maybePrefetchPatches()` in `src/lib/version-check.ts` contained two
silent catch blocks that swallowed errors from delta patch pre-fetching
and patch cache cleanup without any logging.

## Root cause

Both catch blocks used comment-only error suppression (`// Pre-fetch is
best-effort` and `/* ignore */`) instead of `logger.debug()`, violating
the project's silent-catch prohibition and making failures invisible
even with `--verbose`.

## Reproduction

Any error during `prefetchNightlyPatches`/`prefetchStablePatches` or
`cleanupPatchCache` would be silently dropped, providing no diagnostic
output when delta upgrades fail to pre-fetch.

## Fix

- Added `logger.debug()` to both catch blocks so errors appear in
`--verbose` output
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
…#1512)

## Bug

`maybePrefetchPatches()` in `src/lib/version-check.ts` contained two
silent catch blocks that swallowed errors from delta patch pre-fetching
and patch cache cleanup without any logging.

## Root cause

Both catch blocks used comment-only error suppression (`// Pre-fetch is
best-effort` and `/* ignore */`) instead of `logger.debug()`, violating
the project's silent-catch prohibition and making failures invisible
even with `--verbose`.

## Reproduction

Any error during `prefetchNightlyPatches`/`prefetchStablePatches` or
`cleanupPatchCache` would be silently dropped, providing no diagnostic
output when delta upgrades fail to pre-fetch.

## Fix

- Added `logger.debug()` to both catch blocks so errors appear in
`--verbose` output
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
## Bug

`tryProguard()` and `tryObject()` in `src/lib/dif/find.ts` contained
three silent catch blocks that discarded errors when reading, hashing,
or parsing debug-information files during `debug-files find`.

## Root cause

Three catch blocks used bare `catch { return; }` without any logging,
violating the project's silent-catch prohibition. Users running `sentry
debug-files find` had no way to diagnose why certain files were silently
skipped.

## Reproduction

Any file I/O error (permissions, corrupted files, disk issues) during
debug file scanning would be silently swallowed, providing no diagnostic
output even with `--verbose`.

## Fix

- Added `logger.debug()` to all three catch blocks in `tryProguard`
(ProGuard UUID computation) and `tryObject` (format peek + debug file
parse)
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Bug

`tryProguard()` and `tryObject()` in `src/lib/dif/find.ts` contained
three silent catch blocks that discarded errors when reading, hashing,
or parsing debug-information files during `debug-files find`.

## Root cause

Three catch blocks used bare `catch { return; }` without any logging,
violating the project's silent-catch prohibition. Users running `sentry
debug-files find` had no way to diagnose why certain files were silently
skipped.

## Reproduction

Any file I/O error (permissions, corrupted files, disk issues) during
debug file scanning would be silently swallowed, providing no diagnostic
output even with `--verbose`.

## Fix

- Added `logger.debug()` to all three catch blocks in `tryProguard`
(ProGuard UUID computation) and `tryObject` (format peek + debug file
parse)
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Bug

`tryProguard()` and `tryObject()` in `src/lib/dif/find.ts` contained
three silent catch blocks that discarded errors when reading, hashing,
or parsing debug-information files during `debug-files find`.

## Root cause

Three catch blocks used bare `catch { return; }` without any logging,
violating the project's silent-catch prohibition. Users running `sentry
debug-files find` had no way to diagnose why certain files were silently
skipped.

## Reproduction

Any file I/O error (permissions, corrupted files, disk issues) during
debug file scanning would be silently swallowed, providing no diagnostic
output even with `--verbose`.

## Fix

- Added `logger.debug()` to all three catch blocks in `tryProguard`
(ProGuard UUID computation) and `tryObject` (format peek + debug file
parse)
- Updated the silent-catch baseline to reflect the fixes

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Use the correct restore endpoint url
`/organizations/${orgSlug}/dashboards/${dashboardId}/revisions/${encodedRevisionId}/restore/`
Use the correct restore endpoint url
`/organizations/${orgSlug}/dashboards/${dashboardId}/revisions/${encodedRevisionId}/restore/`
Use the correct restore endpoint url
`/organizations/${orgSlug}/dashboards/${dashboardId}/revisions/${encodedRevisionId}/restore/`
This PR fixes a `ValidationError: Invalid Event ID: contains a space.`
that occurred when AI agents provided multiple event IDs separated by
spaces as a single argument to commands like `sentry event view`.

The root cause was that the `splitNewlineArg` utility function, used by
`expandNewlineArgs`, only split input strings on newline characters
(`\n`). When agents provided space-separated IDs (e.g.,
`"org/project/id1 org/project/id2"`), the entire string was passed as a
single argument to `validateResourceId`, which correctly rejected it due
to the presence of spaces.

The solution modifies `splitNewlineArg` to split on any whitespace
(`/\s+/`) instead of just newlines. This ensures that space-separated,
tab-separated, and newline-separated IDs are all correctly parsed into
individual arguments, preventing the validation error. The JSDoc for the
function has also been updated to reflect this change.

Fixes
[CLI-1HT](https://sentry.sentry.io/issues/7449832039/?seerDrawer=true)

<sub>`@sentry <feedback>`: Autofix iterates on these changes</sub>
<sub>`@sentry stop iterating`: Autofix stops iterating on this run</sub>

<sub>This PR was automatically generated by Sentry. You can [adjust this
setting](https://sentry.sentry.io/settings/projects/cli/seer/) at any
time.</sub>

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
This PR fixes a `ValidationError: Invalid Event ID: contains a space.`
that occurred when AI agents provided multiple event IDs separated by
spaces as a single argument to commands like `sentry event view`.

The root cause was that the `splitNewlineArg` utility function, used by
`expandNewlineArgs`, only split input strings on newline characters
(`\n`). When agents provided space-separated IDs (e.g.,
`"org/project/id1 org/project/id2"`), the entire string was passed as a
single argument to `validateResourceId`, which correctly rejected it due
to the presence of spaces.

The solution modifies `splitNewlineArg` to split on any whitespace
(`/\s+/`) instead of just newlines. This ensures that space-separated,
tab-separated, and newline-separated IDs are all correctly parsed into
individual arguments, preventing the validation error. The JSDoc for the
function has also been updated to reflect this change.

Fixes
[CLI-1HT](https://sentry.sentry.io/issues/7449832039/?seerDrawer=true)

<sub>`@sentry <feedback>`: Autofix iterates on these changes</sub>
<sub>`@sentry stop iterating`: Autofix stops iterating on this run</sub>

<sub>This PR was automatically generated by Sentry. You can [adjust this
setting](https://sentry.sentry.io/settings/projects/cli/seer/) at any
time.</sub>

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
This PR fixes a `ValidationError: Invalid Event ID: contains a space.`
that occurred when AI agents provided multiple event IDs separated by
spaces as a single argument to commands like `sentry event view`.

The root cause was that the `splitNewlineArg` utility function, used by
`expandNewlineArgs`, only split input strings on newline characters
(`\n`). When agents provided space-separated IDs (e.g.,
`"org/project/id1 org/project/id2"`), the entire string was passed as a
single argument to `validateResourceId`, which correctly rejected it due
to the presence of spaces.

The solution modifies `splitNewlineArg` to split on any whitespace
(`/\s+/`) instead of just newlines. This ensures that space-separated,
tab-separated, and newline-separated IDs are all correctly parsed into
individual arguments, preventing the validation error. The JSDoc for the
function has also been updated to reflect this change.

Fixes
[CLI-1HT](https://sentry.sentry.io/issues/7449832039/?seerDrawer=true)

<sub>`@sentry <feedback>`: Autofix iterates on these changes</sub>
<sub>`@sentry stop iterating`: Autofix stops iterating on this run</sub>

<sub>This PR was automatically generated by Sentry. You can [adjust this
setting](https://sentry.sentry.io/settings/projects/cli/seer/) at any
time.</sub>

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
…nstall flags, plugin syntax (#1514)

## Documentation Audit Report — 2026-08-31

Weekly audit comparing the Sentry CLI implementation (v0.45.0-dev.0)
against its documentation. This covers changes since the last merged
audit ([#1461](getsentry/cli#1461), 2026-08-24).

---

### Findings Summary

| Section | Status |
|---------|--------|
| A. Undocumented commands | ✅ No gaps — `check:fragments` CI enforces
coverage |
| B. Undocumented flags | ✅ No gaps — auto-generated from CLI metadata |
| C. Missing usage examples | ✅ All 37 fragments have bash examples |
| D. Stale descriptions | ✅ No drift — pulled from code at generation
time |
| E. Missing route mappings | ✅ No gaps — `ROUTE_TO_REFERENCE` replaced
with auto 1:1 mapping |
| F. Installation gaps | ⚠️ Install script flags undocumented in
getting-started.mdx |
| G. Undocumented env vars | ✅ No gaps — `check:env-coverage` CI
enforces completeness |
| H. Auth/self-hosted gaps | ⚠️ `auth refresh --read-only/--scope`
examples missing |
| I. Plugin/skills gaps | ⚠️ `sentry docs` missing from agentic pages;
stale plugin syntax |
| J. README/DEVELOPMENT.md drift | ✅ No drift — auto-generated marker
sections |

---

### Changes Made

**1. Add `sentry docs` and `sentry status` to agentic guidance (I1,
I2)**

The `sentry docs` command suite (#1457) and `sentry status` command
(#1494) are recent additions that are highly relevant for AI agent
workflows but were not mentioned in `agentic-usage.md` or
`agent-guidance.md`. Added:
- New capability in agentic-usage.md: "Query documentation"
- New examples: `sentry docs "How do I set up source maps?"` and `sentry
status`
- New workflow patterns in agent-guidance.md for documentation querying
and status checking
- New key principle: "Use `sentry docs` for setup questions"
- New common mistake entry about fetching docs externally

**2. Document install script flags in getting-started.mdx (F1)**

The install script accepts `--no-modify-path`, `--no-completions`, and
`--no-agent-skills` flags, plus the `SENTRY_INSTALL_DIR` env var. These
were documented in the CLI fragment (`cli.md`) but not on the Getting
Started page where users encounter the install script.

**3. Update plugins/README.md installation syntax (I3)**

Replaced deprecated Claude Code `claude plugin marketplace add` /
`claude plugin install` commands with current dotagents-based
installation and automatic skill installation documentation.

**4. Add `auth refresh` scoped examples (H1)**

Added `--read-only` and `--scope` examples to the `auth refresh` section
in `auth.md` fragment.

---

### Top 5 Most Impactful Fixes (prioritized)

1. **`sentry docs` in agentic pages** — Primary agent tool for
documentation queries, invisible without this
2. **Install script flags in getting-started** — CI/Docker users need
`--no-agent-skills` etc.
3. **Plugin syntax update** — Deprecated commands that no longer work
4. **`sentry docs` workflow pattern** — Natural addition to detailed
agent guidance
5. **`auth refresh` scoped examples** — Minor but useful for agents and
CI

<div><a
href="https://cursor.com/agents/bc-540303b8-6fe0-4e4e-9e70-cacd12705c98?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/8b0c0f35-da5e-409d-984c-5e39518ffb8a"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…nstall flags, plugin syntax (#1514)

## Documentation Audit Report — 2026-08-31

Weekly audit comparing the Sentry CLI implementation (v0.45.0-dev.0)
against its documentation. This covers changes since the last merged
audit ([#1461](getsentry/cli#1461), 2026-08-24).

---

### Findings Summary

| Section | Status |
|---------|--------|
| A. Undocumented commands | ✅ No gaps — `check:fragments` CI enforces
coverage |
| B. Undocumented flags | ✅ No gaps — auto-generated from CLI metadata |
| C. Missing usage examples | ✅ All 37 fragments have bash examples |
| D. Stale descriptions | ✅ No drift — pulled from code at generation
time |
| E. Missing route mappings | ✅ No gaps — `ROUTE_TO_REFERENCE` replaced
with auto 1:1 mapping |
| F. Installation gaps | ⚠️ Install script flags undocumented in
getting-started.mdx |
| G. Undocumented env vars | ✅ No gaps — `check:env-coverage` CI
enforces completeness |
| H. Auth/self-hosted gaps | ⚠️ `auth refresh --read-only/--scope`
examples missing |
| I. Plugin/skills gaps | ⚠️ `sentry docs` missing from agentic pages;
stale plugin syntax |
| J. README/DEVELOPMENT.md drift | ✅ No drift — auto-generated marker
sections |

---

### Changes Made

**1. Add `sentry docs` and `sentry status` to agentic guidance (I1,
I2)**

The `sentry docs` command suite (#1457) and `sentry status` command
(#1494) are recent additions that are highly relevant for AI agent
workflows but were not mentioned in `agentic-usage.md` or
`agent-guidance.md`. Added:
- New capability in agentic-usage.md: "Query documentation"
- New examples: `sentry docs "How do I set up source maps?"` and `sentry
status`
- New workflow patterns in agent-guidance.md for documentation querying
and status checking
- New key principle: "Use `sentry docs` for setup questions"
- New common mistake entry about fetching docs externally

**2. Document install script flags in getting-started.mdx (F1)**

The install script accepts `--no-modify-path`, `--no-completions`, and
`--no-agent-skills` flags, plus the `SENTRY_INSTALL_DIR` env var. These
were documented in the CLI fragment (`cli.md`) but not on the Getting
Started page where users encounter the install script.

**3. Update plugins/README.md installation syntax (I3)**

Replaced deprecated Claude Code `claude plugin marketplace add` /
`claude plugin install` commands with current dotagents-based
installation and automatic skill installation documentation.

**4. Add `auth refresh` scoped examples (H1)**

Added `--read-only` and `--scope` examples to the `auth refresh` section
in `auth.md` fragment.

---

### Top 5 Most Impactful Fixes (prioritized)

1. **`sentry docs` in agentic pages** — Primary agent tool for
documentation queries, invisible without this
2. **Install script flags in getting-started** — CI/Docker users need
`--no-agent-skills` etc.
3. **Plugin syntax update** — Deprecated commands that no longer work
4. **`sentry docs` workflow pattern** — Natural addition to detailed
agent guidance
5. **`auth refresh` scoped examples** — Minor but useful for agents and
CI

<div><a
href="https://cursor.com/agents/bc-540303b8-6fe0-4e4e-9e70-cacd12705c98?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/8b0c0f35-da5e-409d-984c-5e39518ffb8a"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…nstall flags, plugin syntax (#1514)

## Documentation Audit Report — 2026-08-31

Weekly audit comparing the Sentry CLI implementation (v0.45.0-dev.0)
against its documentation. This covers changes since the last merged
audit ([#1461](getsentry/cli#1461), 2026-08-24).

---

### Findings Summary

| Section | Status |
|---------|--------|
| A. Undocumented commands | ✅ No gaps — `check:fragments` CI enforces
coverage |
| B. Undocumented flags | ✅ No gaps — auto-generated from CLI metadata |
| C. Missing usage examples | ✅ All 37 fragments have bash examples |
| D. Stale descriptions | ✅ No drift — pulled from code at generation
time |
| E. Missing route mappings | ✅ No gaps — `ROUTE_TO_REFERENCE` replaced
with auto 1:1 mapping |
| F. Installation gaps | ⚠️ Install script flags undocumented in
getting-started.mdx |
| G. Undocumented env vars | ✅ No gaps — `check:env-coverage` CI
enforces completeness |
| H. Auth/self-hosted gaps | ⚠️ `auth refresh --read-only/--scope`
examples missing |
| I. Plugin/skills gaps | ⚠️ `sentry docs` missing from agentic pages;
stale plugin syntax |
| J. README/DEVELOPMENT.md drift | ✅ No drift — auto-generated marker
sections |

---

### Changes Made

**1. Add `sentry docs` and `sentry status` to agentic guidance (I1,
I2)**

The `sentry docs` command suite (#1457) and `sentry status` command
(#1494) are recent additions that are highly relevant for AI agent
workflows but were not mentioned in `agentic-usage.md` or
`agent-guidance.md`. Added:
- New capability in agentic-usage.md: "Query documentation"
- New examples: `sentry docs "How do I set up source maps?"` and `sentry
status`
- New workflow patterns in agent-guidance.md for documentation querying
and status checking
- New key principle: "Use `sentry docs` for setup questions"
- New common mistake entry about fetching docs externally

**2. Document install script flags in getting-started.mdx (F1)**

The install script accepts `--no-modify-path`, `--no-completions`, and
`--no-agent-skills` flags, plus the `SENTRY_INSTALL_DIR` env var. These
were documented in the CLI fragment (`cli.md`) but not on the Getting
Started page where users encounter the install script.

**3. Update plugins/README.md installation syntax (I3)**

Replaced deprecated Claude Code `claude plugin marketplace add` /
`claude plugin install` commands with current dotagents-based
installation and automatic skill installation documentation.

**4. Add `auth refresh` scoped examples (H1)**

Added `--read-only` and `--scope` examples to the `auth refresh` section
in `auth.md` fragment.

---

### Top 5 Most Impactful Fixes (prioritized)

1. **`sentry docs` in agentic pages** — Primary agent tool for
documentation queries, invisible without this
2. **Install script flags in getting-started** — CI/Docker users need
`--no-agent-skills` etc.
3. **Plugin syntax update** — Deprecated commands that no longer work
4. **`sentry docs` workflow pattern** — Natural addition to detailed
agent guidance
5. **`auth refresh` scoped examples** — Minor but useful for agents and
CI

<div><a
href="https://cursor.com/agents/bc-540303b8-6fe0-4e4e-9e70-cacd12705c98?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/8b0c0f35-da5e-409d-984c-5e39518ffb8a"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…nstall flags, plugin syntax (#1514)

## Documentation Audit Report — 2026-08-31

Weekly audit comparing the Sentry CLI implementation (v0.45.0-dev.0)
against its documentation. This covers changes since the last merged
audit ([#1461](getsentry/cli#1461), 2026-08-24).

---

### Findings Summary

| Section | Status |
|---------|--------|
| A. Undocumented commands | ✅ No gaps — `check:fragments` CI enforces
coverage |
| B. Undocumented flags | ✅ No gaps — auto-generated from CLI metadata |
| C. Missing usage examples | ✅ All 37 fragments have bash examples |
| D. Stale descriptions | ✅ No drift — pulled from code at generation
time |
| E. Missing route mappings | ✅ No gaps — `ROUTE_TO_REFERENCE` replaced
with auto 1:1 mapping |
| F. Installation gaps | ⚠️ Install script flags undocumented in
getting-started.mdx |
| G. Undocumented env vars | ✅ No gaps — `check:env-coverage` CI
enforces completeness |
| H. Auth/self-hosted gaps | ⚠️ `auth refresh --read-only/--scope`
examples missing |
| I. Plugin/skills gaps | ⚠️ `sentry docs` missing from agentic pages;
stale plugin syntax |
| J. README/DEVELOPMENT.md drift | ✅ No drift — auto-generated marker
sections |

---

### Changes Made

**1. Add `sentry docs` and `sentry status` to agentic guidance (I1,
I2)**

The `sentry docs` command suite (#1457) and `sentry status` command
(#1494) are recent additions that are highly relevant for AI agent
workflows but were not mentioned in `agentic-usage.md` or
`agent-guidance.md`. Added:
- New capability in agentic-usage.md: "Query documentation"
- New examples: `sentry docs "How do I set up source maps?"` and `sentry
status`
- New workflow patterns in agent-guidance.md for documentation querying
and status checking
- New key principle: "Use `sentry docs` for setup questions"
- New common mistake entry about fetching docs externally

**2. Document install script flags in getting-started.mdx (F1)**

The install script accepts `--no-modify-path`, `--no-completions`, and
`--no-agent-skills` flags, plus the `SENTRY_INSTALL_DIR` env var. These
were documented in the CLI fragment (`cli.md`) but not on the Getting
Started page where users encounter the install script.

**3. Update plugins/README.md installation syntax (I3)**

Replaced deprecated Claude Code `claude plugin marketplace add` /
`claude plugin install` commands with current dotagents-based
installation and automatic skill installation documentation.

**4. Add `auth refresh` scoped examples (H1)**

Added `--read-only` and `--scope` examples to the `auth refresh` section
in `auth.md` fragment.

---

### Top 5 Most Impactful Fixes (prioritized)

1. **`sentry docs` in agentic pages** — Primary agent tool for
documentation queries, invisible without this
2. **Install script flags in getting-started** — CI/Docker users need
`--no-agent-skills` etc.
3. **Plugin syntax update** — Deprecated commands that no longer work
4. **`sentry docs` workflow pattern** — Natural addition to detailed
agent guidance
5. **`auth refresh` scoped examples** — Minor but useful for agents and
CI

<div><a
href="https://cursor.com/agents/bc-540303b8-6fe0-4e4e-9e70-cacd12705c98?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/8b0c0f35-da5e-409d-984c-5e39518ffb8a"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…511)

## Bug

`hasActiveOAuthGrant()` in `src/lib/scope-recovery.ts` silently
swallowed all exceptions from `runtime.getAuthSource()`. This violated
the project's silent-catch prohibition and made it impossible to
diagnose database errors that could prevent the OAuth scope recovery
flow from activating.

## Root cause

The `catch` block returned `false` without any logging, so failures in
`getAuthSource()` (e.g. DB corruption, missing tables) were completely
invisible even with `--verbose`.

## Reproduction

Any database error during `getAuthSource()` would be silently swallowed,
causing the CLI to skip OAuth scope recovery without any diagnostic
output.

## Fix

- Added `logger.debug()` to the catch block so the error is visible with
`--verbose`
- Updated the silent-catch baseline to reflect the fix

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
…511)

## Bug

`hasActiveOAuthGrant()` in `src/lib/scope-recovery.ts` silently
swallowed all exceptions from `runtime.getAuthSource()`. This violated
the project's silent-catch prohibition and made it impossible to
diagnose database errors that could prevent the OAuth scope recovery
flow from activating.

## Root cause

The `catch` block returned `false` without any logging, so failures in
`getAuthSource()` (e.g. DB corruption, missing tables) were completely
invisible even with `--verbose`.

## Reproduction

Any database error during `getAuthSource()` would be silently swallowed,
causing the CLI to skip OAuth scope recovery without any diagnostic
output.

## Fix

- Added `logger.debug()` to the catch block so the error is visible with
`--verbose`
- Updated the silent-catch baseline to reflect the fix

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
…511)

## Bug

`hasActiveOAuthGrant()` in `src/lib/scope-recovery.ts` silently
swallowed all exceptions from `runtime.getAuthSource()`. This violated
the project's silent-catch prohibition and made it impossible to
diagnose database errors that could prevent the OAuth scope recovery
flow from activating.

## Root cause

The `catch` block returned `false` without any logging, so failures in
`getAuthSource()` (e.g. DB corruption, missing tables) were completely
invisible even with `--verbose`.

## Reproduction

Any database error during `getAuthSource()` would be silently swallowed,
causing the CLI to skip OAuth scope recovery without any diagnostic
output.

## Fix

- Added `logger.debug()` to the catch block so the error is visible with
`--verbose`
- Updated the silent-catch baseline to reflect the fix

<div><a
href="https://cursor.com/agents/bc-2ebe539c-e397-4e60-b8b7-8cca4c40410c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a
href="https://cursor.com/automations/95624600-485e-4461-829e-6b76f086c473"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/view-automation-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/view-automation-light.png"><img
alt="View Automation" width="141" height="28"
src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
`transactions` is no longer a valid dataset for alerts (the same use
cases are supported by spans). All existing alerts have been migrated
off of those datasets and creating new alerts that use them has been
blocked on all billing plans.

Remove all references to transactions datasets from alerts code and
skills.

See BROWSE-682.

---------

Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
`transactions` is no longer a valid dataset for alerts (the same use
cases are supported by spans). All existing alerts have been migrated
off of those datasets and creating new alerts that use them has been
blocked on all billing plans.

Remove all references to transactions datasets from alerts code and
skills.

See BROWSE-682.

---------

Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
`transactions` is no longer a valid dataset for alerts (the same use
cases are supported by spans). All existing alerts have been migrated
off of those datasets and creating new alerts that use them has been
blocked on all billing plans.

Remove all references to transactions datasets from alerts code and
skills.

See BROWSE-682.

---------

Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
`transactions` is no longer a valid dataset for alerts (the same use
cases are supported by spans). All existing alerts have been migrated
off of those datasets and creating new alerts that use them has been
blocked on all billing plans.

Remove all references to transactions datasets from alerts code and
skills.

See BROWSE-682.

---------

Co-authored-by: jared-outpost[bot] <jared-outpost[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread .craft.yml
Comment thread apps/cli-docs/src/content/docs/migrating-from-v3.md Outdated
Comment thread apps/cli-docs/src/content/docs/migrating-from-v3.md
Comment thread package.json
Comment thread apps/cli-docs/test/migration-shim.test.mjs Outdated
sentry Bot and others added 2 commits September 30, 2026 12:17
This PR addresses issue CLI-1WP, where `SeerError: Seer is not enabled
for this organization.` was being reported to Sentry for self-hosted
instances.

**Problem:**
When `sentry issue explain` or `sentry issue plan` is run against a
self-hosted Sentry instance where Seer is disabled, the CLI receives a
403 HTTP response. This is converted into a `SeerError('not_enabled')`.
Because `SeerError` extends `CliError` (not `ApiError`), and
`classifySilenced()` had no specific handling for `SeerError`, these
expected feature-gate conditions were being captured as Sentry issues,
polluting the issue tracker. For self-hosted users, Seer cannot be
enabled or trialed, making these reports unactionable noise.

**Solution:**
1. Added `"seer_unavailable_self_hosted"` to the `SilenceReason` union
type in `packages/cli/src/lib/error-reporting.ts`.
2. Modified `classifySilenced()` to return this new reason when a
`SeerError` occurs and the CLI is *not* pointed at a SaaS (sentry.io)
instance. This ensures that the error is silenced only for self-hosted
environments.
3. Added a `seer_reason` attribute to the `cli.error.silenced` metric
when a `SeerError` is silenced. This allows tracking the volume of these
events without creating Sentry issues.
4. Ensured that `SeerError`s on SaaS instances continue to be captured,
as this is an intentional signal for marketing dashboards.
5. Added unit tests to verify that `SeerError`s are silenced on
self-hosted configurations and captured on SaaS, and that the correct
metric attributes are emitted.

This change prevents expected feature-gate conditions on self-hosted
Sentry from being reported as CLI errors, while preserving the intended
capture behavior for SaaS environments.

<!-- SEER_FIXES_SENTRY_ISSUE -->
Fixes
[CLI-1WP](https://sentry.sentry.io/issues/7513541924/?seerDrawer=true)
<!-- /SEER_FIXES_SENTRY_ISSUE -->

<sub>`@sentry <feedback>`: Autofix iterates on these changes</sub>
<sub>`@sentry stop iterating`: Autofix stops iterating on this run</sub>

<sub>This PR was automatically generated by Sentry. You can [adjust this
setting](https://sentry.sentry.io/settings/projects/cli/seer/) at any
time.</sub>

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread .github/workflows/release.yml
Comment thread apps/cli-docs/src/components/InstallSelector.astro
Comment thread apps/cli-docs/src/content/docs/migrating-from-v3.md
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread apps/cli-docs/src/content/docs/migrating-from-v3.md
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread packages/cli/install Outdated
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread packages/cli/install Outdated
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Comment thread package.json
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Co-Authored-By: GPT-6 Sol <noreply@openai.com>
Import getsentry/cli main at c1337081e382f28a67a0f7594b542e9429402d1c via filtered commit 5eb9484. CLI docs are unchanged upstream. Preserve Toolkit-specific CLI test additions.

Co-Authored-By: GPT-6 Sol <noreply@openai.com>
@BYK
BYK merged commit d929248 into main Sep 30, 2026
31 of 33 checks passed
@BYK
BYK deleted the feat/toolkit-cli-import branch September 30, 2026 22:09

This branch was successfully deployed

1 active deployment
Actions — 8ff191c7 Deployed Sep 30, 2026 by BYK via eval #1157
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

toolkit merge: import CLI into sentry-mcp, validate, then rename

10 participants