feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome
, '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

feat(deno): Export logs API from Deno SDK - #19313

Merged
sergical merged 3 commits into
developfrom
feat/deno-logs
Feb 16, 2026
Merged

feat(deno): Export logs API from Deno SDK#19313
sergical merged 3 commits into
developfrom
feat/deno-logs

Conversation

@sergical

@sergicalsergical commented Feb 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Re-export logger and consoleLoggingIntegration from @sentry/core in the Deno SDK
  • Add integration test verifying logger.info() produces a log envelope item with correct level and body

Test plan

  • yarn build:dev:filter @sentry/deno — builds successfully
  • cd packages/deno && yarn test — all 13 tests pass
  • eslint packages/deno/src/index.ts — no lint errors

🤖 Generated with Claude Code

Closes#19314 (added automatically)

@github-actions

github-actionsBot commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 14 uncovered lines.
✅ Project coverage is 83.13%. Comparing base (base) to head (head).

Files with missing lines (2)
FilePatch %Lines
mute.js79.10%⚠️ 14 Missing and 7 partials
etoa.js100.00%⚠️ 1 partials
Coverage diff
@@ Coverage Diff @@## main #PR +/-##
==========================================
+ Coverage 61.39% 83.13% +21.74%
==========================================
Files 789 2 -787
Lines 43246 83 -43163
Branches 8353 57 -8296
==========================================
+ Hits 26558 69 -26489- Misses 16688 14 -16674- Partials 83 8 -75

Generated by Codecov Action

@chargomechargome self-assigned this Feb 13, 2026

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we will need to adapt is the flushing logic for logs for server exits. The node equivalent is process.on('beforeExit') in the node-core package

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: Please export the according Log and LogSeverityLevel types here too

/** @inheritDoc */
// @ts-expect-error - PromiseLike is a subset of Promise
public async close(timeout?: number | undefined): PromiseLike<boolean> {
if (this._logOnExitFlushListener) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Couldn't we just flush in here? 🤔

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the clanker was basing the implementation on the node-core implementation where he said

The same pattern exists in packages/node-core/src/sdk/client.ts — its close() also only removes the beforeExit listener without flushing.

should we update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call, both are fine for me!

@sergicalsergicalFeb 16, 2026

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the cleanest fix is to add _INTERNAL_flushLogsBuffer(this) to the base Client.close() in packages/core so all SDKs (node-core, deno, bun, cloudflare) benefit. Tracking in a separate issue so we can merge this as-is.

#19347

sergicaland others added 3 commits February 16, 2026 11:16
Re-export `logger` and `consoleLoggingIntegration` from `@sentry/core`
so Deno users can use `Sentry.logger.info(...)` and capture console
calls as Sentry logs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Export `Log` and `LogSeverityLevel` types from the Deno SDK. Add log
buffer flushing on server exit via `globalThis.addEventListener('unload')`
(Deno's equivalent of Node's `process.on('beforeExit')`), matching the
pattern in node-core's NodeClient. Also adds `server.address` attribute
to logs via `beforeCaptureLog` hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sergical
sergical merged commit bd59033 into developFeb 16, 2026
36 checks passed
@sergical
sergical deleted the feat/deno-logs branch February 16, 2026 22:08
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.

feat(deno): Export logs API from Deno SDK

2 participants

@sergical@chargome