Skip to content

Commit 061ff71

Browse files
authored
Merge branch 'develop' into instrument-genai-google-stream
2 parents 6eb8690 + 64ef553 commit 061ff71

File tree

319 files changed

+7784
-1770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+7784
-1770
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Release Command
2+
3+
Execute the standard Sentry JavaScript SDK release process.
4+
5+
Find the "publishing_release" rule in `.cursor/rules/publishing_release` and follow those complete instructions step by step.

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ updates:
2222
prefix: feat
2323
prefix-development: feat
2424
include: scope
25+
exclude-paths:
26+
- 'dev-packages/e2e-tests/test-applications/'

CHANGELOG.md

Lines changed: 176 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,132 @@
44

55
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
66

7-
Work in this release was contributed by @Olexandr88. Thank you for your contribution!
7+
## 10.17.0
8+
9+
### Important Changes
10+
11+
- **feat(nuxt): Implement server middleware instrumentation ([#17796](https://github.com/getsentry/sentry-javascript/pull/17796))**
12+
13+
This release introduces instrumentation for Nuxt middleware, ensuring that all middleware handlers are automatically wrapped with tracing and error reporting functionality.
14+
15+
- **fix(aws-serverless): Take `http_proxy` into account when choosing
16+
`useLayerExtension` default ([#17817](https://github.com/getsentry/sentry-javascript/pull/17817))**
17+
18+
The default setting for `useLayerExtension` now considers the `http_proxy` environment variable.
19+
When `http_proxy` is set, `useLayerExtension` will be off by default.
20+
If you use a `http_proxy` but would still like to make use of the Sentry Lambda extension, exempt `localhost` in a `no_proxy` environment variable.
21+
22+
### Other Changes
23+
24+
- feat(node): Split up http integration into composable parts ([#17524](https://github.com/getsentry/sentry-javascript/pull/17524))
25+
- fix(core): Remove check and always respect ai.telemetry.functionId for Vercel AI gen spans ([#17811](https://github.com/getsentry/sentry-javascript/pull/17811))
26+
- doc(core): Fix outdated JSDoc in `beforeSendSpan` ([#17815](https://github.com/getsentry/sentry-javascript/pull/17815))
27+
28+
<details>
29+
<summary> <strong>Internal Changes</strong> </summary>
30+
31+
- ci: Do not run dependabot on e2e test applications ([#17813](https://github.com/getsentry/sentry-javascript/pull/17813))
32+
- docs: Reword changelog for google gen ai integration ([#17805](https://github.com/getsentry/sentry-javascript/pull/17805))
33+
34+
</details>
35+
36+
## 10.16.0
37+
38+
- feat(logs): Add internal `replay_is_buffering` flag ([#17752](https://github.com/getsentry/sentry-javascript/pull/17752))
39+
- feat(react-router): Update loadContext type to be compatible with middleware ([#17758](https://github.com/getsentry/sentry-javascript/pull/17758))
40+
- feat(replay/logs): Only attach sampled replay Ids to logs ([#17750](https://github.com/getsentry/sentry-javascript/pull/17750))
41+
- fix(browser): Use current start timestamp for CLS span when CLS is 0 ([#17800](https://github.com/getsentry/sentry-javascript/pull/17800))
42+
- fix(core): Prevent `instrumentAnthropicAiClient` breaking MessageStream api ([#17754](https://github.com/getsentry/sentry-javascript/pull/17754))
43+
- fix(nextjs): Don't use chalk in turbopack config file ([#17806](https://github.com/getsentry/sentry-javascript/pull/17806))
44+
- fix(react): Do not send additional navigation span on pageload ([#17799](https://github.com/getsentry/sentry-javascript/pull/17799))
45+
46+
<details>
47+
<summary> <strong>Internal Changes</strong> </summary>
48+
49+
- build(aws): Ensure AWS build cache does not keep old files ([#17776](https://github.com/getsentry/sentry-javascript/pull/17776))
50+
- chore: Add `publish_release` command ([#17797](https://github.com/getsentry/sentry-javascript/pull/17797))
51+
- ref(aws-serverless): Add resolution for `import-in-the-middle` when building the Lambda layer ([#17780](https://github.com/getsentry/sentry-javascript/pull/17780))
52+
- ref(aws-serverless): Improve README with better examples ([#17787](https://github.com/getsentry/sentry-javascript/pull/17787))
53+
- ref(core): Improve promise buffer ([#17788](https://github.com/getsentry/sentry-javascript/pull/17788))
54+
- Revert "test(e2e): Pin `[email protected]` due to `@vercel/nft` incompatibility ([#17777](https://github.com/getsentry/sentry-javascript/pull/17777))" (#17784)
55+
- test(e2e): Pin `[email protected]` due to `@vercel/nft` incompatibility ([#17777](https://github.com/getsentry/sentry-javascript/pull/17777))
56+
- test(nextjs): Add route handler tests for turbopack ([#17515](https://github.com/getsentry/sentry-javascript/pull/17515))
57+
- test(react-router): Test v8 middleware ([#17783](https://github.com/getsentry/sentry-javascript/pull/17783))
58+
59+
</details>
60+
61+
## 10.15.0
62+
63+
### Important Changes
64+
65+
- **feat(cloudflare): Add honoIntegration with error-filtering function ([#17743](https://github.com/getsentry/sentry-javascript/pull/17743))**
66+
67+
This release adds a `honoIntegration` to `@sentry/cloudflare`, which exposes a `shouldHandleError` function that lets you define which errors in `onError` should be captured.
68+
By default, Sentry captures exceptions with `error.status >= 500 || error.status <= 299`.
69+
70+
The integration is added by default, and it's possible to modify this behavior like this:
71+
72+
```js
73+
integrations: [
74+
honoIntegration({
75+
shouldHandleError: (err) => true; // always capture exceptions in onError
76+
})
77+
]
78+
```
79+
80+
- **feat(node): Add instrumentation for hono handler ([#17428](https://github.com/getsentry/sentry-javascript/pull/17428))**
81+
82+
This PR enhances the Hono integration by adding comprehensive handler instrumentation, error handling capabilities.
83+
84+
- **feat(aws): Enable Lambda extension by default when using the Lamba layer ([#17684](https://github.com/getsentry/sentry-javascript/pull/17684))**
85+
86+
- **feat(browser): Add `setActiveSpanInBrowser` to set an active span in the browser ([#17714](https://github.com/getsentry/sentry-javascript/pull/17714))**
87+
88+
This PR adds a feature to the browser SDKs only: Making an inactive span active. We do this to enable use cases where having a span only being active in the callback is not practical.
89+
90+
### Other Changes
91+
92+
- fix(browser): Improve handling of `0` and `undefined` resource timing values ([#17751](https://github.com/getsentry/sentry-javascript/pull/17751))
93+
- ref(nextjs): Display build compatibility warning for webpack ([#17746](https://github.com/getsentry/sentry-javascript/pull/17746))
94+
95+
<details>
96+
<summary> <strong>Internal Changes</strong> </summary>
97+
98+
- docs: Reword changelog for google gen ai instrumentation ([#17753](https://github.com/getsentry/sentry-javascript/pull/17753))
99+
- build: Add `@typescript-eslint/no-unnecessary-type-assertion` rule ([#17728](https://github.com/getsentry/sentry-javascript/pull/17728))
100+
- build: Update TS target to `es2020` everywhere ([#17709](https://github.com/getsentry/sentry-javascript/pull/17709))
101+
- chore: Add external contributor to CHANGELOG.md ([#17745](https://github.com/getsentry/sentry-javascript/pull/17745))
102+
103+
</details>
104+
105+
Work in this release was contributed by @Karibash. Thank you for your contribution!
106+
107+
## 10.14.0
108+
109+
### Important Changes
110+
111+
- **feat(cloudflare,vercel-edge): Add support for Google Gen AI instrumentation ([#17723](https://github.com/getsentry/sentry-javascript/pull/17723))**
112+
113+
The SDK now supports manually instrumenting Google's Gen AI operations in Cloudflare Workers and Vercel Edge Runtime environments, providing insights into your AI operations. You can use `const wrappedClient = Sentry.instrumentGoogleGenAIClient(genAiClient)` to get an instrumented client.
114+
115+
### Other Changes
116+
117+
- fix(nextjs): Display updated turbopack warnings ([#17737](https://github.com/getsentry/sentry-javascript/pull/17737))
118+
- ref(core): Wrap isolationscope in `WeakRef` when storing it on spans ([#17712](https://github.com/getsentry/sentry-javascript/pull/17712))
119+
120+
<details>
121+
<summary> <strong>Internal Changes</strong> </summary>
122+
123+
- test(node): Avoid using specific port for node-integration-tests ([#17729](https://github.com/getsentry/sentry-javascript/pull/17729))
124+
- test(nuxt): Update Nuxt version and add Nitro $fetch test ([#17713](https://github.com/getsentry/sentry-javascript/pull/17713))
125+
126+
</details>
127+
128+
## 10.13.0
8129

9130
### Important Changes
10131

11-
- **feat(browser): Add option to explicitly end pageload span via `reportPageLoaded()` ([#17697](https://github.com/getsentry/sentry-javascript/issues/17212))**
132+
- **feat(browser): Add option to explicitly end pageload span via `reportPageLoaded()` ([#17697](https://github.com/getsentry/sentry-javascript/pull/17697))**
12133

13134
With this release you can take manual control of ending the pageload span. Usually this span is ended automatically by the SDK, based on a period of inactivity after the initial page was loaded in the browser. If you want full control over the pageload duration, you can tell Sentry, when your page was fully loaded:
14135

@@ -27,6 +148,59 @@ Work in this release was contributed by @Olexandr88. Thank you for your contribu
27148

28149
Note that if `Sentry.reportPageLoaded()` is not called within 30 seconds of the initial pageload (or whatever value the `finalTimeout` option is set to), the pageload span will be ended automatically.
29150

151+
- **feat(core,node): Add instrumentation for `GoogleGenAI` ([#17625](https://github.com/getsentry/sentry-javascript/pull/17625))**
152+
153+
The SDK now automatically instruments the `@google/genai` package to provide insights into your AI operations.
154+
155+
- **feat(nextjs): Promote `useRunAfterProductionCompileHook` to non-experimental build option ([#17721](https://github.com/getsentry/sentry-javascript/pull/17721))**
156+
157+
The `useRunAfterProductionCompileHook` option is no longer experimental and is now a stable build option for Next.js projects.
158+
159+
- **feat(nextjs): Use `afterProductionCompile` hook for webpack builds ([#17655](https://github.com/getsentry/sentry-javascript/pull/17655))**
160+
161+
Next.js projects using webpack can opt-in to use the `useRunAfterProductionCompileHook` hook for source map uploads.
162+
163+
- **feat(nextjs): Flip default value for `useRunAfterProductionCompileHook` for Turbopack builds ([#17722](https://github.com/getsentry/sentry-javascript/pull/17722))**
164+
165+
The `useRunAfterProductionCompileHook` option is now enabled by default for Turbopack builds, enabling automated source map uploads.
166+
167+
- **feat(node): Do not drop 300 and 304 status codes by default ([#17686](https://github.com/getsentry/sentry-javascript/pull/17686))**
168+
169+
HTTP transactions with 300 and 304 status codes are now captured by default, providing better visibility into redirect and caching behavior.
170+
171+
### Other Changes
172+
173+
- feat(core): Add logger to core and allow scope to be passed log methods ([#17698](https://github.com/getsentry/sentry-javascript/pull/17698))
174+
- feat(core): Allow to pass `onSuccess` to `handleCallbackErrors` ([#17679](https://github.com/getsentry/sentry-javascript/pull/17679))
175+
- feat(core): Create template attributes in `consoleLoggingIntegration` ([#17703](https://github.com/getsentry/sentry-javascript/pull/17703))
176+
- feat(deps): bump @sentry/cli from 2.52.0 to 2.53.0 ([#17652](https://github.com/getsentry/sentry-javascript/pull/17652))
177+
- feat(node): Add extra platforms to `os` context ([#17720](https://github.com/getsentry/sentry-javascript/pull/17720))
178+
- fix(browser): Ensure idle span duration is adjusted when child spans are ignored ([#17700](https://github.com/getsentry/sentry-javascript/pull/17700))
179+
- fix(core): Ensure builtin stack frames don't affect `thirdPartyErrorFilterIntegration` ([#17693](https://github.com/getsentry/sentry-javascript/pull/17693))
180+
- fix(core): Fix client hook edge cases around multiple callbacks ([#17706](https://github.com/getsentry/sentry-javascript/pull/17706))
181+
- fix(nextjs): Enable fetch span when OTel setup is skipped ([#17699](https://github.com/getsentry/sentry-javascript/pull/17699))
182+
- fix(node): Fix `this` context for vercel AI instrumentation ([#17681](https://github.com/getsentry/sentry-javascript/pull/17681))
183+
184+
<details>
185+
<summary> <strong>Internal Changes</strong> </summary>
186+
187+
- chore: Add external contributor to CHANGELOG.md ([#17725](https://github.com/getsentry/sentry-javascript/pull/17725))
188+
- chore: Add link to build and test icon in readme ([#17719](https://github.com/getsentry/sentry-javascript/pull/17719))
189+
- chore(nuxt): Bump Vite and Rollup plugins ([#17671](https://github.com/getsentry/sentry-javascript/pull/17671))
190+
- chore(repo): Add changelog entry for `reportPageLoaded` ([#17724](https://github.com/getsentry/sentry-javascript/pull/17724))
191+
- ci: Fix lookup of changed E2E test apps ([#17707](https://github.com/getsentry/sentry-javascript/pull/17707))
192+
- ci(test-matrix): Add logs for `getTestMatrix` ([#17673](https://github.com/getsentry/sentry-javascript/pull/17673))
193+
- ref: Avoid some usage of `SyncPromise` where not needed ([#17641](https://github.com/getsentry/sentry-javascript/pull/17641))
194+
- ref(core): Add debug log when dropping a span via `ignoreSpans` ([#17692](https://github.com/getsentry/sentry-javascript/pull/17692))
195+
- ref(core): Avoid looking up anthropic-ai integration options ([#17694](https://github.com/getsentry/sentry-javascript/pull/17694))
196+
- ref(core): Streamline `module_metadata` assignment and cleanup functions ([#17696](https://github.com/getsentry/sentry-javascript/pull/17696))
197+
- ref(remix): Avoid unnecessary error wrapping `HandleDocumentRequestFunction` ([#17680](https://github.com/getsentry/sentry-javascript/pull/17680))
198+
- Revert "[Gitflow] Merge master into develop"
199+
200+
</details>
201+
202+
Work in this release was contributed by @Olexandr88. Thank you for your contribution!
203+
30204
## 10.12.0
31205

32206
### Important Changes

dev-packages/browser-integration-tests/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/browser-integration-tests",
3-
"version": "10.12.0",
3+
"version": "10.17.0",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {
@@ -43,7 +43,7 @@
4343
"@babel/preset-typescript": "^7.16.7",
4444
"@playwright/test": "~1.53.2",
4545
"@sentry-internal/rrweb": "2.34.0",
46-
"@sentry/browser": "10.12.0",
46+
"@sentry/browser": "10.17.0",
4747
"@supabase/supabase-js": "2.49.3",
4848
"axios": "1.8.2",
4949
"babel-loader": "^8.2.2",

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/get/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for basic GET request', async ({ getLocalTestUrl
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/getWithRequestObj/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for basic GET request that uses request object',
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/post/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for POST request', async ({ getLocalTestUrl, pag
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'fetch',
2929
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/fetch/statusCode/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sentryTest('captures Breadcrumb with log level for 4xx response code', async ({
1919
expect(eventData.exception?.values).toHaveLength(1);
2020

2121
expect(eventData?.breadcrumbs?.length).toBe(1);
22-
expect(eventData!.breadcrumbs![0]).toEqual({
22+
expect(eventData.breadcrumbs![0]).toEqual({
2323
timestamp: expect.any(Number),
2424
category: 'fetch',
2525
type: 'http',
@@ -56,7 +56,7 @@ sentryTest('captures Breadcrumb with log level for 5xx response code', async ({
5656
expect(eventData.exception?.values).toHaveLength(1);
5757

5858
expect(eventData?.breadcrumbs?.length).toBe(1);
59-
expect(eventData!.breadcrumbs![0]).toEqual({
59+
expect(eventData.breadcrumbs![0]).toEqual({
6060
timestamp: expect.any(Number),
6161
category: 'fetch',
6262
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/xhr/get/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ sentryTest('captures Breadcrumb for basic GET request', async ({ getLocalTestUrl
2424
expect(eventData.exception?.values).toHaveLength(1);
2525

2626
expect(eventData?.breadcrumbs?.length).toBe(1);
27-
expect(eventData!.breadcrumbs![0]).toEqual({
27+
expect(eventData.breadcrumbs![0]).toEqual({
2828
timestamp: expect.any(Number),
2929
category: 'xhr',
3030
type: 'http',

dev-packages/browser-integration-tests/suites/integrations/Breadcrumbs/xhr/post/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ sentryTest('captures Breadcrumb for POST request', async ({ getLocalTestUrl, pag
2323
expect(eventData.exception?.values).toHaveLength(1);
2424

2525
expect(eventData?.breadcrumbs?.length).toBe(1);
26-
expect(eventData!.breadcrumbs![0]).toEqual({
26+
expect(eventData.breadcrumbs![0]).toEqual({
2727
timestamp: expect.any(Number),
2828
category: 'xhr',
2929
type: 'http',

0 commit comments

Comments
 (0)