meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

meta(changelog): Update changelog for 9.15.0 - #16162

Merged
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0
Apr 29, 2025
Merged

meta(changelog): Update changelog for 9.15.0#16162
chargome merged 18 commits into
masterfrom
prepare-release/9.15.0

Conversation

@chargome

Copy link
Copy Markdown
Member

No description provided.

github-actionsBotand others added 18 commits April 23, 2025 16:27
[Gitflow] Merge master into develop
chore: Improve docstrings for options and add defaults
)
Before submitting a pull request, please take a look at our
[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:
- [ X ] If you've added code that should be tested, please add tests.
- [ X ] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).
Exports the `wrapMcpServerWithSentry` which is our MCP server
instrumentation from all the server packages.
Fixes#16111
Adding Node 21 to the accepted version range for `module.register` as it
is already supported (https://nodejs.org/docs/v21.0.0/api/module.html).
This also causes the customization hook not to call register (maybe a
reason why some packages in issue
#14202 are not
instrumented):
https://github.com/getsentry/sentry-javascript/blob/59094afb6ab53ac33b87b83f70eea9d13e4c2291/packages/node/src/sdk/initOtel.ts#L45-L65
--- Additionally, the above mentioned issue
#14202 shows the
following warning although it's using v21:
```
[Sentry] You are using Node.js in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.
```
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #16106
Co-authored-by: s1gr1d <32902192+s1gr1d@users.noreply.github.com>
…16135)
Extracted out of
#16134
During that refactor, a bunch of stuff failed. The reason for this is
that we relied on a side-effect mock in `use-fake-timers` utility, which
is really not ideal at all.
So this refactors this to instead make this explicit, as a side-effect
import on the top of the test files. Then we can just use
`vi.useFakeTimers()` normally.
Vite 6 is more strict with exports. I changed the `exports` section a
bit to make it compatible.
closes#16120
---------
Co-authored-by: Onur Temizkan <onur@narval.co.uk>
Docs follow-up for this PR:
#14831
---------
Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
Resolves: #16075
We used to allow rewrapping of the root loader when we had a separate
Express adapter, where we could not determine the instrumentation order.
Now that we don't have it anymore, we can remove this. Still, can't
reproduce the original issue running e2e test apps under load. But it's
clear that's what caused it.
We had a bunch of import/export related eslint rules, but did not
actually apply them to anything 🤦 this PR changes this, and also applies
all the rules to all the files.
The vast majority of the changes is just auto-fixes, but there are a few
small manual things that were needed - these are in separate commits,
it's probably easier to look at them separately!
It also updates prettier to apply to dev-packages.
I was always annoyed that this was not properly highlighted by VSCode,
so I looked into this a bit, and actually refactored it a bit to be more
type-safe in the vitest world we now live in :)
I got rid of `toHaveSentReplay` in favor of simply always using
`toHaveLastSentReplay` (which we already used almost everywhere). I also
moved the type definition into a separate file and ensured it actually
works, at leas tin my vscode/cursor instance. This also kind of surfaced
some type errors that existed in tests, but have not been shown (??) for
whatever reason... no idea what is going on there.
…6158)
Seems like `@shopify/mini-oxygen@3.2.1` breaks something. I somewhat
suspect that they bumped a vite version but I didn't find a changelog
yet
This should unblock the PRs we want to include in Today's release
Update: Shopify/hydrogen#2863 likely caused this
- Closes#16137 With ESM patching you need to retain the original module and just
overwrite the exports you want to wrap. This usually works for CJS too
but unfortunately, the CJS exports of `ai` only have getters and no
setters so this route is not possible.
This PR changes the patching so that it works slightly differently for
ESM and CJS. The original code that outputs a newly created object is
retained for CJS but for ESM we use the preferred route of replacing the
required exports.
To detect whether the module we're patching is an ES module we check
`Object.prototype.toString.call(moduleExports) === '[object Module]'`
which is documented
[here](https://tc39.es/ecma262/#sec-module-namespace-objects).
This PR also adds an ESM test for `ai`.
@chargomechargome self-assigned this Apr 29, 2025
@chargome
chargome requested review from a team as code ownersApril 29, 2025 14:53
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.28 KBaddedadded
@sentry/browser - with treeshaking flags23.1 KBaddedadded
@sentry/browser (incl. Tracing)36.93 KBaddedadded
@sentry/browser (incl. Tracing, Replay)74.1 KBaddedadded
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags67.47 KBaddedadded
@sentry/browser (incl. Tracing, Replay with Canvas)78.76 KBaddedadded
@sentry/browser (incl. Tracing, Replay, Feedback)90.58 KBaddedadded
@sentry/browser (incl. Feedback)39.68 KBaddedadded
@sentry/browser (incl. sendFeedback)27.9 KBaddedadded
@sentry/browser (incl. FeedbackAsync)32.67 KBaddedadded
@sentry/react25.09 KBaddedadded
@sentry/react (incl. Tracing)38.93 KBaddedadded
@sentry/vue27.5 KBaddedadded
@sentry/vue (incl. Tracing)38.69 KBaddedadded
@sentry/svelte23.31 KBaddedadded
CDN Bundle24.49 KBaddedadded
CDN Bundle (incl. Tracing)36.96 KBaddedadded
CDN Bundle (incl. Tracing, Replay)72 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback)77.3 KBaddedadded
CDN Bundle - uncompressed71.5 KBaddedadded
CDN Bundle (incl. Tracing) - uncompressed109.33 KBaddedadded
CDN Bundle (incl. Tracing, Replay) - uncompressed220.62 KBaddedadded
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed233.15 KBaddedadded
@sentry/nextjs (client)40.51 KBaddedadded
@sentry/sveltekit (client)37.41 KBaddedadded
@sentry/node143.4 KBaddedadded
@sentry/node - without tracing96.49 KBaddedadded
@sentry/aws-serverless120.82 KBaddedadded

@chargome
chargome merged commit e57cc0a into masterApr 29, 2025
@chargome
chargome deleted the prepare-release/9.15.0 branch April 29, 2025 15:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@chargome@Lms24@AbhiPrasad@AntoineDuComptoirDesPharmacies@mydea@s1gr1d@HazAT@onurtemizkan@timfish