SIGN IN SIGN UP

feat(remix): Inject debug IDs through the Remix 3 asset server (#24761)

Remix 3 has no build step, so there is no bundler plugin to inject debug
IDs. The asset server compiles each module on request, and this patches
`createAssetServer` to add a loader that injects the debug ID snippet
into every compiled module. The ID is a hash of the compiled source and
the module URL, so it is stable across requests and the source map
upload can arrive at the same ID in another process.

The minifier drops comments and the asset server rebuilds source maps
after the loaders ran. So the `//# debugId=` comment and the `debugId`
field in the map, which is what `sentry-cli` reads, are added to the
served response instead.

Source maps follow the other meta framework SDKs. Left out, they are
generated but hidden: modules do not reference them and `.map` requests
are not served. `sourceMaps: false` keeps them off, with a warning that
stack traces stay minified.

`getDebugId` and the snippet mirror `@sentry/bundler-plugins/core`
rather than importing it, because that entry loads the whole build
plugin into the server.

Fixes #24667

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
C
Charly Gomez committed
2cbe188369a32069df08faa97ea9ea21fadd93be
Parent: 563e333
Committed by GitHub <noreply@github.com> on 10/1/2026, 3:09:19 PM