Repository navigation
Conversation
The srvx and h3 tracing channels each opened another http.server span below the one the runtime already creates, duplicating its attributes. srvx now only creates the root span when the runtime has not, and the h3 route handler gets a handler span that times the handler itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 45ba173. Configure here.
| parent_span_id: segment?.span_id, | ||
| status: 'ok', | ||
| attributes: expect.objectContaining({ | ||
| 'sentry.op': { type: 'string', value: 'http.server' }, |
There was a problem hiding this comment.
Tests use raw span attribute strings
Low Severity
New assertions compare span ops and attributes to string literals such as handler, http.server, sentry.op, sentry.origin, and http.route. This was flagged because the review guidelines require test assertions on span attributes and ops to use the @sentry/conventions constants.
Additional Locations (2)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 45ba173. Configure here.
size-limit report 📦
|


A Nitro request currently produces three nested
http.serverspans: the runtime's own (Nodehttp,Bun.serve,Deno.serve, Cloudflare's request wrapper), then one from srvx'ssrvx.requestchannel, then one from h3'sh3.requestroute channel. The nested two add nothing the root does not already carry: srvx only duplicates the URL and header attributes (with a wrongserver.port, the configured0rather than the bound port), and h3's route and params were already being copied onto the root.Now the root is the only
http.serverspan:http.serverspan, and only creates the root otherwise (e.g.@sentry/nodeon Bun, where no runtime instrumentation creates one).server.portnow reports the bound port in that case.handlerspan instead, the same op the Express integration uses for request handlers, so the time spent in the handler itself stays visible.This is a visible change for existing
@sentry/nitrousers: theauto.http.nitro.srvxandauto.http.nitro.h3http.serverspans go away, so queries or alerts on them need to move to the root span or thehandlerspan.🤖 Generated with Claude Code