Skip to content

Commit 2e95132

Browse files
authored
Merge pull request #20822 from getsentry/prepare-release/10.53.0
meta(changelog): Update changelog for 10.53.0
2 parents e0ffe34 + e01d66c commit 2e95132

318 files changed

Lines changed: 8962 additions & 7033 deletions

File tree

Some content is hidden

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

.github/workflows/build.yml

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -485,13 +485,6 @@ jobs:
485485
run: yarn test:ci:browser
486486
if: github.event_name != 'pull_request'
487487

488-
- name: Parse and Upload Coverage
489-
if: cancelled() == false
490-
continue-on-error: true
491-
uses: getsentry/codecov-action@main
492-
with:
493-
token: ${{ secrets.GITHUB_TOKEN }}
494-
495488
job_bun_unit_tests:
496489
name: Bun Unit Tests
497490
needs: [job_get_metadata, job_build]
@@ -554,7 +547,7 @@ jobs:
554547
strategy:
555548
fail-fast: false
556549
matrix:
557-
node: [18, 20, 22, 24]
550+
node: [18, 20, 22, 24, 26]
558551
steps:
559552
- name: Check out base commit (${{ github.event.pull_request.base.sha }})
560553
uses: actions/checkout@v6
@@ -586,14 +579,6 @@ jobs:
586579
env:
587580
NODE_VERSION: ${{ matrix.node }}
588581

589-
- name: Parse and Upload Coverage
590-
if: cancelled() == false
591-
continue-on-error: true
592-
uses: getsentry/codecov-action@main
593-
with:
594-
token: ${{ secrets.GITHUB_TOKEN }}
595-
name: ${{ matrix.node }}
596-
597582
job_browser_playwright_tests:
598583
name:
599584
Playwright ${{ matrix.bundle }}${{ matrix.project && matrix.project != 'chromium' && format(' {0}',
@@ -693,18 +678,6 @@ jobs:
693678
overwrite: true
694679
retention-days: 7
695680

696-
- name: Parse and Upload Coverage
697-
if: cancelled() == false
698-
continue-on-error: true
699-
uses: getsentry/codecov-action@main
700-
with:
701-
token: ${{ secrets.GITHUB_TOKEN }}
702-
directory: dev-packages/browser-integration-tests
703-
enable-coverage: false
704-
name:
705-
browser-playwright-${{ matrix.bundle }}-${{ matrix.project }}${{ matrix.shard && format('-{0}',
706-
matrix.shard) || '' }}
707-
708681
job_browser_loader_tests:
709682
name: PW ${{ matrix.bundle }} Tests
710683
needs: [job_get_metadata, job_build, job_build_bundles]
@@ -764,16 +737,6 @@ jobs:
764737
overwrite: true
765738
retention-days: 7
766739

767-
- name: Parse and Upload Coverage
768-
uses: getsentry/codecov-action@main
769-
if: cancelled() == false
770-
continue-on-error: true
771-
with:
772-
token: ${{ secrets.GITHUB_TOKEN }}
773-
directory: dev-packages/browser-integration-tests
774-
enable-coverage: false
775-
name: browser-loader-${{ matrix.bundle }}
776-
777740
job_check_for_faulty_dts:
778741
name: Check for faulty .d.ts files
779742
needs: [job_get_metadata, job_build]
@@ -810,7 +773,7 @@ jobs:
810773
strategy:
811774
fail-fast: false
812775
matrix:
813-
node: [18, 20, 22, 24]
776+
node: [18, 20, 22, 24, 26]
814777
typescript:
815778
- false
816779
include:
@@ -851,7 +814,7 @@ jobs:
851814
strategy:
852815
fail-fast: false
853816
matrix:
854-
node: [18, 20, 22, 24]
817+
node: [18, 20, 22, 24, 26]
855818
typescript:
856819
- false
857820
include:
@@ -939,7 +902,7 @@ jobs:
939902
strategy:
940903
fail-fast: false
941904
matrix:
942-
node: [18, 20, 22, 24]
905+
node: [18, 20, 22, 24, 26]
943906
steps:
944907
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
945908
uses: actions/checkout@v6

.size-limit.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ module.exports = [
7272
path: 'packages/browser/build/npm/esm/prod/index.js',
7373
import: createImport('init', 'browserTracingIntegration', 'replayIntegration'),
7474
gzip: true,
75-
limit: '78 KB',
75+
limit: '79 KB',
7676
disablePlugins: ['@size-limit/esbuild'],
7777
modifyWebpackConfig: function (config) {
7878
const webpack = require('webpack');
@@ -120,7 +120,7 @@ module.exports = [
120120
path: 'packages/browser/build/npm/esm/prod/index.js',
121121
import: createImport('init', 'sendFeedback'),
122122
gzip: true,
123-
limit: '36 KB',
123+
limit: '37 KB',
124124
disablePlugins: ['@size-limit/esbuild'],
125125
},
126126
{
@@ -162,7 +162,7 @@ module.exports = [
162162
import: createImport('init', 'ErrorBoundary'),
163163
ignore: ['react/jsx-runtime'],
164164
gzip: true,
165-
limit: '33 KB',
165+
limit: '34 KB',
166166
disablePlugins: ['@size-limit/esbuild'],
167167
},
168168
{
@@ -188,7 +188,7 @@ module.exports = [
188188
path: 'packages/vue/build/esm/index.js',
189189
import: createImport('init', 'browserTracingIntegration'),
190190
gzip: true,
191-
limit: '51 KB',
191+
limit: '52 KB',
192192
disablePlugins: ['@size-limit/esbuild'],
193193
},
194194
// Svelte SDK (ESM)
@@ -261,7 +261,7 @@ module.exports = [
261261
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)',
262262
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
263263
gzip: true,
264-
limit: '96 KB',
264+
limit: '97 KB',
265265
disablePlugins: ['@size-limit/esbuild'],
266266
},
267267
// browser CDN bundles (non-gzipped)
@@ -286,7 +286,7 @@ module.exports = [
286286
path: createCDNPath('bundle.logs.metrics.min.js'),
287287
gzip: false,
288288
brotli: false,
289-
limit: '94 KB',
289+
limit: '95 KB',
290290
disablePlugins: ['@size-limit/esbuild'],
291291
},
292292
{
@@ -302,15 +302,15 @@ module.exports = [
302302
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
303303
gzip: false,
304304
brotli: false,
305-
limit: '218 KB',
305+
limit: '219 KB',
306306
disablePlugins: ['@size-limit/esbuild'],
307307
},
308308
{
309309
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
310310
path: createCDNPath('bundle.tracing.replay.min.js'),
311311
gzip: false,
312312
brotli: false,
313-
limit: '263 KB',
313+
limit: '264 KB',
314314
disablePlugins: ['@size-limit/esbuild'],
315315
},
316316
{
@@ -326,7 +326,7 @@ module.exports = [
326326
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
327327
gzip: false,
328328
brotli: false,
329-
limit: '277 KB',
329+
limit: '278 KB',
330330
disablePlugins: ['@size-limit/esbuild'],
331331
},
332332
{
@@ -364,7 +364,7 @@ module.exports = [
364364
import: createImport('init'),
365365
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
366366
gzip: true,
367-
limit: '65 KB',
367+
limit: '66 KB',
368368
disablePlugins: ['@size-limit/esbuild'],
369369
},
370370
// Node SDK (ESM)
@@ -374,15 +374,15 @@ module.exports = [
374374
import: createImport('init'),
375375
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
376376
gzip: true,
377-
limit: '176 KB',
377+
limit: '171 KB',
378378
disablePlugins: ['@size-limit/esbuild'],
379379
},
380380
{
381381
name: '@sentry/node - without tracing',
382382
path: 'packages/node/build/esm/index.js',
383383
import: createImport('initWithoutDefaultIntegrations', 'getDefaultIntegrationsWithoutPerformance'),
384384
gzip: true,
385-
limit: '102 KB',
385+
limit: '79 KB',
386386
disablePlugins: ['@size-limit/esbuild'],
387387
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
388388
modifyWebpackConfig: function (config) {
@@ -406,7 +406,7 @@ module.exports = [
406406
import: createImport('init'),
407407
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
408408
gzip: true,
409-
limit: '119 KB',
409+
limit: '113 KB',
410410
disablePlugins: ['@size-limit/esbuild'],
411411
},
412412
// Cloudflare SDK (ESM) - compressed, minified to match `wrangler deploy --dry-run --minify` output
@@ -417,7 +417,7 @@ module.exports = [
417417
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
418418
gzip: false,
419419
brotli: false,
420-
limit: '167 KiB',
420+
limit: '171 KiB',
421421
disablePlugins: ['@size-limit/webpack'],
422422
webpack: false,
423423
modifyEsbuildConfig: function (config) {
@@ -437,7 +437,7 @@ module.exports = [
437437
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
438438
gzip: false,
439439
brotli: false,
440-
limit: '420 KiB',
440+
limit: '423 KiB',
441441
disablePlugins: ['@size-limit/webpack'],
442442
webpack: false,
443443
modifyEsbuildConfig: function (config) {

CHANGELOG.md

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

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

7+
## 10.53.0
8+
9+
### Important Changes
10+
11+
- **feat(core): Add `streamGenAiSpans` options to stream gen_ai spans ([#20785](https://github.com/getsentry/sentry-javascript/pull/20785))**
12+
13+
Adds a new `streamGenAiSpans` option that controls how `gen_ai` spans are
14+
sent to Sentry. When set, the SDK extracts all `gen_ai` spans out of a
15+
transaction and sends them as v2 envelope items.
16+
17+
Enable this option if gen_ai spans are being dropped because the transaction payload exceeds size limits.
18+
19+
```ts
20+
Sentry.init({
21+
dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
22+
streamGenAiSpans: true,
23+
});
24+
```
25+
26+
### Other Changes
27+
28+
- feat(browser): Migrate browser profiling thread data to span attributes ([#20800](https://github.com/getsentry/sentry-javascript/pull/20800))
29+
- feat(core): Add `addConsoleInstrumentationFilter` utility ([#20790](https://github.com/getsentry/sentry-javascript/pull/20790))
30+
- feat(core): Add `applicationKey` to `BuildTimeOptionsBase` ([#20789](https://github.com/getsentry/sentry-javascript/pull/20789))
31+
- feat(core): split exports by browser/server for bundle size ([#20435](https://github.com/getsentry/sentry-javascript/pull/20435))
32+
- feat(nextjs): Add top-level `applicationKey` option ([#20794](https://github.com/getsentry/sentry-javascript/pull/20794))
33+
- feat(node): Support Node 26 ([#20710](https://github.com/getsentry/sentry-javascript/pull/20710))
34+
- feat(profiling-node): Bump `@sentry-internal/node-cpu-profiler` to 2.4.0 ([#20720](https://github.com/getsentry/sentry-javascript/pull/20720))
35+
- fix(cloudflare): avoid flush lock self-wait ([#20719](https://github.com/getsentry/sentry-javascript/pull/20719))
36+
- fix(hono): Capture transaction name on request for correct culprit ([#20801](https://github.com/getsentry/sentry-javascript/pull/20801))
37+
- fix(mcp): retroactively wrap handlers registered before wrapMcpServerWithSentry ([#20699](https://github.com/getsentry/sentry-javascript/pull/20699))
38+
- fix(node-core): Guard against undefined util.getSystemErrorMap ([#20660](https://github.com/getsentry/sentry-javascript/pull/20660))
39+
- fix(replay): Capture aborted/errored fetch requests in replay network tab ([#20722](https://github.com/getsentry/sentry-javascript/pull/20722))
40+
41+
<details>
42+
<summary> <strong>Internal Changes</strong> </summary>
43+
44+
- chore: bump replay dependencies ([#20746](https://github.com/getsentry/sentry-javascript/pull/20746))
45+
- chore: Typo intergation -> integration ([#20799](https://github.com/getsentry/sentry-javascript/pull/20799))
46+
- chore(deps): Bump @babel/plugin-transform-modules-systemjs from 7.24.1 to 7.29.4 ([#20773](https://github.com/getsentry/sentry-javascript/pull/20773))
47+
- chore(deps): Bump next from 15.5.15 to 15.5.18 in /dev-packages/e2e-tests/test-applications/nextjs-15 ([#20818](https://github.com/getsentry/sentry-javascript/pull/20818))
48+
- chore(deps): Bump next from 16.2.4 to 16.2.6 in /dev-packages/e2e-tests/test-applications/nextjs-16-streaming ([#20811](https://github.com/getsentry/sentry-javascript/pull/20811))
49+
- chore(deps): Bump rollup from 4.59.0 to 4.60.3 ([#20716](https://github.com/getsentry/sentry-javascript/pull/20716))
50+
- ci: Ensure PR reminder workflow considers new sub teams ([#20814](https://github.com/getsentry/sentry-javascript/pull/20814))
51+
- ci: Remove codecov reporting ([#20803](https://github.com/getsentry/sentry-javascript/pull/20803))
52+
- feat(deps): Bump bundler plugins to 5.3.0 ([#20820](https://github.com/getsentry/sentry-javascript/pull/20820))
53+
- feat(deps): Bump fast-uri from 3.0.6 to 3.1.2 ([#20774](https://github.com/getsentry/sentry-javascript/pull/20774))
54+
- feat(deps): Bump hono from 4.12.16 to 4.12.18 ([#20777](https://github.com/getsentry/sentry-javascript/pull/20777))
55+
- test(cloudflare-hono): fix 'occured' -> 'occurred' typo in error log ([#20783](https://github.com/getsentry/sentry-javascript/pull/20783))
56+
- test(deps): Bump hono from 4.12.14 to 4.12.16 ([#20712](https://github.com/getsentry/sentry-javascript/pull/20712))
57+
- test(deps): Bump hono from 4.12.14 to 4.12.18 in /dev-packages/e2e-tests/test-applications/cloudflare-hono ([#20776](https://github.com/getsentry/sentry-javascript/pull/20776))
58+
- test(e2e): Pin astro version in astro-6 test app ([#20709](https://github.com/getsentry/sentry-javascript/pull/20709))
59+
60+
</details>
61+
62+
Work in this release was contributed by @dmmulroy and @SAY-5. Thank you for your contributions!
63+
764
## 10.52.0
865

966
### Important Changes

codecov.yml

Lines changed: 0 additions & 15 deletions
This file was deleted.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"@babel/core": "^7.27.7",
6060
"@babel/preset-typescript": "^7.16.7",
6161
"@playwright/test": "~1.56.0",
62-
"@sentry-internal/rrweb": "2.34.0",
62+
"@sentry-internal/rrweb": "2.42.0",
6363
"@sentry/browser": "10.52.0",
6464
"@sentry-internal/replay": "10.52.0",
6565
"@sentry/opentelemetry": "10.52.0",
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import * as Sentry from '@sentry/browser';
2+
import { browserProfilingIntegration, spanStreamingIntegration } from '@sentry/browser';
3+
4+
window.Sentry = Sentry;
5+
6+
const client = Sentry.init({
7+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
8+
integrations: [spanStreamingIntegration(), browserProfilingIntegration()],
9+
tracesSampleRate: 1,
10+
traceLifecycle: 'stream',
11+
profileSessionSampleRate: 1,
12+
profileLifecycle: 'trace',
13+
});
14+
15+
function fibonacci(n) {
16+
if (n <= 1) {
17+
return n;
18+
}
19+
return fibonacci(n - 1) + fibonacci(n - 2);
20+
}
21+
22+
await Sentry.startSpanManual({ name: 'root-fibonacci', parentSpan: null }, async span => {
23+
fibonacci(40);
24+
25+
Sentry.startSpan({ name: 'child-span-1', parentSpan: span }, () => {
26+
fibonacci(20);
27+
});
28+
29+
Sentry.startSpan({ name: 'child-span-2', parentSpan: span }, () => {
30+
fibonacci(20);
31+
});
32+
33+
await new Promise(resolve => setTimeout(resolve, 40));
34+
span.end();
35+
});
36+
37+
await client?.flush(5000);
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { expect } from '@playwright/test';
2+
import { sentryTest } from '../../../utils/fixtures';
3+
import { shouldSkipTracingTest } from '../../../utils/helpers';
4+
import { waitForStreamedSpans } from '../../../utils/spanUtils';
5+
6+
sentryTest(
7+
'attaches thread.id and thread.name to streamed spans (trace mode)',
8+
async ({ page, getLocalTestUrl, browserName }) => {
9+
if (shouldSkipTracingTest() || browserName !== 'chromium') {
10+
sentryTest.skip();
11+
}
12+
13+
const spansPromise = waitForStreamedSpans(page, receivedSpans => {
14+
return receivedSpans.some(s => s.name === 'root-fibonacci');
15+
});
16+
17+
const url = await getLocalTestUrl({ testDir: __dirname, responseHeaders: { 'Document-Policy': 'js-profiling' } });
18+
await page.goto(url);
19+
20+
const spans = await spansPromise;
21+
22+
const rootSpan = spans.find(s => s.name === 'root-fibonacci');
23+
expect(rootSpan).toBeDefined();
24+
25+
expect(rootSpan!.attributes?.['thread.id']).toEqual({ type: 'string', value: '0' });
26+
expect(rootSpan!.attributes?.['thread.name']).toEqual({ type: 'string', value: 'main' });
27+
28+
const childSpans = spans.filter(s => s.name === 'child-span-1' || s.name === 'child-span-2');
29+
expect(childSpans.length).toBeGreaterThanOrEqual(1);
30+
31+
for (const child of childSpans) {
32+
expect(child.attributes?.['thread.id']).toEqual({ type: 'string', value: '0' });
33+
expect(child.attributes?.['thread.name']).toEqual({ type: 'string', value: 'main' });
34+
}
35+
},
36+
);

0 commit comments

Comments
 (0)