Skip to content

Commit dde442c

Browse files
authored
Merge pull request #17660 from getsentry/prepare-release/10.12.0
meta(changelog): Update changelog for 10.12.0
2 parents 8d4e6e5 + c076017 commit dde442c

File tree

308 files changed

+6066
-6888
lines changed

Some content is hidden

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

308 files changed

+6066
-6888
lines changed
File renamed without changes.

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,16 @@ body:
133133
description: Logs? Screenshots? Yes, please.
134134
validations:
135135
required: true
136+
- type: textarea
137+
id: additional
138+
attributes:
139+
label: Additional Context
140+
description:
141+
Add any other context here. Please keep the pre-filled text, which helps us manage issue prioritization.
142+
value: |-
143+
<sub>Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it.</sub>
144+
validations:
145+
required: false
136146
- type: markdown
137147
attributes:
138148
value: |-

.github/ISSUE_TEMPLATE/feature.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ body:
2323
Add a blender to Sentry.
2424
validations:
2525
required: true
26+
- type: textarea
27+
id: additional
28+
attributes:
29+
label: Additional Context
30+
description:
31+
Add any other context here. Please keep the pre-filled text, which helps us manage feature prioritization.
32+
value: |-
33+
<sub>Tip: React with 👍 to help prioritize this improvement. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it.</sub>
34+
validations:
35+
required: false
2636
- type: markdown
2737
attributes:
2838
value: |-

.github/workflows/canary.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,6 @@ jobs:
8181
- test-application: 'nextjs-app-dir'
8282
build-command: 'test:build-latest'
8383
label: 'nextjs-app-dir (latest)'
84-
- test-application: 'nextjs-13'
85-
build-command: 'test:build-canary'
86-
label: 'nextjs-13 (canary)'
8784
- test-application: 'nextjs-13'
8885
build-command: 'test:build-latest'
8986
label: 'nextjs-13 (latest)'

.size-limit.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ module.exports = [
135135
path: 'packages/vue/build/esm/index.js',
136136
import: createImport('init', 'browserTracingIntegration'),
137137
gzip: true,
138-
limit: '42 KB',
138+
limit: '43 KB',
139139
},
140140
// Svelte SDK (ESM)
141141
{
@@ -233,7 +233,7 @@ module.exports = [
233233
import: createImport('init'),
234234
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
235235
gzip: true,
236-
limit: '154 KB',
236+
limit: '156 KB',
237237
},
238238
{
239239
name: '@sentry/node - without tracing',
@@ -263,7 +263,7 @@ module.exports = [
263263
import: createImport('init'),
264264
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
265265
gzip: true,
266-
limit: '107 KB',
266+
limit: '111 KB',
267267
},
268268
];
269269

CHANGELOG.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,134 @@
44

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

7+
# 10.12.0
8+
9+
### Important Changes
10+
11+
- **ref: Add and Adjust error event `mechanism` values**
12+
13+
This release includes a variety of changes aimed at setting the `mechanism` field on errors captured automatically by the Sentry SDKs. [The intention](https://github.com/getsentry/sentry-javascript/issues/17212) is to clearly mark which instrumentation captured an error. In addition, some instrumentations previously did not yet annotate the error as handled or unhandled which this series of PRs corrects as well.
14+
15+
<details>
16+
<summary> Relevant PRs </summary>
17+
18+
<br/>
19+
20+
Released in `10.12.0`:
21+
- ref(angular): Adjust ErrorHandler event mechanism ([#17608](https://github.com/getsentry/sentry-javascript/pull/17608))
22+
- ref(astro): Adjust `mechanism` on error events captured by astro middleware ([#17613](https://github.com/getsentry/sentry-javascript/pull/17613))
23+
- ref(aws-severless): Slightly adjust aws-serverless mechanism type ([#17614](https://github.com/getsentry/sentry-javascript/pull/17614))
24+
- ref(bun): Adjust `mechanism` of errors captured in Bun.serve ([#17616](https://github.com/getsentry/sentry-javascript/pull/17616))
25+
- ref(cloudflare): Adjust event `mechanisms` and durable object origin ([#17618](https://github.com/getsentry/sentry-javascript/pull/17618))
26+
- ref(core): Adjust `mechanism` in `captureConsoleIntegration` ([#17633](https://github.com/getsentry/sentry-javascript/pull/17633))
27+
- ref(core): Adjust MCP server error event `mechanism` ([#17622](https://github.com/getsentry/sentry-javascript/pull/17622))
28+
- ref(core): Simplify `linkedErrors` mechanism logic ([#17600](https://github.com/getsentry/sentry-javascript/pull/17600))
29+
- ref(deno): Adjust `mechanism` of errors caught by `globalHandlersIntegration` ([#17635](https://github.com/getsentry/sentry-javascript/pull/17635))
30+
- ref(nextjs): Set more specific event `mechanism`s ([#17543](https://github.com/getsentry/sentry-javascript/pull/17543))
31+
- ref(node): Adjust mechanism of express, hapi and fastify error handlers ([#17623](https://github.com/getsentry/sentry-javascript/pull/17623))
32+
- ref(node-core): Add `mechanism` to cron instrumentations ([#17544](https://github.com/getsentry/sentry-javascript/pull/17544))
33+
- ref(node-core): Add more specific `mechanism.type` to worker thread errors from `childProcessIntegration` ([#17578](https://github.com/getsentry/sentry-javascript/pull/17578))
34+
- ref(node-core): Adjust `mechanism` of `onUnhandledRejection` and `onUnhandledException` integrations ([#17636](https://github.com/getsentry/sentry-javascript/pull/17636))
35+
- ref(node): Add mechanism to errors captured via connect and koa integrations ([#17579](https://github.com/getsentry/sentry-javascript/pull/17579))
36+
- ref(nuxt): Add and adjust `mechanism.type` in error events ([#17599](https://github.com/getsentry/sentry-javascript/pull/17599))
37+
- ref(react): Add mechanism to `reactErrorHandler` and adjust mechanism in `ErrorBoundary` ([#17602](https://github.com/getsentry/sentry-javascript/pull/17602))
38+
- ref(remix): Adjust event mechanism of `captureRemixServerException` ([#17629](https://github.com/getsentry/sentry-javascript/pull/17629))
39+
- ref(replay-internal): Add mechanism to error caught by `replayIntegration` in debug mode ([#17606](https://github.com/getsentry/sentry-javascript/pull/17606))
40+
- ref(solid): Add `mechanism` to error captured by `withSentryErrorBoundary` ([#17607](https://github.com/getsentry/sentry-javascript/pull/17607))
41+
- ref(solidstart): Adjust event mechanism in withServerActionInstrumentation ([#17637](https://github.com/getsentry/sentry-javascript/pull/17637))
42+
- ref(sveltekit): Adjust `mechanism` of error events ([#17646](https://github.com/getsentry/sentry-javascript/pull/17646))
43+
- ref(vue): Adjust mechanism in Vue error handler ([#17647](https://github.com/getsentry/sentry-javascript/pull/17647))
44+
45+
<br/>
46+
47+
Released in `10.11.0`:
48+
- ref(browser): Add more specific `mechanism.type` to errors captured by `httpClientIntegration` ([#17254](https://github.com/getsentry/sentry-javascript/pull/17254))
49+
- ref(browser): Set more descriptive `mechanism.type` in `browserApiErrorsIntergation` ([#17251](https://github.com/getsentry/sentry-javascript/pull/17251))
50+
- ref(core): Add `mechanism.type` to `trpcMiddleware` errors ([#17287](https://github.com/getsentry/sentry-javascript/pull/17287))
51+
- ref(core): Add more specific event `mechanism`s and span origins to `openAiIntegration` ([#17288](https://github.com/getsentry/sentry-javascript/pull/17288))
52+
- ref(nestjs): Add `mechanism` to captured errors ([#17312](https://github.com/getsentry/sentry-javascript/pull/17312))
53+
54+
</details>
55+
56+
- **feat(node) Ensure `prismaIntegration` works with Prisma 5 ([#17595](https://github.com/getsentry/sentry-javascript/pull/17595))**
57+
58+
We used to require to pass in the v5 version of `@prisma/instrumentation` into `prismaIntegration({ prismaInstrumentation: new PrismaInstrumentation() })`, if you wanted to get full instrumentation for Prisma v5. However, it turns out this does not work on v10 of the SDK anymore, because `@prisma/instrumentation@5` requires OTEL v1.
59+
60+
With this release, we dropped the requirement to configure anything to get v5 support of Prisma. You do not need to configure anything in the integration anymore, and can remove the dependency on `@prisma/instrumentation@5` if you had it in your application. You only need to configure the `tracing` preview feature [according to our docs](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/).
61+
62+
- **feat(deps): Update OpenTelemetry dependencies ([#17558](https://github.com/getsentry/sentry-javascript/pull/17558))**
63+
- @opentelemetry/core bumped to ^2.1.0
64+
- @opentelemetry/context-async-hooks bumped to ^2.1.0
65+
- @opentelemetry/resources bumped to ^2.1.0
66+
- @opentelemetry/sdk-trace-base bumped to ^2.1.0
67+
- @opentelemetry/semantic-conventions bumped to ^1.37.0
68+
- @opentelemetry/instrumentation bumped to ^0.204.0
69+
- @opentelemetry/instrumentation-http bumped to ^0.204.0
70+
- @opentelemetry/instrumentation-amqplib bumped to ^0.51.0
71+
- @opentelemetry/instrumentation-aws-sdk bumped to ^0.59.0
72+
- @opentelemetry/instrumentation-connect bumped to ^0.48.0
73+
- @opentelemetry/instrumentation-dataloader bumped to ^0.22.0
74+
- @opentelemetry/instrumentation-express bumped to ^0.53.0
75+
- @opentelemetry/instrumentation-fs bumped from to ^0.24.0
76+
- @opentelemetry/instrumentation-generic-pool bumped to ^0.48.0
77+
- @opentelemetry/instrumentation-graphql bumped to ^0.52.0
78+
- @opentelemetry/instrumentation-hapi bumped to ^0.51.0
79+
- @opentelemetry/instrumentation-ioredis bumped to ^0.52.0
80+
- @opentelemetry/instrumentation-kafkajs bumped to ^0.14.0
81+
- @opentelemetry/instrumentation-knex bumped to ^0.49.0
82+
- @opentelemetry/instrumentation-koa bumped to ^0.52.0
83+
- @opentelemetry/instrumentation-lru-memoizer bumped to ^0.49.0
84+
- @opentelemetry/instrumentation-mongodb bumped from to ^0.57.0
85+
- @opentelemetry/instrumentation-mongoose bumped from to ^0.51.0
86+
- @opentelemetry/instrumentation-mysql bumped to ^0.50.0
87+
- @opentelemetry/instrumentation-mysql2 bumped to ^0.51.0
88+
- @opentelemetry/instrumentation-nestjs-core bumped to ^0.50.0
89+
- @opentelemetry/instrumentation-pg bumped to ^0.57.0
90+
- @opentelemetry/instrumentation-redis bumped to ^0.53.0
91+
- @opentelemetry/instrumentation-undici bumped to ^0.15.0
92+
- @prisma/instrumentation bumped to 6.15.0
93+
94+
### Other Changes
95+
96+
- feat(browser): Add timing and status atttributes to resource spans ([#17562](https://github.com/getsentry/sentry-javascript/pull/17562))
97+
- feat(cloudflare,vercel-edge): Add support for Anthropic AI instrumentation ([#17571](https://github.com/getsentry/sentry-javascript/pull/17571))
98+
- feat(core): Add Consola integration ([#17435](https://github.com/getsentry/sentry-javascript/pull/17435))
99+
- feat(deps): Update OpenTelemetry dependencies ([#17569](https://github.com/getsentry/sentry-javascript/pull/17569))
100+
- feat(core): Export `TracesSamplerSamplingContext` type ([#17523](https://github.com/getsentry/sentry-javascript/pull/17523))
101+
- feat(deno): Add OpenTelemetry support and vercelAI integration ([#17445](https://github.com/getsentry/sentry-javascript/pull/17445))
102+
- feat(node-core): Remove experimental note from winston api ([#17626](https://github.com/getsentry/sentry-javascript/pull/17626))
103+
- feat(node): Ensure `prismaIntegration` works with Prisma v5 ([#17595](https://github.com/getsentry/sentry-javascript/pull/17595))
104+
- feat(node): Tidy existing ESM loader hook ([#17566](https://github.com/getsentry/sentry-javascript/pull/17566))
105+
- feat(sveltekit): Align build time options with shared type ([#17413](https://github.com/getsentry/sentry-javascript/pull/17413))
106+
- fix(core): Fix error handling when sending envelopes ([#17662](https://github.com/getsentry/sentry-javascript/pull/17662))
107+
- fix(browser): Always start navigation as root span ([#17648](https://github.com/getsentry/sentry-javascript/pull/17648))
108+
- fix(browser): Ensure propagated `parentSpanId` stays consistent during trace in TwP mode ([#17526](https://github.com/getsentry/sentry-javascript/pull/17526))
109+
- fix(cloudflare): Initialize once per workflow run and preserve scope for `step.do` ([#17582](https://github.com/getsentry/sentry-javascript/pull/17582))
110+
- fix(nextjs): Add edge polyfills for nextjs-13 in dev mode ([#17488](https://github.com/getsentry/sentry-javascript/pull/17488))
111+
- fix(nitro): Support nested `_platform` properties in Nitro 2.11.7+ ([#17596](https://github.com/getsentry/sentry-javascript/pull/17596))
112+
- fix(node): Preserve synchronous return behavior for streamText and other methods for AI ([#17580](https://github.com/getsentry/sentry-javascript/pull/17580))
113+
- ref(node): Inline types imported from `shimmer` ([#17597](https://github.com/getsentry/sentry-javascript/pull/17597)) - ref(nuxt): Add and adjust `mechanism.type` in error events ([#17599](https://github.com/getsentry/sentry-javascript/pull/17599))
114+
- ref(browser): Improve `fetchTransport` error handling ([#17661](https://github.com/getsentry/sentry-javascript/pull/17661))
115+
116+
<details>
117+
<summary> <strong>Internal Changes</strong> </summary>
118+
119+
- chore: Add changelog note about mechanism changes ([#17632](https://github.com/getsentry/sentry-javascript/pull/17632))
120+
- chore(aws): Update README.md ([#17601](https://github.com/getsentry/sentry-javascript/pull/17601))
121+
- chore(deps): bump hono from 4.7.10 to 4.9.7 in /dev-packages/e2e-tests/test-applications/cloudflare-hono ([#17630](https://github.com/getsentry/sentry-javascript/pull/17630))
122+
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-app-dir ([#17627](https://github.com/getsentry/sentry-javascript/pull/17627))
123+
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-pages-dir ([#17620](https://github.com/getsentry/sentry-javascript/pull/17620))
124+
- chore(deps): bump next from 14.2.29 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-orpc ([#17494](https://github.com/getsentry/sentry-javascript/pull/17494))
125+
- chore(deps): bump next from 14.2.30 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-14 ([#17628](https://github.com/getsentry/sentry-javascript/pull/17628))
126+
- chore(repo): Rename `.claude/settings.local.json` to `.claude/settings.json` ([#17591](https://github.com/getsentry/sentry-javascript/pull/17591))
127+
- docs(issue-template): Add note about prioritization ([#17590](https://github.com/getsentry/sentry-javascript/pull/17590))
128+
- ref(core): Streamline event processor handling ([#17634](https://github.com/getsentry/sentry-javascript/pull/17634))
129+
- test(angular): Bump TS version to 5.9.0 in Angular 20 e2e test ([#17605](https://github.com/getsentry/sentry-javascript/pull/17605))
130+
- test(nextjs): Remove Next 13 and pin Next 14 canary and latest tests ([#17577](https://github.com/getsentry/sentry-javascript/pull/17577))
131+
- test(react-router): Unflake `flushIfServerless` test ([#17610](https://github.com/getsentry/sentry-javascript/pull/17610))
132+
133+
</details>
134+
7135
## 10.11.0
8136

9137
### Important Changes

dev-packages/browser-integration-tests/suites/integrations/captureConsole-attachStackTrace/test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ sentryTest(
3737
expect(logEvent?.exception?.values![0]).toMatchObject({
3838
mechanism: {
3939
handled: true,
40-
type: 'console',
40+
type: 'auto.core.capture_console',
4141
synthetic: true,
4242
},
4343
value: 'console log',
@@ -59,7 +59,7 @@ sentryTest(
5959
expect(warnEvent?.exception?.values![0]).toMatchObject({
6060
mechanism: {
6161
handled: true,
62-
type: 'console',
62+
type: 'auto.core.capture_console',
6363
synthetic: true,
6464
},
6565
value: 'console warn',
@@ -81,7 +81,7 @@ sentryTest(
8181
expect(infoEvent?.exception?.values![0]).toMatchObject({
8282
mechanism: {
8383
handled: true,
84-
type: 'console',
84+
type: 'auto.core.capture_console',
8585
synthetic: true,
8686
},
8787
value: 'console info',
@@ -103,7 +103,7 @@ sentryTest(
103103
expect(errorEvent?.exception?.values![0]).toMatchObject({
104104
mechanism: {
105105
handled: true,
106-
type: 'console',
106+
type: 'auto.core.capture_console',
107107
synthetic: true,
108108
},
109109
value: 'console error',
@@ -125,7 +125,7 @@ sentryTest(
125125
expect(traceEvent?.exception?.values![0]).toMatchObject({
126126
mechanism: {
127127
handled: true,
128-
type: 'console',
128+
type: 'auto.core.capture_console',
129129
synthetic: true,
130130
},
131131
value: 'console trace',
@@ -153,7 +153,7 @@ sentryTest(
153153
expect(errorWithErrorEvent?.exception?.values?.[0].value).toBe('console error with error object');
154154
expect(errorWithErrorEvent?.exception?.values?.[0].mechanism).toEqual({
155155
handled: true,
156-
type: 'console',
156+
type: 'auto.core.capture_console',
157157
});
158158
expect(traceWithErrorEvent).toEqual(
159159
expect.objectContaining({

dev-packages/browser-integration-tests/suites/integrations/captureConsole/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ sentryTest('it captures console messages correctly', async ({ getLocalTestUrl, p
9696
expect(errorWithErrorEvent?.exception?.values?.[0].value).toBe('console error with error object');
9797
expect(errorWithErrorEvent?.exception?.values?.[0].mechanism).toEqual({
9898
handled: true,
99-
type: 'console',
99+
type: 'auto.core.capture_console',
100100
});
101101
expect(traceWithErrorEvent).toEqual(
102102
expect.objectContaining({

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/http-timings/test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { Event } from '@sentry/core';
33
import { sentryTest } from '../../../../utils/fixtures';
44
import { getMultipleSentryEnvelopeRequests, shouldSkipTracingTest } from '../../../../utils/helpers';
55

6-
sentryTest('should create fetch spans with http timing @firefox', async ({ browserName, getLocalTestUrl, page }) => {
6+
sentryTest('creates fetch spans with http timing', async ({ browserName, getLocalTestUrl, page }) => {
77
const supportedBrowsers = ['chromium', 'firefox'];
88

99
if (shouldSkipTracingTest() || !supportedBrowsers.includes(browserName)) {
@@ -40,6 +40,8 @@ sentryTest('should create fetch spans with http timing @firefox', async ({ brows
4040
trace_id: tracingEvent.contexts?.trace?.trace_id,
4141
data: expect.objectContaining({
4242
'http.request.redirect_start': expect.any(Number),
43+
'http.request.redirect_end': expect.any(Number),
44+
'http.request.worker_start': expect.any(Number),
4345
'http.request.fetch_start': expect.any(Number),
4446
'http.request.domain_lookup_start': expect.any(Number),
4547
'http.request.domain_lookup_end': expect.any(Number),
@@ -49,6 +51,7 @@ sentryTest('should create fetch spans with http timing @firefox', async ({ brows
4951
'http.request.request_start': expect.any(Number),
5052
'http.request.response_start': expect.any(Number),
5153
'http.request.response_end': expect.any(Number),
54+
'http.request.time_to_first_byte': expect.any(Number),
5255
'network.protocol.version': expect.any(String),
5356
}),
5457
}),
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://[email protected]/1337',
7+
tracesSampleRate: 1,
8+
integrations: [
9+
Sentry.browserTracingIntegration({
10+
_experiments: { enableInteractions: true },
11+
}),
12+
],
13+
});

0 commit comments

Comments
 (0)