SIGN IN SIGN UP

feat(remix): Run the orchestrion transform on Remix 3 browser modules (#24894)

Remix 3 has no bundler, so the build time plugin the other SDKs use has
nothing to attach to. The asset server compiles each module on request
through a loader chain, and that is the only compile time hook the
browser has. This adds a loader there that applies orchestrion's
transform, and patches `run` in `@remix-run/ui` so component render
errors are captured with no application code.

`@sentry/server-utils` gains a `load-hook` entry for callers with a file
path and its source and no bundler in between. It is bundled like the
webpack loader, so `@sentry/remix` does not need the transformer as a
dependency.

The transform imports the browser `diagnostics_channel` shim by public
URL, encoded the way the asset server encodes imports and listed in
`scripts.external`. A mismatched URL would load two shims and no
instrumentation. The shim is now an explicit rollup entry, because
nothing in the module graph uses its default export and rollup dropped
it.

Fixes #24677

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
C
Charly Gomez committed
7932813028bbe6c3e660bf704a8c3089f4c6f14e
Parent: 4ceab6c
Committed by GitHub <noreply@github.com> on 10/2/2026, 8:32:50 AM