Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
7070bd6
perf(bundler-plugins): Use fast component annotation for HTML injecti…
timfish Sep 23, 2026
21086bb
perf(bundler-plugins): Use fast component annotation for Webpack and …
timfish Sep 23, 2026
852a409
ref(bundler-plugins): Remove Babel fallback from component annotation…
timfish Sep 23, 2026
20d4bf1
Merge branch 'develop' into manual-develop-sync
chargome Sep 23, 2026
4a5334e
feat(server-utils): Support tedious v20 (#24644)
chargome Sep 23, 2026
233cd72
Merge pull request #24648 from getsentry/manual-develop-sync
chargome Sep 23, 2026
e225079
docs(nestjs): Point README to SDK documentation (#24618)
nicohrubec Sep 23, 2026
9af2ad7
docs(hono): Point README to SDK documentation (#24621)
nicohrubec Sep 23, 2026
1c164da
docs(solidstart): Point README to SDK documentation (#24622)
nicohrubec Sep 23, 2026
6fea720
docs(angular): Point README to SDK documentation (#24623)
nicohrubec Sep 23, 2026
b375a52
docs(cloudflare): Point README to SDK documentation (#24624)
nicohrubec Sep 23, 2026
c12f814
docs(react-router): Point README to SDK documentation (#24625)
nicohrubec Sep 23, 2026
0800742
docs(astro): Point README to SDK documentation (#24626)
nicohrubec Sep 23, 2026
92762ea
docs(aws-serverless): Point README to SDK documentation (#24627)
nicohrubec Sep 23, 2026
31e9f32
docs(ember): Point README to SDK documentation (#24628)
nicohrubec Sep 23, 2026
886f02a
docs(remix): Point README to SDK documentation (#24630)
nicohrubec Sep 23, 2026
2d6076b
docs: Point framework SDK READMEs to documentation (#24631)
nicohrubec Sep 23, 2026
84514d7
docs: Point browser SDK READMEs to documentation (#24634)
nicohrubec Sep 23, 2026
e8ab1f5
docs: Point server SDK READMEs to documentation (#24635)
nicohrubec Sep 23, 2026
3287f5c
docs: Point Effect, Elysia, and Wasm READMEs to documentation (#24636)
nicohrubec Sep 23, 2026
7a5f038
docs: Standardize internal package READMEs (#24638)
nicohrubec Sep 23, 2026
75edc13
docs: Point Replay and Feedback READMEs to documentation (#24639)
nicohrubec Sep 23, 2026
6694f52
docs(nitro): Point README to SDK documentation (#24629)
nicohrubec Sep 23, 2026
3b57813
fix(sveltekit,remix): Export Mistral manual wrapper (#24566)
nicohrubec Sep 23, 2026
4d50323
feat(server-utils): Support amqplib v2 (#24652)
chargome Sep 23, 2026
ac59565
chore(deps): Bump `@sentry/conventions` to 0.24.0 (#24645)
Lms24 Sep 23, 2026
95a96a8
docs(opentelemetry): Point README to documentation (#24642)
nicohrubec Sep 23, 2026
7824c40
fix(nextjs): Stop Turbopack loaders from loading the Sentry CLI (#24651)
chargome Sep 23, 2026
0c816dc
docs: Point tooling READMEs to documentation (#24641)
nicohrubec Sep 23, 2026
6c445ad
docs: Point profiling and native READMEs to documentation (#24640)
nicohrubec Sep 23, 2026
f8f196e
feat(cloudflare): Re-export httpServerIntegration from /request (#24614)
JPeer264 Sep 23, 2026
39393e6
chore: upgrade oxfmt to 0.70.0 (#24637)
camc314 Sep 24, 2026
5c2b130
test(vue): verify vue-router 5 support (#24595)
ihsraham Sep 24, 2026
8e577fe
chore: Add external contributor to CHANGELOG.md (#24674)
javascript-sdk-gitflow[bot] Sep 24, 2026
48deb1c
chore: Add external contributor to CHANGELOG.md (#24675)
javascript-sdk-gitflow[bot] Sep 24, 2026
5e9c777
fix(core): Support joined set-cookie headers (split them) (#24659)
s1gr1d Sep 24, 2026
b7227bb
chore(deps-dev): bump elysia from 1.4.27 to 1.4.29 (#24673)
dependabot[bot] Sep 24, 2026
d0b4cca
test(node): Port envelope-header tests to span streaming (#24528)
ihsraham Sep 24, 2026
d5a1b35
fix: Injection silently no-ops on Windows (`registerHooks` path) (#24…
timfish Sep 24, 2026
eade1ae
test(cloudflare): Resend requests until the deployed Cloudflare Worke…
JPeer264 Sep 24, 2026
daacc2b
test(e2e): fix flaky hydrogen send-to-sentry tests (#24708)
isaacs Sep 24, 2026
3761378
fix(cloudflare): Keep the user's class name when auto-wrapping an exp…
RulaKhaled Sep 25, 2026
e12615a
chore(size-limit): weekly auto-bump (#24729)
javascript-sdk-gitflow[bot] Sep 25, 2026
0808c61
ci: shard Node integration tests and increase browser Playwright work…
nicohrubec Sep 25, 2026
5d1632a
ci: shard Cloudflare integration tests (#24726)
nicohrubec Sep 25, 2026
b7b7e04
ci: Replace per-run flaky issues with a weekly report (#24707)
nicohrubec Sep 25, 2026
0f34ffb
test(e2e): Add Next.js cache component nesting scenarios (#24704)
s1gr1d Sep 25, 2026
2a58c97
fix(sveltekit): Resolve `@opentelemetry/api` via the SDK on SvelteKit…
Lms24 Sep 25, 2026
04fa17a
feat(server-utils): Instrument Vercel AI experimental_evaluate (#24694)
andreiborza Sep 25, 2026
b4eea2a
test(node): Use a separate instrument file for the Vercel AI evaluate…
andreiborza Sep 25, 2026
f396b08
test(e2e): Add cache origin link tests for cached components in pages…
s1gr1d Sep 25, 2026
87860b9
chore(ci): Assign server package reviews back to server team (#24743)
andreiborza Sep 25, 2026
6bc5c1c
fix(server-utils): Deduplicate Google GenAI streaming tool calls (#23…
zkasuran Sep 25, 2026
3a9647c
chore: Add external contributor to CHANGELOG.md (#24745)
javascript-sdk-gitflow[bot] Sep 25, 2026
59a57a7
feat(remix): Add Remix 3 export subpaths and optional peer deps (#24697)
chargome Sep 25, 2026
ae748ec
test(remix): Add Remix 3 e2e test application (#24698)
chargome Sep 25, 2026
6ec6e0d
test(node): Add Prisma 8 integration test suite (#24681)
chargome Sep 25, 2026
aa12819
feat(node): Support Prisma 8 in `prismaIntegration` (#24682)
chargome Sep 25, 2026
f660026
test(e2e): Add node-prisma-8 test app (#24683)
chargome Sep 25, 2026
0c73b36
test(bun, deno): Run shared Node integration suites on Bun and Deno (…
JPeer264 Sep 25, 2026
e949e25
test(bun): Run the Bun-only suites with the shared Node runner (#24668)
JPeer264 Sep 25, 2026
3844ba0
fix(wasm): map wasm:// stack frames to registered debug images (#23999)
d2anamaria Sep 25, 2026
67d0c98
feat(bun): Add client address, port and protocol to Bun.serve spans (…
Shubham-Padkonde Sep 25, 2026
bd3ce5f
fix(cloudflare): Call connect() on the binding for service bindings a…
JPeer264 Sep 26, 2026
0fec3c6
test(bun): Run all Node integration suites on Bun (#24610)
JPeer264 Sep 27, 2026
954e969
fix(server-runtime-injection): Keep ES modules working on Deno (#24669)
JPeer264 Sep 27, 2026
48c8b87
chore: Add external contributor to CHANGELOG.md (#24766)
javascript-sdk-gitflow[bot] Sep 28, 2026
9ad99d3
fix(ci): Handle missing workers in E2E cleanup (#24779)
msonnb Sep 28, 2026
5951662
test(e2e): Add cache origin link tests for use cache route handlers (…
s1gr1d Sep 28, 2026
f6953fc
test(node): Assert absence of PII attributes in OpenAI integration te…
itz-puneet Sep 28, 2026
8882b8a
test(effect): Make effect/http stable (#24781)
JPeer264 Sep 28, 2026
c4c57cb
feat(server-utils): Add TypeSafe integration (#24703)
andreiborza Sep 28, 2026
9509c9d
test(e2e): Add pageload connection test for cache component apps (#24…
s1gr1d Sep 28, 2026
3d838de
chore: Add external contributor to CHANGELOG.md (#24782)
javascript-sdk-gitflow[bot] Sep 28, 2026
06a2d11
test(bun): Exclude Typesafe tests in bun (#24785)
JPeer264 Sep 28, 2026
9e7c3a6
test(nuxt): Fix Nuxt 5 E2E by pinning @nuxt/cli (#24788)
s1gr1d Sep 28, 2026
600851e
chore: Update base node version to 24.21.0 (#24343)
JPeer264 Sep 28, 2026
69a6783
test(deno): Run all Node integration suites on Deno (#24611)
JPeer264 Sep 28, 2026
e417276
fix(bun): Keep diagnostics channel subscriptions alive (#24632)
JPeer264 Sep 28, 2026
378cccb
feat(browser): Add `onError` callback to `showReportDialog` (#24780)
andreiborza Sep 28, 2026
bc94aca
test(cloudflare): Add e2e test app for `@cloudflare/think` (#24660)
RulaKhaled Sep 28, 2026
20dfe1b
fix(nextjs): Limit Turbopack orchestrion loader to instrumented packa…
chargome Sep 28, 2026
4a0c10e
feat(server-utils): Auto-instrument MCP servers via orchestrion (#24529)
mydea Sep 28, 2026
b0a7cc6
fix(nextjs): Don't prepend basePath to absolute router navigation URL…
Lms24 Sep 28, 2026
54e8e64
fix(server-utils): Use Bun-safe diagnostics channel wrappers in MCP i…
andreiborza Sep 28, 2026
816e546
meta(changelog): Update changelog for 11.1.0
andreiborza Sep 28, 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 .agents/skills/add-ai-integration/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ What the reference files won't tell you:
- [ ] Instrumentation in `src/ai/`, integration in `src/integrations/`, registered in `getTracingIntegrations()` (LangChain first)
- [ ] Exported from `packages/server-utils/src/index.ts`, re-exported from the supported runtime packages
- [ ] E2E tests in `dev-packages/node-integration-tests/suites/tracing/{provider}/` (and `cloudflare-integration-tests/` if supported)
- [ ] 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`)
- [ ] Ops and attributes from `@sentry/conventions`, op derived via `getGenAiSpanOp()`
- [ ] Recording gated on `resolveAIRecordingOptions()`; no truncation, no token rollup
- [ ] JSDoc names the channels subscribed to, the supported SDK versions, and — for Pattern 2 — that it requires the Sentry runtime hook or bundler plugin
Expand Down
3 changes: 2 additions & 1 deletion .agents/skills/vendor-otel/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ grep "import.*from '" <file> | grep -v "@opentelemetry\|'\./\|@sentry\|'util'\|'

Check test coverage and report gaps:

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

Expand Down
3 changes: 3 additions & 0 deletions .agents/skills/write-tests/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,9 @@ describe('patchRoute', () => {
Node integration tests (`dev-packages/node-integration-tests/`) use `createEsmAndCjsTests` to
run a real Node scenario file and assert on captured Sentry envelopes.

Other runtimes run these suites too. A new suite must pass there or be excluded; see "Other
Runtimes" in `dev-packages/node-integration-tests/README.md`.

### Minimize `test()` calls — each one spawns a separate Node process

**This is the opposite of the Playwright rule.** In Playwright, each `test()` is cheap — use
Expand Down
7 changes: 3 additions & 4 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
/dev-packages/browser-integration-tests/ @getsentry/team-javascript-sdks-browser

# Node/server runtimes and related packages
# TEMP: whole JS SDK team reviews orchestrion work; revert to team-javascript-sdks-server after
/packages/node/ @getsentry/team-javascript-sdks
/packages/server-runtime-injection/ @getsentry/team-javascript-sdks
/packages/server-utils/ @getsentry/team-javascript-sdks
/packages/node/ @getsentry/team-javascript-sdks-server
/packages/server-runtime-injection/ @getsentry/team-javascript-sdks-server
/packages/server-utils/ @getsentry/team-javascript-sdks-server
/packages/node-native/ @getsentry/team-javascript-sdks-server
/packages/profiling-node/ @getsentry/team-javascript-sdks-server
/packages/opentelemetry/ @getsentry/team-javascript-sdks-server
Expand Down
24 changes: 0 additions & 24 deletions .github/FLAKY_CI_FAILURE_TEMPLATE.md

This file was deleted.

1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/flaky.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ body:
- Timeout
- Assertion failure
- Other / Unknown
default: 1
validations:
required: true
- type: input
Expand Down
42 changes: 17 additions & 25 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -783,7 +783,7 @@ jobs:
job_node_integration_tests:
name:
Node (${{ matrix.node }})${{ (matrix.typescript && format(' (TS {0})', matrix.typescript)) || '' }} Integration
Tests
Tests (${{ matrix.shard }}/3)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_node_integration == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-24.04
Expand All @@ -792,12 +792,20 @@ jobs:
fail-fast: false
matrix:
node: [20.19, 22, 24, 26]
shard: [1, 2, 3]
typescript:
- false
include:
# Only check typescript for latest version (to streamline CI)
- node: 24
typescript: '5.0'
shard: 1
- node: 24
typescript: '5.0'
shard: 2
- node: 24
typescript: '5.0'
shard: 3
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand Down Expand Up @@ -832,14 +840,18 @@ jobs:

- name: Run integration tests
working-directory: dev-packages/node-integration-tests
run: yarn test
run: yarn test --shard=${{ matrix.shard }}/3

job_cloudflare_integration_tests:
name: Cloudflare Integration Tests
name: Cloudflare Integration Tests (${{ matrix.shard }}/2)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_cloudflare_integration == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
shard: [1, 2]
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand All @@ -856,7 +868,7 @@ jobs:

- name: Run integration tests
working-directory: dev-packages/cloudflare-integration-tests
run: yarn test
run: yarn test --shard=${{ matrix.shard }}/2

job_bundler_plugin_integration_tests:
name: Bundler Plugin Integration Tests (Node ${{ matrix.node }})
Expand Down Expand Up @@ -1261,28 +1273,8 @@ jobs:
# Always run this, even if a dependent job failed
if: always()
runs-on: ubuntu-24.04
permissions:
issues: write
checks: read
permissions: {}
steps:
- name: Check out current commit
if: github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
uses: actions/checkout@v7
with:
sparse-checkout: |
.github
scripts

- name: Create issues for failed jobs
if: github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
uses: actions/github-script@v9
with:
script: |
const { default: run } = await import(
`${process.env.GITHUB_WORKSPACE}/scripts/report-ci-failures.mjs`
);
await run({ github, context, core });

- name: Check for failures
if: cancelled() || contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cleanup-e2e-workers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ jobs:

if ! output=$(npx --yes wrangler@4 delete --name "$WORKER" --force 2>&1); then
echo "$output"
# 10007 means the worker does not exist, i.e. the PR never ran the optional E2E job.
echo "$output" | grep -q 'code: 10007' || exit 1
# 10007 and 10090 mean the worker does not exist, e.g. the PR never ran the optional E2E job.
echo "$output" | grep -Eq 'code: (10007|10090)\]' || exit 1
fi
35 changes: 35 additions & 0 deletions .github/workflows/weekly-flaky-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: 'CI: Weekly flaky tests'

on:
workflow_dispatch:
schedule:
- cron: '0 7 * * 1'
timezone: 'Europe/Vienna'

permissions:
contents: read
actions: read
checks: read

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
report:
name: Weekly flaky test report
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Analyze the last seven days of develop CI
uses: actions/github-script@v9
with:
retries: 3
script: |
const { default: run } = await import(
`${process.env.GITHUB_WORKSPACE}/scripts/weekly-flaky-tests.mjs`
);
await run({ github, context, core });
Loading
Loading