Commit 94382ba
authored
## Problem
When users run `sentry issue list` or `sentry issues` without explicit
org/project arguments, the auto-detection cascade fails with
`ContextError: Organization and project are required.` — 185 events
affecting 63 users
([CLI-7T](https://sentry.sentry.io/issues/7283798253/)).
**100% of events** are from the Node.js/npm distribution (`cli.runtime:
node`), and 46% use `--json` (AI agents/tool callers).
### Root cause
The `BunGlobPolyfill` class in the Node.js polyfill was missing the
`match()` method. When `anyGlobMatches()` in `project-root.ts` called
`new Bun.Glob(pattern).match(name)`, it threw a `TypeError` that was
silently swallowed by a bare `catch {}` block. This broke project root
detection for .NET (`*.sln`, `*.csproj`), Haskell (`*.cabal`), OCaml
(`*.opam`), and Nim (`*.nimble`) projects on the npm distribution.
While this bug is real, the primary cause for most users is simply
running the CLI from a directory without a Sentry-instrumented project
and with no env vars or config defaults set. The diagnostics and error
message improvements help these users find the right path forward.
## Fix
1. **Add `match()` to `BunGlobPolyfill`** — Uses `picomatch` (already
bundled via `tinyglobby`) with `{dot: true}` to match `Bun.Glob`
behavior.
2. **Add debug logging to `resolveAllTargets()`** — Each fallthrough
step (env vars → config defaults → DSN detection → directory inference)
now logs at debug level, visible with `--verbose`.
3. **Improve `ContextError` default alternatives** — Adds `sentry org
list` and `sentry project list <org>/` hints so users who don't know
their slugs have a clear next step.
## Tests
- 5 new tests for `Glob.match()` covering all `LANGUAGE_MARKER_GLOBS`
patterns, negative cases, directory path rejection, and consistency with
native `Bun.Glob.match()`.
- All existing tests pass. Typecheck and lint clean.
Fixes CLI-7T
1 parent f8eb06b commit 94382ba
File tree
7 files changed
+184
-46
lines changed- script
- src/lib
- test/script
7 files changed
+184
-46
lines changedLarge diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
178 | 182 | | |
179 | 183 | | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
180 | 196 | | |
| 197 | + | |
181 | 198 | | |
182 | 199 | | |
183 | 200 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| 156 | + | |
| 157 | + | |
156 | 158 | | |
157 | 159 | | |
158 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
694 | 694 | | |
695 | 695 | | |
696 | 696 | | |
| 697 | + | |
| 698 | + | |
697 | 699 | | |
698 | 700 | | |
699 | 701 | | |
| |||
710 | 712 | | |
711 | 713 | | |
712 | 714 | | |
| 715 | + | |
| 716 | + | |
713 | 717 | | |
714 | 718 | | |
715 | 719 | | |
| |||
726 | 730 | | |
727 | 731 | | |
728 | 732 | | |
| 733 | + | |
| 734 | + | |
729 | 735 | | |
730 | 736 | | |
731 | 737 | | |
732 | 738 | | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
733 | 742 | | |
734 | | - | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
735 | 750 | | |
736 | 751 | | |
737 | 752 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | | - | |
8 | | - | |
| 8 | + | |
| 9 | + | |
9 | 10 | | |
10 | | - | |
11 | | - | |
12 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
128 | 130 | | |
129 | 131 | | |
130 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
0 commit comments