Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
a3dfc27
test(node): Port Prisma integration tests to span streaming (#25152)
nicohrubec Oct 8, 2026
96b7733
chore(deps): Bump next from 16.2.11 to 16.3.8 in /dev-packages/e2e-te…
dependabot[bot] Oct 8, 2026
1dffc6e
Merge pull request #25196 from getsentry/master
github-actions[bot] Oct 8, 2026
032de38
test(node): Port HTTP propagation and transport suites to streaming (…
nicohrubec Oct 9, 2026
c068f72
docs: Scope pre-PR tests to affected suites (#25198)
nicohrubec Oct 9, 2026
9d6d6f9
ci: Run lint steps in parallel (#25187)
chargome Oct 9, 2026
3a61fbb
feat(nuxt): Detect the server API with `@nuxt/kit` 4.6 (#25138)
s1gr1d Oct 9, 2026
d489a08
fix(server-utils): Record amqplib consumer info before the first deli…
s1gr1d Oct 9, 2026
9e98e4b
test(node): Port incoming HTTP behavior to span streaming (#25194)
nicohrubec Oct 9, 2026
31717a4
ref(server-utils): Share Orchestrion channel context (#25208)
nicohrubec Oct 9, 2026
84d6378
fix(profiling-node): Stop the trace lifecycle profiler when spans are…
s1gr1d Oct 9, 2026
83e3b70
test(node): Port HTTP options and hooks to span streaming (#25195)
nicohrubec Oct 9, 2026
668a513
ci: Install Playwright in the background during E2E app builds (#25207)
chargome Oct 9, 2026
4422cef
test(node): Port outgoing HTTP client spans to streaming (#25192)
nicohrubec Oct 9, 2026
ee6df73
test(node): Port HTTP request suites to span streaming (#25191)
nicohrubec Oct 9, 2026
861710d
test(node): Port fetch request suites to span streaming (#25189)
nicohrubec Oct 9, 2026
148960a
chore(size-limit): weekly auto-bump (#25213)
javascript-sdk-gitflow[bot] Oct 9, 2026
cb34995
test(node): Run sampling propagation tests with default streaming (#2…
nicohrubec Oct 9, 2026
e144978
test(core): Fix flaky span end timestamp test (#25211)
Lms24 Oct 9, 2026
9ef8a0e
ref(server-utils): Export the pg query span helpers (#25163)
chargome Oct 9, 2026
541c8cf
feat(server-utils): Add the orchestrion config for @neondatabase/serv…
chargome Oct 9, 2026
9f8f848
feat(node): Add neonIntegration for @neondatabase/serverless (#25164)
chargome Oct 9, 2026
cb88771
test(node): Add integration tests for the Neon serverless driver (#25…
chargome Oct 9, 2026
4132a34
fix(nuxt): Remove @opentelemetry/resources dev alias (#25216)
chargome Oct 9, 2026
19185a1
fix(core): Report actual item count in client reports of envelope sen…
Lms24 Oct 9, 2026
cae4c95
test(node): Use default streaming in scope and span suites (#25222)
nicohrubec Oct 9, 2026
40e0275
test(browser): migrate trace lifecycle and span API tests to streamin…
msonnb Oct 9, 2026
8a92d0d
test(browser): port browser tracing suites to span streaming (#24888)
msonnb Oct 9, 2026
061f62c
test(browser): port requests and web vitals to span streaming (#24886)
msonnb Oct 9, 2026
b32a9b5
test(node): Port baggage and metadata tests to span streaming (#25220)
nicohrubec Oct 9, 2026
3e2e076
fix(core): Strip internal custom span name from streamed spans (#25212)
msonnb Oct 9, 2026
090464a
feat(deps): Bump handlebars from 4.7.9 to 4.7.10 (#25206)
dependabot[bot] Oct 9, 2026
0df3903
test(deno): Type-check Deno unit tests (#25227)
Philip-Nwabuwa Oct 9, 2026
072b269
ref(core): Simplify transport item loss recording (#25224)
Lms24 Oct 9, 2026
01935a5
fix(sveltekit): Stop adapter-node 6 output dir probe from deleting th…
chargome Oct 9, 2026
7315691
test(nuxt): Test imports from `nuxt/server` in the nuxt-5 E2E app (#2…
s1gr1d Oct 9, 2026
68f22aa
chore: Add external contributor to CHANGELOG.md (#25230)
javascript-sdk-gitflow[bot] Oct 9, 2026
b8b6239
fix(nextjs): Filter query parameters in request error context (#25233)
msonnb Oct 9, 2026
4c22a84
test(node): Port span linking and raw OTel tests to streaming (#25219)
nicohrubec Oct 9, 2026
6706e75
test(cloudflare): Add LangChain TypeSafeClassifier integration test (…
andreiborza Oct 9, 2026
b7deb1f
test(node): Port parallel span and naming tests to streaming (#25217)
nicohrubec Oct 9, 2026
f7bc9a4
chore(deps): Bump next from 16.2.11 to 16.3.8 in /dev-packages/e2e-te…
dependabot[bot] Oct 9, 2026
3ed6fda
feat(deps): Bump @aws-sdk/client-kinesis from 3.1068.0 to 3.1146.0 (#…
dependabot[bot] Oct 9, 2026
954484b
chore(deps-dev): Bump rimraf from 5.0.10 to 6.1.3 (#25241)
dependabot[bot] Oct 9, 2026
84f8010
feat(cloudflare): Add opt-in cron monitoring for Cron Triggers (#25014)
wedamija Oct 9, 2026
7fa421a
test(node): Port trace context tests to span streaming (#25218)
nicohrubec Oct 9, 2026
2fd42ba
test(node): Port Postgres integration tests to span streaming (#25140)
nicohrubec Oct 9, 2026
7707b30
test(node): Port MongoDB integration tests to span streaming (#25150)
nicohrubec Oct 9, 2026
a9dd5d5
test(node): Port Redis integration tests to span streaming (#25153)
nicohrubec Oct 9, 2026
2c26a4a
test(node): Port Mongoose integration tests to span streaming (#25151)
nicohrubec Oct 9, 2026
ccd77cb
feat(deps): Bump reflect-metadata from 0.2.1 to 0.2.2 (#25239)
dependabot[bot] Oct 9, 2026
a86403a
chore(deps-dev): Bump oxlint-tsgolint from 7.0.2001 to 7.0.2003 (#25237)
dependabot[bot] Oct 9, 2026
b4bbe14
fix(server-utils): End Express layer spans when the client aborts (#2…
chargome Oct 12, 2026
153f4f8
fix(server-utils): avoid quadratic SQL summary regex backtracking (#2…
msonnb Oct 12, 2026
1f95be2
fix(core): Record `span` client report outcomes when discarding trans…
Lms24 Oct 12, 2026
2af75e4
fix(core): Record client outcomes when beforeSend callbacks return in…
Lms24 Oct 12, 2026
4aa5981
fix(nextjs): Apply top-level `bundleSizeOptimizations` to webpack and…
andreiborza Oct 12, 2026
d5c211d
fix(react-router): Respect custom default integrations (#25259)
nicohrubec Oct 12, 2026
37f012b
fix(remix): Respect custom default integrations (#25258)
nicohrubec Oct 12, 2026
0f33366
test(node): Port basic and nested startSpan tests to streaming (#25214)
nicohrubec Oct 12, 2026
b5a707d
fix(core): Don't mark http client spans as errors when the caller abo…
andreiborza Oct 12, 2026
1553909
test(nextjs): Add vinext e2e tests (#25001)
JPeer264 Oct 12, 2026
12a84a9
chore(deps): Bump `@sentry/conventions` to 0.27.0 (#25264)
andreiborza Oct 12, 2026
203765a
test(browser): Register the LCP handlers in the bundle of the SDK (#2…
chargome Oct 12, 2026
20c26f2
fix(node): Don't mark fetch spans as errors when the caller aborts (#…
4ktLuffy Oct 12, 2026
beda27f
chore: Add external contributor to CHANGELOG.md (#25271)
javascript-sdk-gitflow[bot] Oct 12, 2026
c20e4f2
feat(server-utils): Record Workers AI Jev and Clef calls as gen_ai.de…
andreiborza Oct 12, 2026
6aa337a
feat(server-utils): Record TypeSafe and LangChain Jev calls as gen_ai…
andreiborza Oct 12, 2026
36fdc3f
fix(nuxt): Delete public source maps before Nitro lists its public as…
s1gr1d Oct 12, 2026
938c7ea
fix(sveltekit): Read load event pathname untracked (#25235)
chargome Oct 12, 2026
7ceed2f
feat(deps): Bump pino from 9.10.0 to 10.4.0 (#25238)
dependabot[bot] Oct 12, 2026
96dfcc0
test(node-integration): Replace `conditionalTest` with a `supports` h…
JPeer264 Oct 12, 2026
f04b11e
ci(bun): Test the oldest supported Bun version and the newest 1.4 (#2…
JPeer264 Oct 12, 2026
a11af3e
test(bun): Run the Node suites that need Bun 1.4 on the Bun 1.4 job (…
JPeer264 Oct 12, 2026
81ad409
feat(node): Stop sending the process session once request sessions ar…
mydea Oct 12, 2026
1350965
fix(core): Record span outcomes for spans dropped when building a tra…
Lms24 Oct 12, 2026
17a8a15
feat(server-utils): Record Vercel AI experimental_decide calls as gen…
andreiborza Oct 12, 2026
9f7cbad
feat(server-utils): Map Mastra classifier evaluations to gen_ai.decid…
andreiborza Oct 12, 2026
8a6b9ca
test(node-integration): Stop exporting `NODE_VERSION` and `RUNTIME` f…
JPeer264 Oct 12, 2026
1e86178
fix(nuxt): Keep `@sentry/server-runtime-injection` external on Nitro …
mydea Oct 12, 2026
ee04661
fix(browser): Apply `urlQueryParams` to event URLs, static span names…
JPeer264 Oct 12, 2026
236c0ce
fix(browser): Apply `urlQueryParams` to breadcrumb and element timing…
JPeer264 Oct 12, 2026
b80300b
fix(server-utils): Stop treating previous_response_id as the OpenAI c…
RulaKhaled Oct 12, 2026
87bdc84
fix(bundler-plugins): Escape JSON in generated injection code (#25265)
msonnb Oct 12, 2026
323307a
meta(changelog): Update changelog for 11.7.0
JPeer264 Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .cursor/BUGBOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ Keep reviews high-signal. Prefer actionable, high-confidence findings over specu
- Flag usage of `expect.objectContaining` and other relaxed assertions, when a test expects something NOT to be included in a payload but there's no respective assertion.
- Flag usage of conditionals in one test and recommend splitting up the test for the different paths.
- Flag usage of loops testing multiple scenarios in one test and recommend using `(it)|(test).each` instead.
- In `dev-packages/node-integration-tests/suites/`, flag tests that check the Node version or the runtime themselves, for example with `process.versions`, `process.env.RUNTIME`, `ctx.skip()`, or a version or runtime condition in `skipIf` / `runIf`. Recommend `test.runIf(supports({ ... }))` or `describe.runIf(supports({ ... }))` from `utils/index.ts` instead.
- Apply the `@sentry/conventions` constants rule from above to test files too. Test assertions on span attributes and ops must use the constants, not string literals.
- Flag tests that are likely to introduce flakes. In our case this usually means we wait for some telemetry requests sent from an SDK. Patterns to look out for:
- Only waiting for a request, after an action is performed. Instead, start waiting, perform action, await request promise.
Expand Down
12 changes: 12 additions & 0 deletions .github/actions/install-playwright/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ inputs:
cwd:
description: 'The working directory to run Playwright in.'
default: '.'
installed-version:
description:
'A Playwright version that an earlier run of this action already installed. Skips the install if it matches.'
default: ''

outputs:
version:
description: 'The resolved Playwright version, empty if Playwright is not installed or the install was skipped.'
value: ${{ steps.playwright-version.outputs.version }}

runs:
using: 'composite'
Expand All @@ -18,8 +27,11 @@ runs:
id: playwright-version
run: |
version=$(node -e "let v = ''; try { v = require('@playwright/test/package.json').version; } catch {} process.stdout.write(String(v));")
if [ "$version" = "$INSTALLED_VERSION" ]; then version=''; fi
echo "version=$version" >> "$GITHUB_OUTPUT"
shell: bash
env:
INSTALLED_VERSION: ${{ inputs.installed-version }}
working-directory: ${{ inputs.cwd }}

- name: Restore cached playwright binaries
Expand Down
58 changes: 46 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -337,12 +337,13 @@ jobs:
uses: ./.github/actions/restore-cache
with:
dependency_cache_key: ${{ needs.job_build.outputs.dependency_cache_key }}
- name: Lint source files
run: yarn lint
- name: Lint for ES compatibility
run: yarn lint:es-compatibility
- name: Lint types
run: yarn lint:types
- parallel:
- name: Lint source files
run: yarn lint
- name: Lint for ES compatibility
run: yarn lint:es-compatibility
- name: Lint types
run: yarn lint:types

job_check_lockfile:
name: Check lockfile
Expand Down Expand Up @@ -502,11 +503,16 @@ jobs:
if: github.event_name != 'pull_request'

job_bun_unit_tests:
name: Bun Unit Tests
name: Bun (${{ matrix.bun }}) Unit Tests
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_bun == 'true' || github.event_name != 'pull_request'
timeout-minutes: 10
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
# 1.3.14 is the oldest supported Bun version
bun: ['1.3.14', '1.4']
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand All @@ -519,7 +525,7 @@ jobs:
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3.14'
bun-version: ${{ matrix.bun }}
- name: Restore caches
uses: ./.github/actions/restore-cache
with:
Expand Down Expand Up @@ -903,14 +909,16 @@ jobs:
run: yarn test

job_bun_integration_tests:
name: Bun Integration Tests (${{ matrix.shard }}/2)
name: Bun (${{ matrix.bun }}) Integration Tests (${{ matrix.shard }}/2)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_bun_integration == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
# 1.3.14 is the oldest supported Bun version
bun: ['1.3.14', '1.4']
shard: [1, 2]
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
Expand All @@ -924,7 +932,7 @@ jobs:
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3.14'
bun-version: ${{ matrix.bun }}
- name: Restore caches
uses: ./.github/actions/restore-cache
with:
Expand Down Expand Up @@ -1091,6 +1099,16 @@ jobs:
name: build-layer-output
path: ${{ env.BUILD_LAYER_PATH }}

# Installs the root workspace's Playwright version while the app builds. Most apps use the same version.
# The app's own version is only known after its build, so it gets installed then if it differs.
# Started after the artifact downloads: starting next to them made `download-artifact` fail to read the event file.
- name: Install Playwright
id: install-playwright
background: true
uses: ./.github/actions/install-playwright
with:
browsers: chromium

- name: Prepare e2e tests
run: yarn test:prepare
working-directory: dev-packages/e2e-tests
Expand All @@ -1116,11 +1134,14 @@ jobs:
env:
SENTRY_E2E_WORKSPACE_ROOT: ${{ github.workspace }}

- name: Install Playwright
- wait: [install-playwright]

- name: Install Playwright for the app's version
uses: ./.github/actions/install-playwright
with:
browsers: chromium
cwd: ${{ runner.temp }}/test-application
installed-version: ${{ steps.install-playwright.outputs.version }}

- name: Run E2E test
working-directory: ${{ runner.temp }}/test-application
Expand Down Expand Up @@ -1220,6 +1241,16 @@ jobs:
name: build-tarball-output
path: ${{ env.TARBALL_ARTIFACT_DOWNLOAD_PATH }}

# Installs the root workspace's Playwright version while the app builds. Most apps use the same version.
# The app's own version is only known after its build, so it gets installed then if it differs.
# Started after the artifact downloads: starting next to them made `download-artifact` fail to read the event file.
- name: Install Playwright
id: install-playwright
background: true
uses: ./.github/actions/install-playwright
with:
browsers: chromium

- name: Prepare E2E tests
run: yarn test:prepare
working-directory: dev-packages/e2e-tests
Expand All @@ -1243,11 +1274,14 @@ jobs:
timeout-minutes: 7
run: ${{ matrix.build-command || 'pnpm test:build' }}

- name: Install Playwright
- wait: [install-playwright]

- name: Install Playwright for the app's version
uses: ./.github/actions/install-playwright
with:
browsers: chromium
cwd: ${{ runner.temp }}/test-application
installed-version: ${{ steps.install-playwright.outputs.version }}

- name: Run E2E test
working-directory: ${{ runner.temp }}/test-application
Expand Down
Loading
Loading