Skip to content

feat(effect): Add client/server entrypoints without functionality#19649

Merged
JPeer264 merged 2 commits intojp/add-effect-sdkfrom
jp/add-effect-sdk-stack/2
Mar 5, 2026
Merged

feat(effect): Add client/server entrypoints without functionality#19649
JPeer264 merged 2 commits intojp/add-effect-sdkfrom
jp/add-effect-sdk-stack/2

Conversation

@JPeer264
Copy link
Member

@JPeer264 JPeer264 commented Mar 5, 2026

That adds now the functionality to use the Sentry.effectLayer properly. But it doesn't do anything, which means right now, to keep the PRs small, it returns an empty layer.

Following can be used without any Sentry functionality:

const MainLive = HttpLive.pipe(Layer.provide(Sentry.effectLayer({
  dsn: "",
  tracesSampleRate: 1.0,
  debug: true,
})))

MainLive.pipe(Layer.launch, NodeRuntime.runMain)

@JPeer264 JPeer264 requested review from andreiborza and s1gr1d March 5, 2026 11:31
@JPeer264 JPeer264 self-assigned this Mar 5, 2026
Copy link

@cursor cursor bot left a comment

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 3 potential issues.

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

@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest';
import * as index from '../src';
import * as index from '../src/index.client';
Copy link

Choose a reason for hiding this comment

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

Missing integration or E2E tests for feature

Low Severity

This is a feat PR introducing new client/server entrypoints, but it only includes a single basic unit test checking that captureException is defined. Per review rules, feat PRs are expected to include at least one integration or E2E test. Even though the effectLayer currently returns an empty layer, a test verifying it can be constructed without error on both client and server paths would help prevent regressions as functionality is added.

Fix in Cursor Fix in Web

Triggered by project rule: PR Review Guidelines for Cursor Bot

"import": "./build/esm/index.server.js",
"require": "./build/cjs/index.server.js"
}
},
Copy link

Choose a reason for hiding this comment

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

Missing default fallback conditions in exports map

Medium Severity

The "." export in package.json only defines browser and node conditions with no import/require/default fallback. The comparable @sentry/nuxt package includes top-level "import" and "require" fallbacks after "browser" and "node". Without these, environments that don't set browser or node conditions (edge runtimes, some test runners, certain bundler configurations) will fail to resolve @sentry/effect.

Fix in Cursor Fix in Web

@JPeer264 JPeer264 force-pushed the jp/add-effect-sdk-stack/2 branch from 88de317 to 85c00da Compare March 5, 2026 11:42
Copy link
Member

@andreiborza andreiborza left a comment

Choose a reason for hiding this comment

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

🚀

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

size-limit report 📦

Path Size % Change Change
@sentry/browser 25.63 kB added added
@sentry/browser - with treeshaking flags 24.13 kB added added
@sentry/browser (incl. Tracing) 42.43 kB added added
@sentry/browser (incl. Tracing, Profiling) 47.09 kB added added
@sentry/browser (incl. Tracing, Replay) 81.25 kB added added
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 70.87 kB added added
@sentry/browser (incl. Tracing, Replay with Canvas) 85.95 kB added added
@sentry/browser (incl. Tracing, Replay, Feedback) 98.21 kB added added
@sentry/browser (incl. Feedback) 42.44 kB added added
@sentry/browser (incl. sendFeedback) 30.3 kB added added
@sentry/browser (incl. FeedbackAsync) 35.35 kB added added
@sentry/browser (incl. Metrics) 26.8 kB added added
@sentry/browser (incl. Logs) 26.94 kB added added
@sentry/browser (incl. Metrics & Logs) 27.61 kB added added
@sentry/react 27.38 kB added added
@sentry/react (incl. Tracing) 44.77 kB added added
@sentry/vue 30.08 kB added added
@sentry/vue (incl. Tracing) 44.3 kB added added
@sentry/svelte 25.66 kB added added
CDN Bundle 28.17 kB added added
CDN Bundle (incl. Tracing) 43.26 kB added added
CDN Bundle (incl. Logs, Metrics) 29.01 kB added added
CDN Bundle (incl. Tracing, Logs, Metrics) 44.1 kB added added
CDN Bundle (incl. Replay, Logs, Metrics) 68.09 kB added added
CDN Bundle (incl. Tracing, Replay) 80.14 kB added added
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 81 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) 85.65 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 86.53 kB added added
CDN Bundle - uncompressed 82.35 kB added added
CDN Bundle (incl. Tracing) - uncompressed 128.07 kB added added
CDN Bundle (incl. Logs, Metrics) - uncompressed 85.19 kB added added
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 130.9 kB added added
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 208.85 kB added added
CDN Bundle (incl. Tracing, Replay) - uncompressed 244.95 kB added added
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 247.77 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 257.86 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 260.67 kB added added
@sentry/nextjs (client) 47.18 kB added added
@sentry/sveltekit (client) 42.89 kB added added
@sentry/node-core 52.24 kB added added
@sentry/node 174.69 kB added added
@sentry/node - without tracing 97.39 kB added added
@sentry/aws-serverless 113.19 kB added added

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

Scenario Requests/s % of Baseline Prev. Requests/s Change %
GET Baseline 9,089 - - added
GET With Sentry 1,671 18% - added
GET With Sentry (error only) 6,211 68% - added
POST Baseline 1,196 - - added
POST With Sentry 570 48% - added
POST With Sentry (error only) 1,049 88% - added
MYSQL Baseline 3,290 - - added
MYSQL With Sentry 443 13% - added
MYSQL With Sentry (error only) 2,674 81% - added

@JPeer264 JPeer264 force-pushed the jp/add-effect-sdk-stack/2 branch from 5bf9bde to 90184af Compare March 5, 2026 12:27
@JPeer264 JPeer264 merged commit 15170d0 into jp/add-effect-sdk Mar 5, 2026
218 of 220 checks passed
@JPeer264 JPeer264 deleted the jp/add-effect-sdk-stack/2 branch March 5, 2026 13:35
JPeer264 added a commit that referenced this pull request Mar 11, 2026
…9649)

That adds now the functionality to use the `Sentry.effectLayer`
properly. **But** it doesn't do anything, which means right now, to keep
the PRs small, it returns an empty layer.

Following can be used without any Sentry functionality:

```js
const MainLive = HttpLive.pipe(Layer.provide(Sentry.effectLayer({
  dsn: "",
  tracesSampleRate: 1.0,
  debug: true,
})))

MainLive.pipe(Layer.launch, NodeRuntime.runMain)
```
JPeer264 added a commit that referenced this pull request Mar 11, 2026
…9649)

That adds now the functionality to use the `Sentry.effectLayer`
properly. **But** it doesn't do anything, which means right now, to keep
the PRs small, it returns an empty layer.

Following can be used without any Sentry functionality:

```js
const MainLive = HttpLive.pipe(Layer.provide(Sentry.effectLayer({
  dsn: "",
  tracesSampleRate: 1.0,
  debug: true,
})))

MainLive.pipe(Layer.launch, NodeRuntime.runMain)
```
JPeer264 added a commit that referenced this pull request Mar 13, 2026
…9649)

That adds now the functionality to use the `Sentry.effectLayer`
properly. **But** it doesn't do anything, which means right now, to keep
the PRs small, it returns an empty layer.

Following can be used without any Sentry functionality:

```js
const MainLive = HttpLive.pipe(Layer.provide(Sentry.effectLayer({
  dsn: "",
  tracesSampleRate: 1.0,
  debug: true,
})))

MainLive.pipe(Layer.launch, NodeRuntime.runMain)
```
JPeer264 added a commit that referenced this pull request Mar 17, 2026
…9649)

That adds now the functionality to use the `Sentry.effectLayer`
properly. **But** it doesn't do anything, which means right now, to keep
the PRs small, it returns an empty layer.

Following can be used without any Sentry functionality:

```js
const MainLive = HttpLive.pipe(Layer.provide(Sentry.effectLayer({
  dsn: "",
  tracesSampleRate: 1.0,
  debug: true,
})))

MainLive.pipe(Layer.launch, NodeRuntime.runMain)
```
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.

2 participants