Skip to content

feat(node): Add build-time opt-out for runtime channel injection - #23475

Draft
mydea wants to merge 1 commit into
fn/default-framework-integrationsfrom
fn/channel-injection-build-flag
Draft

feat(node): Add build-time opt-out for runtime channel injection#23475
mydea wants to merge 1 commit into
fn/default-framework-integrationsfrom
fn/channel-injection-build-flag

Conversation

@mydea

@mydea mydea commented Aug 21, 2026

Copy link
Copy Markdown
Member

Stacked on #23473.

Adds a build-time opt-out for the Node SDK's runtime diagnostics-channel injection, complementing the runtime enableRuntimeChannelInjection option from the base PR.

  • New __SENTRY_CHANNEL_INJECTION__ treeshaking flag, mirroring __SENTRY_TRACING__: when a bundler text-replaces it with false, the registerDiagnosticsChannelInjection() / detectOrchestrionSetup() block in init is dropped, and its transitive orchestrion-register code tree-shakes away.
  • Exposed through the bundler plugins' bundleSizeOptimizations.excludeChannelInjection, which maps to __SENTRY_CHANNEL_INJECTION__ = false via the same mechanism as excludeTracing.
  • The gate now reads both the build flag and the runtime option: (typeof __SENTRY_CHANNEL_INJECTION__ === 'undefined' || __SENTRY_CHANNEL_INJECTION__) && options.enableRuntimeChannelInjection !== false.

🤖 Generated with Claude Code

} finally {
vi.unstubAllGlobals();
}
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Feat PR missing integration tests

Medium Severity

This feat PR only adds a unit test for the __SENTRY_CHANNEL_INJECTION__ gate. Per the testing conventions, feat PRs need at least one integration or E2E test. The new bundleSizeOptimizations.excludeChannelInjection path also is not covered by the existing bundler-plugin bundle-size-optimizations fixtures that already assert the other exclude flags.

Additional Locations (2)
Fix in Cursor Fix in Web

Triggered by project rule: PR Review Guidelines for Cursor Bot

Reviewed by Cursor Bugbot for commit 68993db. Configure here.

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 30.3 kB - -
@sentry/browser - with treeshaking flags 28.47 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 26.81 kB - -
@sentry/browser (incl. Tracing) 48.58 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 48.59 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.46 kB - -
@sentry/browser (incl. Tracing, Replay) 87.98 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 77.36 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 92.7 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 105.39 kB - -
@sentry/browser (incl. Feedback) 47.65 kB - -
@sentry/browser (incl. sendFeedback) 35.13 kB - -
@sentry/browser (incl. FeedbackAsync) 40.28 kB - -
@sentry/browser (incl. Metrics) 31.24 kB - -
@sentry/browser (incl. Logs) 31.52 kB - -
@sentry/browser (incl. Metrics & Logs) 32.15 kB - -
@sentry/react 32.09 kB - -
@sentry/react (incl. Tracing) 50.77 kB - -
@sentry/vue 35.34 kB - -
@sentry/vue (incl. Tracing) 50.54 kB - -
@sentry/svelte 30.33 kB - -
CDN Bundle 31.61 kB - -
CDN Bundle (incl. Tracing) 48.9 kB - -
CDN Bundle (incl. Logs, Metrics) 33.8 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 50.82 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 74.31 kB - -
CDN Bundle (incl. Tracing, Replay) 86.48 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 88.31 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 92.19 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 94.12 kB - -
CDN Bundle - uncompressed 93.84 kB - -
CDN Bundle (incl. Tracing) - uncompressed 146.75 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 100.14 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 152.44 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 229.08 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 266.01 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 271.68 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 279.71 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 285.37 kB - -
@sentry/nextjs (client) 53.29 kB - -
@sentry/sveltekit (client) 49 kB - -
@sentry/core/server 65.38 kB - -
@sentry/core/browser 51.72 kB - -
@sentry/node 117.35 kB -0.03% -24 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection) 85.08 kB - -
⛔️ @sentry/node - without tracing (max: 87 kB) 87.35 kB +6.68% +5.46 kB 🔺
@sentry/aws-serverless 95.62 kB +4.74% +4.33 kB 🔺
@sentry/cloudflare (withSentry) - minified 213.98 kB - -
@sentry/cloudflare (withSentry) 528.93 kB - -

View base workflow run

Introduce a `__SENTRY_CHANNEL_INJECTION__` treeshaking flag (mirroring `__SENTRY_TRACING__`)
that removes the runtime diagnostics-channel injection when text-replaced with `false`, and
expose it through the bundler plugins' `bundleSizeOptimizations.excludeChannelInjection`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydea force-pushed the fn/channel-injection-build-flag branch from c6d9d7f to 1d27eb4 Compare August 21, 2026 11:02

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 1d27eb4. Configure here.

// Install as early as possible, before the app imports its instrumented modules.
const useChannelInjection =
(typeof __SENTRY_CHANNEL_INJECTION__ === 'undefined' || __SENTRY_CHANNEL_INJECTION__) &&
options.enableRuntimeChannelInjection !== false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing integration test for feat

Medium Severity

Flagging per the testing conventions in the PR review guidelines: this feat only adds a unit test that stubs __SENTRY_CHANNEL_INJECTION__. There is no integration or E2E coverage for bundleSizeOptimizations.excludeChannelInjection wiring the define through the bundler plugins. The existing bundle-size-optimizations fixtures under dev-packages/bundler-plugin-integration-tests already exercise the other flags and were not extended for this one.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by project rule: PR Review Guidelines for Cursor Bot

Reviewed by Cursor Bugbot for commit 1d27eb4. Configure here.

Sign up for free to 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.

1 participant