Skip to content
Closed
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
edc5643
chore: Ignore dependabot, prepare-release and Gitflow for PR referenc…
JPeer264 Dec 2, 2025
f271bbb
feat: update eslint to v8 (#18264)
JPeer264 Dec 2, 2025
20c7c8f
chore(ci): Add an initial delay to let gitflow ci start before checki…
andreiborza Dec 3, 2025
c8d8d21
chore(e2e): Pin react router framework test apps (#18390)
chargome Dec 3, 2025
3f666da
meta(changelog): Update changelog for 10.28.0
andreiborza Dec 2, 2025
21b0e48
meta(changelog): Update changelog for 10.28.0
andreiborza Dec 2, 2025
55914d3
release: 10.28.0
getsentry-bot Dec 2, 2025
c3cd039
chore(tanstackstart-react): clean up re-exported types (#18393)
nicohrubec Dec 3, 2025
66c1216
Merge pull request #18387 from getsentry/manual-sync-dev
andreiborza Dec 3, 2025
e559d73
fix(logs): Add support for `msg` in pino integration (#18389)
chargome Dec 3, 2025
2f134c2
test(tanstackstart-react): Set up E2E test application (#18358)
nicohrubec Dec 3, 2025
f961771
ref(core): Avoid looking up openai integration options (#17695)
mydea Dec 3, 2025
df4c541
feat(solid|solidstart): Bump accepted @solidjs/router range (#18395)
andreiborza Dec 3, 2025
65f5006
fix(tracing): Add missing attributes in vercel-ai spans (#18333)
isaacs Nov 26, 2025
b6eb205
fix(node): Include system message in anthropic-ai messages span (#18332)
isaacs Nov 25, 2025
862f415
test(nuxt): Relax captured unhandled error assertion (#18397)
logaretm Dec 4, 2025
5091d6f
meta(changelog): Update changelog for 10.29.0
andreiborza Dec 4, 2025
da6f79d
meta(changelog): Update changelog for 10.29.0
andreiborza Dec 4, 2025
09d96bf
Merge branch 'master' into prepare-release/10.29.0
andreiborza Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/create-issue-for-unreferenced-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ concurrency:
jobs:
check_for_issue_reference:
runs-on: ubuntu-latest
if: |
!contains(github.event.pull_request.labels.*.name, 'Dev: Gitflow')
&& !startsWith(github.event.pull_request.head.ref, 'external-contributor/')
&& !startsWith(github.event.pull_request.head.ref, 'prepare-release/')
&& !startsWith(github.event.pull_request.head.ref, 'dependabot/')
steps:
- name: Check PR Body and Title for Issue Reference
uses: actions/github-script@v8
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/gitflow-merge-conflict.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
uses: actions/github-script@v8
with:
script: |
const initialDelay = 60_000; // Wait 1 minute before first check to let CI start
const retryInterval = 30_000;
const maxRetries = 10; // (30 seconds * 10 retries) = 5 minutes

Expand All @@ -39,6 +40,10 @@ jobs:
let attempt = 0;
let mergeable = null;

// Wait before first check to give CI time to start
console.log(`Waiting ${initialDelay/1000} seconds before first check to let CI start...`);
await sleep(initialDelay);

while (attempt < maxRetries) {
attempt++;
console.log(`Attempt ${attempt}/${maxRetries}: Checking if PR is mergeable...`);
Expand Down
62 changes: 61 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,35 @@

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

## 10.29.0

### Important Changes

- **feat(core): Make `matcher` parameter optional in `makeMultiplexedTransport` ([#10798](https://github.com/getsentry/sentry-javascript/pull/10798))** .
- **feat(solid|solidstart): Bump accepted @solidjs/router range ([#18395](https://github.com/getsentry/sentry-javascript/pull/18395))**

We expanded the supported version range for `@solidjs/router` to include `0.14.x` and `0.15.x` versions.

### Other Changes

- fix(logs): Add support for `msg` in pino integration ([#18389](https://github.com/getsentry/sentry-javascript/pull/18389))
- fix(node): Include system message in anthropic-ai messages span ([#18332](https://github.com/getsentry/sentry-javascript/pull/18332))
- fix(tracing): Add missing attributes in vercel-ai spans ([#18333](https://github.com/getsentry/sentry-javascript/pull/18333))

<details>
<summary> <strong>Internal Changes</strong> </summary>

- chore(tanstackstart-react): clean up re-exported types ([#18393](https://github.com/getsentry/sentry-javascript/pull/18393))
- ref(core): Avoid looking up openai integration options ([#17695](https://github.com/getsentry/sentry-javascript/pull/17695))
- test(nuxt): Relax captured unhandled error assertion ([#18397](https://github.com/getsentry/sentry-javascript/pull/18397))
- test(tanstackstart-react): Set up E2E test application ([#18358](https://github.com/getsentry/sentry-javascript/pull/18358))

</details>

## 10.28.0

### Important Changes

- **feat(core): Make `matcher` parameter optional in `makeMultiplexedTransport` ([#10798](https://github.com/getsentry/sentry-javascript/pull/10798))**

The `matcher` parameter in `makeMultiplexedTransport` is now optional with a sensible default. This makes it much easier to use the multiplexed transport for sending events to multiple DSNs based on runtime configuration.

Expand Down Expand Up @@ -69,6 +95,40 @@ The default matcher looks for routing information in `event.extra[MULTIPLEXED_TR

This release adds support for `cacheComponents` on turbopack builds. We are working on adding support for this feature in webpack builds as well.

### Other Changes

- feat: Publish AWS Lambda Layer for Node 24 ([#18327](https://github.com/getsentry/sentry-javascript/pull/18327))
- feat(browser): Expose langchain instrumentation ([#18342](https://github.com/getsentry/sentry-javascript/pull/18342))
- feat(browser): Expose langgraph instrumentation ([#18345](https://github.com/getsentry/sentry-javascript/pull/18345))
- feat(cloudflare): Allow specifying a custom fetch in Cloudflare transport options ([#18335](https://github.com/getsentry/sentry-javascript/pull/18335))
- feat(core): Add `isolateTrace` option to `Sentry.withMonitor()` ([#18079](https://github.com/getsentry/sentry-javascript/pull/18079))
- feat(deps): bump @sentry/webpack-plugin from 4.3.0 to 4.6.1 ([#18272](https://github.com/getsentry/sentry-javascript/pull/18272))
- feat(nextjs): Add cloudflare `waitUntil` detection ([#18336](https://github.com/getsentry/sentry-javascript/pull/18336))
- feat(node): Add LangChain v1 support ([#18306](https://github.com/getsentry/sentry-javascript/pull/18306))
- feat(remix): Add parameterized transaction naming for routes ([#17951](https://github.com/getsentry/sentry-javascript/pull/17951))
- fix(cloudflare): Keep http root span alive until streaming responses are consumed ([#18087](https://github.com/getsentry/sentry-javascript/pull/18087))
- fix(cloudflare): Wait for async events to finish ([#18334](https://github.com/getsentry/sentry-javascript/pull/18334))
- fix(core): `continueTrace` doesn't propagate given trace ID if active span exists ([#18328](https://github.com/getsentry/sentry-javascript/pull/18328))
- fix(node-core): Handle custom scope in log messages without parameters ([#18322](https://github.com/getsentry/sentry-javascript/pull/18322))
- fix(opentelemetry): Ensure Sentry spans don't leak when tracing is disabled ([#18337](https://github.com/getsentry/sentry-javascript/pull/18337))
- fix(react-router): Use underscores in trace origin values ([#18351](https://github.com/getsentry/sentry-javascript/pull/18351))
- chore(tanstackstart-react): Export custom inits from tanstackstart-react ([#18369](https://github.com/getsentry/sentry-javascript/pull/18369))
- chore(tanstackstart-react)!: Remove empty placeholder implementations ([#18338](https://github.com/getsentry/sentry-javascript/pull/18338))

<details>
<summary><strong>Internal Changes</strong></summary>

- chore: Allow URLs as issue ([#18372](https://github.com/getsentry/sentry-javascript/pull/18372))
- chore(changelog): Add entry for [#18304](https://github.com/getsentry/sentry-javascript/pull/18304) ([#18329](https://github.com/getsentry/sentry-javascript/pull/18329))
- chore(ci): Add action to track all PRs as issues ([#18363](https://github.com/getsentry/sentry-javascript/pull/18363))
- chore(github): Adjust `BUGBOT.md` rules to flag invalid op and origin values during review ([#18352](https://github.com/getsentry/sentry-javascript/pull/18352))
- ci: Add action to create issue on gitflow merge conflicts ([#18319](https://github.com/getsentry/sentry-javascript/pull/18319))
- ci(deps): bump actions/checkout from 5 to 6 ([#18268](https://github.com/getsentry/sentry-javascript/pull/18268))
- ci(deps): bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 ([#18361](https://github.com/getsentry/sentry-javascript/pull/18361))
- test(cloudflare): Add typechecks for cloudflare-worker e2e test ([#18321](https://github.com/getsentry/sentry-javascript/pull/18321))

</details>

## 10.27.0

### Important Changes
Expand Down
4 changes: 2 additions & 2 deletions dev-packages/browser-integration-tests/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry-internal/browser-integration-tests",
"version": "10.27.0",
"version": "10.28.0",
"main": "index.js",
"license": "MIT",
"engines": {
Expand Down Expand Up @@ -43,7 +43,7 @@
"@babel/preset-typescript": "^7.16.7",
"@playwright/test": "~1.53.2",
"@sentry-internal/rrweb": "2.34.0",
"@sentry/browser": "10.27.0",
"@sentry/browser": "10.28.0",
"@supabase/supabase-js": "2.49.3",
"axios": "^1.12.2",
"babel-loader": "^8.2.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ export function collectReplayRequests(
const replayEvents: ReplayEvent[] = [];
const replayRecordingSnapshots: RecordingSnapshot[] = [];

// eslint-disable-next-line @typescript-eslint/no-floating-promises
const promise = page.waitForResponse(res => {
const req = res.request();

Expand Down
2 changes: 1 addition & 1 deletion dev-packages/bundle-analyzer-scenarios/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry-internal/bundle-analyzer-scenarios",
"version": "10.27.0",
"version": "10.28.0",
"description": "Scenarios to test bundle analysis with",
"repository": "git://github.com/getsentry/sentry-javascript.git",
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/dev-packages/bundle-analyzer-scenarios",
Expand Down
4 changes: 2 additions & 2 deletions dev-packages/bundler-tests/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry-internal/bundler-tests",
"version": "10.27.0",
"version": "10.28.0",
"description": "Bundler tests for Sentry Browser SDK",
"repository": "git://github.com/getsentry/sentry-javascript.git",
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/bundler-tests",
Expand All @@ -13,7 +13,7 @@
},
"dependencies": {
"@rollup/plugin-node-resolve": "^15.2.3",
"@sentry/browser": "10.27.0",
"@sentry/browser": "10.28.0",
"rollup": "^4.0.0",
"vite": "^5.0.0",
"vitest": "^3.2.4",
Expand Down
2 changes: 1 addition & 1 deletion dev-packages/clear-cache-gh-action/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@sentry-internal/clear-cache-gh-action",
"description": "An internal Github Action to clear GitHub caches.",
"version": "10.27.0",
"version": "10.28.0",
"license": "MIT",
"engines": {
"node": ">=18"
Expand Down
6 changes: 3 additions & 3 deletions dev-packages/cloudflare-integration-tests/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry-internal/cloudflare-integration-tests",
"version": "10.27.0",
"version": "10.28.0",
"license": "MIT",
"engines": {
"node": ">=18"
Expand All @@ -14,11 +14,11 @@
},
"dependencies": {
"@langchain/langgraph": "^1.0.1",
"@sentry/cloudflare": "10.27.0"
"@sentry/cloudflare": "10.28.0"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20250922.0",
"@sentry-internal/test-utils": "10.27.0",
"@sentry-internal/test-utils": "10.28.0",
"eslint-plugin-regexp": "^1.15.0",
"vitest": "^3.2.4",
"wrangler": "4.22.0"
Expand Down
2 changes: 1 addition & 1 deletion dev-packages/e2e-tests/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry-internal/e2e-tests",
"version": "10.27.0",
"version": "10.28.0",
"license": "MIT",
"private": true,
"scripts": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@
"isbot": "^5.1.22",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "^7.6.0",
"react-router-dom": "^7.6.0"
"react-router": "7.9.6",
"react-router-dom": "7.9.6"
},
"devDependencies": {
"@graphql-codegen/cli": "5.0.2",
"@playwright/test": "~1.53.2",
"@react-router/dev": "7.6.0",
"@react-router/fs-routes": "7.6.0",
"@react-router/dev": "7.9.6",
"@react-router/fs-routes": "7.9.6",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@shopify/cli": "3.80.4",
"@shopify/hydrogen-codegen": "^0.3.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,11 @@ test.describe('Server Middleware Instrumentation', () => {
type: 'Error',
mechanism: expect.objectContaining({
handled: false,
type: 'auto.middleware.nuxt',
// Type changes depending on whether it is being wrapped by Nitro or not
// This is a timing problem, sometimes Nitro can capture the error first, and sometimes it can't
// If nitro captures the error first, the type will be 'chained'
// If Sentry captures the error first, the type will be 'auto.middleware.nuxt'
type: expect.stringMatching(/^(auto\.middleware\.nuxt|chained)$/),
}),
}),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router": "^7.1.5",
"@react-router/node": "^7.1.5",
"@react-router/serve": "^7.1.5",
"react-router": "7.9.6",
"@react-router/node": "7.9.6",
"@react-router/serve": "7.9.6",
"@sentry/react-router": "latest || *",
"isbot": "^5.1.17"
},
"devDependencies": {
"@types/react": "18.3.1",
"@types/react-dom": "18.3.1",
"@types/node": "^20",
"@react-router/dev": "^7.1.5",
"@react-router/dev": "7.9.6",
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils",
"typescript": "^5.6.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
},
"dependencies": {
"@sentry/react-router": "latest || *",
"@react-router/node": "^7.5.3",
"@react-router/serve": "^7.5.3",
"@react-router/node": "7.9.6",
"@react-router/serve": "7.9.6",
"isbot": "^5.1.27",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router": "^7.1.5"
"react-router": "7.9.6"
},
"devDependencies": {
"@playwright/test": "~1.53.2",
"@react-router/dev": "^7.5.3",
"@react-router/dev": "7.9.6",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@tailwindcss/vite": "^4.1.4",
"@types/node": "^20",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.13.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.0.2",
"@solidjs/testing-library": "^0.8.7",
"@testing-library/jest-dom": "^6.4.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.13.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.0.2",
"@solidjs/testing-library": "^0.8.7",
"@testing-library/jest-dom": "^6.4.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.13.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.0.2",
"@solidjs/testing-library": "^0.8.7",
"@testing-library/jest-dom": "^6.4.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.13.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.0.2",
"@solidjs/testing-library": "^0.8.7",
"@testing-library/jest-dom": "^6.4.2",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@sentry:registry=http://127.0.0.1:4873
@sentry-internal:registry=http://127.0.0.1:4873
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import * as Sentry from '@sentry/tanstackstart-react';

Sentry.init({
environment: 'qa', // dynamic sampling bias to keep transactions
dsn: process.env.E2E_TEST_DSN,
tunnel: `http://localhost:3031/`, // proxy server
tracesSampleRate: 1,
transportOptions: {
// We expect the app to send a lot of events in a short time
bufferSize: 1000,
},
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"name": "tanstackstart-react",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"build": "vite build && cp instrument.server.mjs .output/server",
"start": "node --import ./.output/server/instrument.server.mjs .output/server/index.mjs",
"test": "playwright test",
"clean": "npx rimraf node_modules pnpm-lock.yaml",
"test:build": "pnpm install && pnpm build",
"test:assert": "pnpm test"
},
"dependencies": {
"@sentry/tanstackstart-react": "latest || *",
"@tanstack/react-start": "^1.139.12",
"@tanstack/react-router": "^1.139.12",
"react": "^19.2.0",
"react-dom": "^19.2.0"
},
"devDependencies": {
"@types/react": "^19.2.0",
"@types/react-dom": "^19.2.0",
"@types/node": "^24.10.0",
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"@vitejs/plugin-react-swc": "^3.5.0",
"typescript": "^5.9.0",
"vite": "7.2.0",
"vite-tsconfig-paths": "^5.1.4",
"nitro": "^3.0.0",
"@playwright/test": "~1.53.2",
"@sentry-internal/test-utils": "link:../../../test-utils"
},
"volta": {
"extends": "../../package.json"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { getPlaywrightConfig } from '@sentry-internal/test-utils';

const config = getPlaywrightConfig({
startCommand: `pnpm start`,
port: 3000,
});

export default config;
Loading