Add `sentry doctor` with SDK-owned check metadata
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- cli, github, typescript
- Domain
- cli, developer-experience
Research direction
Read the design direction and related issues #1627 and #1630, then inspect the existing CLI commands and DSN discovery mentioned in the issue. Start by breaking the proposed work into reviewable pieces and locating the existing implementations to reuse. Done means a smaller design aligned with the review: SDK-owned check metadata, an existing parser and CLI helpers, and fixes handled through an agent or the init backend.
Written by the indexing model from the issue text.
Description
getsentry/cli#1501 prototyped sentry doctor, a read-only health check for an existing Sentry install. It scans the project, asks the API, and reports what is configured, what is broken, and what to fix. It supports --send-test-event and a dry-run --fix plan, and was live-tested on Android, Empower, and iOS projects. The PR is closing with the getsentry/cli archive, and BYK's review asked for a reshaped version before a command like this can land.
cc @romtsn, author of cli#1501.
Design direction (from BYK's review of cli#1501)
- SDK knowledge lives outside the CLI. Check lists, manifests, and init/build markers should come from one central place that the SDKs control and every product can read, most likely the release registry. The CLI should download that data at runtime rather than embed it at build time.
- No hand-rolled parser. Replace the custom capture-block parser with tree-sitter or ast-grep.
- Reuse existing CLI code instead of reimplementing it:
- If DSN discovery is missing something, improve the existing DSN discovery so every command benefits.
- Use the existing
send-eventcommand for--send-test-event. - Make redaction, if needed, a generic output-layer helper.
- Drop the doctor-specific flush timeout.
- Revert the unrelated
lib/dsn/code-scanner.tschange.
- Fixes go through an agent.
--fixshould produce a report for agents, or go through thesentry initbackend, instead of keeping its own fix system. @betegon owns the init backend. - Clarify the names and concepts:
- Rename the
doctoronline mode (for example toonline) so it doesn't read like a subcommand. - Explain what tier 1 and tier 2 checks mean.
- Explain magic numbers such as
31inlive.ts.
- Rename the
- Ship it smaller. The PR was large and hard to review. Split it into reviewable pieces.
Related
- #1627, ported from getsentry/cli#1363, runs
flutter doctor/npx expo doctoraftersentry init. That work is separate from this command, which audits existing installs. If both need per-SDK verification metadata, they should read it from the same SDK-owned source. - #1630: the same move of logic into SDK-owned data for SDK upgrades.
Refs getsentry/cli#1501
via BYK.
--
- Dominant language
- TypeScript
- Stars
- 961
- Forks
- 179
- Avg merge
- 15h 33m
- Merged PRs (30d)
- 476
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from getsentry/toolkit
-
MCP mcp-feedback-pattern
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
getsentry/toolkit#2276 · 1 comment ·
Maintainers usually reply within 1 day
-
CLI enhancement MCP
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
getsentry/toolkit#1908 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
getsentry/toolkit#1471 · 1 comment ·
Maintainers usually reply within 1 day
-
get_sentry_resource gives no guidance for Explore > Errors list URLsPossibly taken @sentry-junior claimed this today. OpenMCP mcp-feedback-pattern
Difficulty 2/5 1-3 hours Newbie friendliness 32/100
getsentry/toolkit#2278 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
getsentry/toolkit#2275 · 1 comment ·
Maintainers usually reply within 1 day
All issues in getsentry/toolkit
Similar issues
-
Add: BOM CineOpenapproved check:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug platform-android
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Termix-SSH/Mobile#146 · 1 comment ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
devswha/herdr-web-ui#3875 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100