Skip to content

Commit e5e058e

Browse files
authored
Merge branch 'develop' into isaacschlueter/js-3800-vercelaiintegration-experimental_telemetrymetadata-no-longer
2 parents 6d3f865 + 6baedf1 commit e5e058e

546 files changed

Lines changed: 8686 additions & 5249 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.

‎.agents/skills/add-ai-integration/SKILL.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ What the reference files won't tell you:
5858
- [ ] Instrumentation in `src/ai/`, integration in `src/integrations/`, registered in `getTracingIntegrations()` (LangChain first)
5959
- [ ] Exported from `packages/server-utils/src/index.ts`, re-exported from the supported runtime packages
6060
- [ ] E2E tests in `dev-packages/node-integration-tests/suites/tracing/{provider}/` (and `cloudflare-integration-tests/` if supported)
61+
- [ ] The new suite passes on the other runtimes that run the Node suites, or is excluded there (see "Other Runtimes" in `dev-packages/node-integration-tests/README.md`)
6162
- [ ] Ops and attributes from `@sentry/conventions`, op derived via `getGenAiSpanOp()`
6263
- [ ] Recording gated on `resolveAIRecordingOptions()`; no truncation, no token rollup
6364
- [ ] JSDoc names the channels subscribed to, the supported SDK versions, and — for Pattern 2 — that it requires the Sentry runtime hook or bundler plugin

‎.agents/skills/vendor-otel/SKILL.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ grep "import.*from '" <file> | grep -v "@opentelemetry\|'\./\|@sentry\|'util'\|'
4343

4444
Check test coverage and report gaps:
4545

46-
- Integration tests: `dev-packages/node-integration-tests/suites/tracing/<name>/`
46+
- Integration tests: `dev-packages/node-integration-tests/suites/tracing/<name>/`. Other runtimes run these
47+
suites too; see "Other Runtimes" in `dev-packages/node-integration-tests/README.md`.
4748
- E2E tests: `dev-packages/e2e-tests/test-applications/node-<name>/`
4849
- Unit tests: `packages/node/test/integrations/tracing/<name>.test.ts`
4950

‎.agents/skills/write-tests/SKILL.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,9 @@ describe('patchRoute', () => {
337337
Node integration tests (`dev-packages/node-integration-tests/`) use `createEsmAndCjsTests` to
338338
run a real Node scenario file and assert on captured Sentry envelopes.
339339

340+
Other runtimes run these suites too. A new suite must pass there or be excluded; see "Other
341+
Runtimes" in `dev-packages/node-integration-tests/README.md`.
342+
340343
### Minimize `test()` calls — each one spawns a separate Node process
341344

342345
**This is the opposite of the Playwright rule.** In Playwright, each `test()` is cheap — use

‎.github/workflows/build.yml‎

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -903,11 +903,15 @@ jobs:
903903
run: yarn test
904904

905905
job_bun_integration_tests:
906-
name: Bun Integration Tests
906+
name: Bun Integration Tests (${{ matrix.shard }}/2)
907907
needs: [job_get_metadata, job_build]
908908
if: needs.job_build.outputs.changed_bun_integration == 'true' || github.event_name != 'pull_request'
909909
runs-on: ubuntu-24.04
910910
timeout-minutes: 15
911+
strategy:
912+
fail-fast: false
913+
matrix:
914+
shard: [1, 2]
911915
steps:
912916
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
913917
uses: actions/checkout@v7
@@ -928,14 +932,18 @@ jobs:
928932

929933
- name: Run integration tests
930934
working-directory: dev-packages/bun-integration-tests
931-
run: yarn test
935+
run: yarn test --shard=${{ matrix.shard }}/2
932936

933937
job_deno_integration_tests:
934-
name: Deno Integration Tests
938+
name: Deno Integration Tests (${{ matrix.shard }}/2)
935939
needs: [job_get_metadata, job_build]
936940
if: needs.job_build.outputs.changed_deno_integration == 'true' || github.event_name != 'pull_request'
937941
runs-on: ubuntu-24.04
938942
timeout-minutes: 15
943+
strategy:
944+
fail-fast: false
945+
matrix:
946+
shard: [1, 2]
939947
steps:
940948
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
941949
uses: actions/checkout@v7
@@ -956,9 +964,16 @@ jobs:
956964
- name: Build @sentry/deno
957965
working-directory: packages/deno
958966
run: yarn build
959-
- name: Run integration tests
967+
- name: Run native Deno integration tests
968+
if: matrix.shard == 1
960969
working-directory: dev-packages/deno-integration-tests
961-
run: yarn test
970+
run: |
971+
yarn install:deno
972+
yarn deno-types
973+
yarn test:unit
974+
- name: Run shared Node integration tests
975+
working-directory: dev-packages/deno-integration-tests
976+
run: yarn test:node-suites --shard=${{ matrix.shard }}/2
962977

963978
job_build_tarballs:
964979
name: Build tarballs
@@ -1041,7 +1056,7 @@ jobs:
10411056
- name: Set up Bun
10421057
if:
10431058
contains(fromJSON('["node-exports-test-app","nextjs-16-bun", "elysia-bun", "elysia-bun-static", "hono-4",
1044-
"bun-bytecode", "bun-mysql"]'), matrix.test-application)
1059+
"bun-bytecode", "bun-express", "bun-mysql"]'), matrix.test-application)
10451060
uses: oven-sh/setup-bun@v2
10461061
with:
10471062
bun-version: '1.3.14'

‎.github/workflows/cleanup-e2e-workers.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
1717
strategy:
1818
matrix:
19-
# Name prefix of every E2E app that deploys a real worker, see the app's global-setup.mjs
19+
# Name prefix of every E2E app that deploys a real worker, see the app's global-setup.ts
2020
worker-prefix:
2121
- e2e-send-to-sentry
2222
steps:
@@ -31,6 +31,6 @@ jobs:
3131
3232
if ! output=$(npx --yes wrangler@4 delete --name "$WORKER" --force 2>&1); then
3333
echo "$output"
34-
# 10007 means the worker does not exist, i.e. the PR never ran the optional E2E job.
35-
echo "$output" | grep -q 'code: 10007' || exit 1
34+
# 10007 and 10090 mean the worker does not exist, e.g. the PR never ran the optional E2E job.
35+
echo "$output" | grep -Eq 'code: (10007|10090)\]' || exit 1
3636
fi
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: 'Automation: Label external PRs'
2+
on:
3+
pull_request_target:
4+
types:
5+
- opened
6+
7+
jobs:
8+
label_external_pr:
9+
name: Add external label
10+
permissions:
11+
pull-requests: write
12+
runs-on: ubuntu-24.04
13+
if: |
14+
github.event.pull_request.author_association != 'COLLABORATOR'
15+
&& github.event.pull_request.author_association != 'MEMBER'
16+
&& github.event.pull_request.author_association != 'OWNER'
17+
&& endsWith(github.event.pull_request.user.login, '[bot]') == false
18+
steps:
19+
- name: Add external label
20+
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
21+
with:
22+
labels: external

‎.size-limit.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ module.exports = [
406406
import: createImport('init'),
407407
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
408408
gzip: true,
409-
limit: '139 KB',
409+
limit: '143 KB',
410410
disablePlugins: ['@size-limit/esbuild'],
411411
},
412412
{
@@ -452,7 +452,7 @@ module.exports = [
452452
path: 'packages/node/build/esm/index.js',
453453
import: createImport('init'),
454454
gzip: true,
455-
limit: '118 KB',
455+
limit: '121 KB',
456456
disablePlugins: ['@size-limit/esbuild'],
457457
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
458458
modifyWebpackConfig: function (config) {

‎.version.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"_comment": "Auto-generated by scripts/bump-version.js. Used by the gitflow sync workflow to detect version bumps. Do not edit manually.",
3-
"version": "11.0.0"
3+
"version": "11.1.0"
44
}

‎CHANGELOG.md‎

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,117 @@
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 @camc314, @ihsraham, and @zkasuran. Thank you for your contributions!
7+
Work in this release was contributed by @nabi-noor, @LuccaRebelloToledo, @andasan, @breken-ai, and @EmileBrunelle. Thank you for your contributions!
8+
9+
## 11.1.0
10+
11+
### Important Changes
12+
13+
- **feat(server-utils): Auto-instrument MCP servers via orchestrion ([#24529](https://github.com/getsentry/sentry-javascript/pull/24529))**
14+
15+
A new default `mcpServerIntegration` wraps every `McpServer` instance (from `@modelcontextprotocol/server` and `@modelcontextprotocol/sdk`) when it is created. You no longer need to call `wrapMcpServerWithSentry` manually. You can still call `wrapMcpServerWithSentry` to override options, for example `recordInputs: false`.
16+
17+
- **feat(node): Support Prisma 8 in `prismaIntegration` ([#24682](https://github.com/getsentry/sentry-javascript/pull/24682))**
18+
19+
`prismaIntegration` now creates a `prisma:client:operation` span for each Prisma 8 ORM call, with the database query spans nested below it. No code changes are necessary.
20+
21+
- **feat(server-utils): Add TypeSafe integration ([#24703](https://github.com/getsentry/sentry-javascript/pull/24703))**
22+
23+
A new default `typesafeIntegration` creates a `gen_ai.evaluate` span for each TypeSafe Jev call through `@typesafe-ai/sdk` (`TypeSafeClient.systemOne`). For runtimes without auto-instrumentation, use `instrumentTypeSafeClient()`.
24+
25+
- **feat(server-utils): Instrument Vercel AI `experimental_evaluate` ([#24694](https://github.com/getsentry/sentry-javascript/pull/24694))**
26+
27+
Vercel AI `experimental_evaluate` calls now create a `gen_ai.evaluate` span, with the state and questions as input messages and the answers as output messages.
28+
29+
### Other Changes
30+
31+
- feat(browser): Add `onError` callback to `showReportDialog` ([#24780](https://github.com/getsentry/sentry-javascript/pull/24780))
32+
- feat(bun): Add client address, port and protocol to Bun.serve spans ([#24523](https://github.com/getsentry/sentry-javascript/pull/24523))
33+
- feat(cloudflare): Re-export httpServerIntegration from /request ([#24614](https://github.com/getsentry/sentry-javascript/pull/24614))
34+
- feat(remix): Add Remix 3 export subpaths and optional peer deps ([#24697](https://github.com/getsentry/sentry-javascript/pull/24697))
35+
- feat(server-utils): Support amqplib v2 ([#24652](https://github.com/getsentry/sentry-javascript/pull/24652))
36+
- feat(server-utils): Support tedious v20 ([#24644](https://github.com/getsentry/sentry-javascript/pull/24644))
37+
- fix: Injection silently no-ops on Windows (`registerHooks` path) ([#24705](https://github.com/getsentry/sentry-javascript/pull/24705))
38+
- fix(bun): Keep diagnostics channel subscriptions alive ([#24632](https://github.com/getsentry/sentry-javascript/pull/24632))
39+
- fix(cloudflare): Call connect() on the binding for service bindings and DO stubs ([#24593](https://github.com/getsentry/sentry-javascript/pull/24593))
40+
- fix(cloudflare): Keep the user's class name when auto-wrapping an export ([#24700](https://github.com/getsentry/sentry-javascript/pull/24700))
41+
- fix(core): Support joined set-cookie headers (split them) ([#24659](https://github.com/getsentry/sentry-javascript/pull/24659))
42+
- fix(nextjs): Don't prepend basePath to absolute router navigation URLs ([#24680](https://github.com/getsentry/sentry-javascript/pull/24680))
43+
- fix(nextjs): Limit Turbopack orchestrion loader to instrumented packages ([#24792](https://github.com/getsentry/sentry-javascript/pull/24792))
44+
- fix(nextjs): Stop Turbopack loaders from loading the Sentry CLI ([#24651](https://github.com/getsentry/sentry-javascript/pull/24651))
45+
- fix(server-runtime-injection): Keep ES modules working on Deno ([#24669](https://github.com/getsentry/sentry-javascript/pull/24669))
46+
- fix(server-utils): Deduplicate Google GenAI streaming tool calls ([#23432](https://github.com/getsentry/sentry-javascript/pull/23432))
47+
- fix(sveltekit,remix): Export Mistral manual wrapper ([#24566](https://github.com/getsentry/sentry-javascript/pull/24566))
48+
- fix(sveltekit): Resolve `@opentelemetry/api` via the SDK on SvelteKit 3 ([#24736](https://github.com/getsentry/sentry-javascript/pull/24736))
49+
- fix(wasm): map wasm:// stack frames to registered debug images ([#23999](https://github.com/getsentry/sentry-javascript/pull/23999))
50+
- perf(bundler-plugins): Use fast component annotation for HTML injection mode ([#24440](https://github.com/getsentry/sentry-javascript/pull/24440))
51+
- perf(bundler-plugins): Use fast component annotation for Webpack and Turbopack ([#24448](https://github.com/getsentry/sentry-javascript/pull/24448))
52+
- ref(bundler-plugins): Remove Babel fallback from component annotation ([#24449](https://github.com/getsentry/sentry-javascript/pull/24449))
53+
54+
<details>
55+
<summary> <strong>Internal Changes</strong> </summary>
56+
57+
- chore: Add external contributor to CHANGELOG.md ([#24674](https://github.com/getsentry/sentry-javascript/pull/24674))
58+
- chore: Add external contributor to CHANGELOG.md ([#24675](https://github.com/getsentry/sentry-javascript/pull/24675))
59+
- chore: Add external contributor to CHANGELOG.md ([#24745](https://github.com/getsentry/sentry-javascript/pull/24745))
60+
- chore: Add external contributor to CHANGELOG.md ([#24766](https://github.com/getsentry/sentry-javascript/pull/24766))
61+
- chore: Add external contributor to CHANGELOG.md ([#24782](https://github.com/getsentry/sentry-javascript/pull/24782))
62+
- chore: Update base node version to 24.21.0 ([#24343](https://github.com/getsentry/sentry-javascript/pull/24343))
63+
- chore: upgrade oxfmt to 0.70.0 ([#24637](https://github.com/getsentry/sentry-javascript/pull/24637))
64+
- chore(ci): Assign server package reviews back to server team ([#24743](https://github.com/getsentry/sentry-javascript/pull/24743))
65+
- chore(deps-dev): bump elysia from 1.4.27 to 1.4.29 ([#24673](https://github.com/getsentry/sentry-javascript/pull/24673))
66+
- chore(deps): Bump `@sentry/conventions` to 0.24.0 ([#24645](https://github.com/getsentry/sentry-javascript/pull/24645))
67+
- chore(size-limit): weekly auto-bump ([#24729](https://github.com/getsentry/sentry-javascript/pull/24729))
68+
- ci: Replace per-run flaky issues with a weekly report ([#24707](https://github.com/getsentry/sentry-javascript/pull/24707))
69+
- ci: shard Cloudflare integration tests ([#24726](https://github.com/getsentry/sentry-javascript/pull/24726))
70+
- ci: shard Node integration tests and increase browser Playwright workers ([#24676](https://github.com/getsentry/sentry-javascript/pull/24676))
71+
- docs: Point browser SDK READMEs to documentation ([#24634](https://github.com/getsentry/sentry-javascript/pull/24634))
72+
- docs: Point Effect, Elysia, and Wasm READMEs to documentation ([#24636](https://github.com/getsentry/sentry-javascript/pull/24636))
73+
- docs: Point framework SDK READMEs to documentation ([#24631](https://github.com/getsentry/sentry-javascript/pull/24631))
74+
- docs: Point profiling and native READMEs to documentation ([#24640](https://github.com/getsentry/sentry-javascript/pull/24640))
75+
- docs: Point Replay and Feedback READMEs to documentation ([#24639](https://github.com/getsentry/sentry-javascript/pull/24639))
76+
- docs: Point server SDK READMEs to documentation ([#24635](https://github.com/getsentry/sentry-javascript/pull/24635))
77+
- docs: Point tooling READMEs to documentation ([#24641](https://github.com/getsentry/sentry-javascript/pull/24641))
78+
- docs: Standardize internal package READMEs ([#24638](https://github.com/getsentry/sentry-javascript/pull/24638))
79+
- docs(angular): Point README to SDK documentation ([#24623](https://github.com/getsentry/sentry-javascript/pull/24623))
80+
- docs(astro): Point README to SDK documentation ([#24626](https://github.com/getsentry/sentry-javascript/pull/24626))
81+
- docs(aws-serverless): Point README to SDK documentation ([#24627](https://github.com/getsentry/sentry-javascript/pull/24627))
82+
- docs(cloudflare): Point README to SDK documentation ([#24624](https://github.com/getsentry/sentry-javascript/pull/24624))
83+
- docs(ember): Point README to SDK documentation ([#24628](https://github.com/getsentry/sentry-javascript/pull/24628))
84+
- docs(hono): Point README to SDK documentation ([#24621](https://github.com/getsentry/sentry-javascript/pull/24621))
85+
- docs(nestjs): Point README to SDK documentation ([#24618](https://github.com/getsentry/sentry-javascript/pull/24618))
86+
- docs(nitro): Point README to SDK documentation ([#24629](https://github.com/getsentry/sentry-javascript/pull/24629))
87+
- docs(opentelemetry): Point README to documentation ([#24642](https://github.com/getsentry/sentry-javascript/pull/24642))
88+
- docs(react-router): Point README to SDK documentation ([#24625](https://github.com/getsentry/sentry-javascript/pull/24625))
89+
- docs(remix): Point README to SDK documentation ([#24630](https://github.com/getsentry/sentry-javascript/pull/24630))
90+
- docs(solidstart): Point README to SDK documentation ([#24622](https://github.com/getsentry/sentry-javascript/pull/24622))
91+
- fix(ci): Handle missing workers in E2E cleanup ([#24779](https://github.com/getsentry/sentry-javascript/pull/24779))
92+
- fix(server-utils): Use Bun-safe diagnostics channel wrappers in MCP integration ([#24797](https://github.com/getsentry/sentry-javascript/pull/24797))
93+
- test(bun, deno): Run shared Node integration suites on Bun and Deno ([#24609](https://github.com/getsentry/sentry-javascript/pull/24609))
94+
- test(bun): Exclude Typesafe tests in bun ([#24785](https://github.com/getsentry/sentry-javascript/pull/24785))
95+
- test(bun): Run all Node integration suites on Bun ([#24610](https://github.com/getsentry/sentry-javascript/pull/24610))
96+
- test(bun): Run the Bun-only suites with the shared Node runner ([#24668](https://github.com/getsentry/sentry-javascript/pull/24668))
97+
- test(cloudflare): Add e2e test app for `@cloudflare/think` ([#24660](https://github.com/getsentry/sentry-javascript/pull/24660))
98+
- test(cloudflare): Resend requests until the deployed Cloudflare Worker answers ([#24560](https://github.com/getsentry/sentry-javascript/pull/24560))
99+
- test(deno): Run all Node integration suites on Deno ([#24611](https://github.com/getsentry/sentry-javascript/pull/24611))
100+
- test(e2e): Add cache origin link tests for cached components in pages ([#24739](https://github.com/getsentry/sentry-javascript/pull/24739))
101+
- test(e2e): Add cache origin link tests for use cache route handlers ([#24734](https://github.com/getsentry/sentry-javascript/pull/24734))
102+
- test(e2e): Add Next.js cache component nesting scenarios ([#24704](https://github.com/getsentry/sentry-javascript/pull/24704))
103+
- test(e2e): Add node-prisma-8 test app ([#24683](https://github.com/getsentry/sentry-javascript/pull/24683))
104+
- test(e2e): Add pageload connection test for cache component apps ([#24741](https://github.com/getsentry/sentry-javascript/pull/24741))
105+
- test(e2e): fix flaky hydrogen send-to-sentry tests ([#24708](https://github.com/getsentry/sentry-javascript/pull/24708))
106+
- test(effect): Make effect/http stable ([#24781](https://github.com/getsentry/sentry-javascript/pull/24781))
107+
- test(node): Add Prisma 8 integration test suite ([#24681](https://github.com/getsentry/sentry-javascript/pull/24681))
108+
- test(node): Assert absence of PII attributes in OpenAI integration tests ([#24031](https://github.com/getsentry/sentry-javascript/pull/24031))
109+
- test(node): Port envelope-header tests to span streaming ([#24528](https://github.com/getsentry/sentry-javascript/pull/24528))
110+
- test(node): Use a separate instrument file for the Vercel AI evaluate privacy test ([#24742](https://github.com/getsentry/sentry-javascript/pull/24742))
111+
- test(nuxt): Fix Nuxt 5 E2E by pinning @nuxt/cli ([#24788](https://github.com/getsentry/sentry-javascript/pull/24788))
112+
- test(remix): Add Remix 3 e2e test application ([#24698](https://github.com/getsentry/sentry-javascript/pull/24698))
113+
- test(vue): verify vue-router 5 support ([#24595](https://github.com/getsentry/sentry-javascript/pull/24595))
114+
115+
</details>
116+
117+
Work in this release was contributed by @camc314, @ihsraham, @zkasuran, @Shubham-Padkonde, and @itz-puneet. Thank you for your contributions!
8118

9119
## 11.0.0
10120

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry-internal/browser-integration-tests",
3-
"version": "11.0.0",
3+
"version": "11.1.0",
44
"main": "index.js",
55
"license": "MIT",
66
"engines": {
@@ -60,9 +60,9 @@
6060
"@babel/preset-typescript": "^7.16.7",
6161
"@playwright/test": "~1.63.0",
6262
"@sentry/rrweb": "2.43.2",
63-
"@sentry/browser": "11.0.0",
64-
"@sentry/replay": "11.0.0",
65-
"@sentry/opentelemetry": "11.0.0",
63+
"@sentry/browser": "11.1.0",
64+
"@sentry/replay": "11.1.0",
65+
"@sentry/opentelemetry": "11.1.0",
6666
"@sentry/conventions": "0.24.0",
6767
"@supabase/supabase-js": "2.109.0",
6868
"axios": "1.18.0",

0 commit comments

Comments
 (0)