From 37b04cc60fdd570441daa477d147d90fd0fce5f5 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Mon, 20 Apr 2026 12:22:06 -0400 Subject: [PATCH 1/2] fix(core): route replay events in multiplexed transport Co-Authored-By: GPT-5 --- packages/core/src/transports/multiplexed.ts | 2 +- .../test/lib/transports/multiplexed.test.ts | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/core/src/transports/multiplexed.ts b/packages/core/src/transports/multiplexed.ts index 41426b4a5d5a..10e4ef269768 100644 --- a/packages/core/src/transports/multiplexed.ts +++ b/packages/core/src/transports/multiplexed.ts @@ -102,7 +102,7 @@ export function makeMultiplexedTransport( const actualMatcher: Matcher = matcher || (args => { - const event = args.getEvent(); + const event = args.getEvent(['event', 'replay_event']); if ( event?.extra?.[MULTIPLEXED_TRANSPORT_EXTRA_KEY] && Array.isArray(event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY]) diff --git a/packages/core/test/lib/transports/multiplexed.test.ts b/packages/core/test/lib/transports/multiplexed.test.ts index 105d54b17eea..4a9a8f36c054 100644 --- a/packages/core/test/lib/transports/multiplexed.test.ts +++ b/packages/core/test/lib/transports/multiplexed.test.ts @@ -30,6 +30,7 @@ const TRANSACTION_ENVELOPE = createEnvelope( { event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2', sent_at: '123' }, [[{ type: 'transaction' }, TRANSACTION_EVENT] as EventItem], ); +const REPLAY_EVENT = { type: 'replay_event', event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2' }; const DEFAULT_DISCARDED_EVENTS: ClientReport['discarded_events'] = [ { @@ -320,4 +321,34 @@ describe('makeMultiplexedTransport() with default matcher', () => { const transport = makeTransport({ url: DSN1_URL, ...transportOptions }); await transport.send(envelope); }); + + it('sends replay events to targets provided in event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY]', async () => { + expect.assertions(2); + + const makeTransport = makeMultiplexedTransport( + createTestTransport( + url => { + expect(url).toBe(DSN1_URL); + }, + url => { + expect(url).toBe(DSN2_URL); + }, + ), + ); + + const envelope = createEnvelope({ event_id: 'aa3ff046696b4bc6b609ce6d28fde9e2', sent_at: '123' }, [ + [ + { type: 'replay_event' }, + { + ...REPLAY_EVENT, + extra: { + [MULTIPLEXED_TRANSPORT_EXTRA_KEY]: [DSN1, DSN2], + }, + }, + ] as EventItem, + ]); + + const transport = makeTransport({ url: DSN1_URL, ...transportOptions }); + await transport.send(envelope); + }); }); From 3bf438e6d30f9193ad6ab367a657393b03fcfbe4 Mon Sep 17 00:00:00 2001 From: Abdelrahman Awad Date: Mon, 20 Apr 2026 13:56:54 -0400 Subject: [PATCH 2/2] chore: bump CDN bundle size limits Co-Authored-By: Claude Opus 4.7 (1M context) --- .size-limit.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.size-limit.js b/.size-limit.js index c4b37635ecda..adef55219f86 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -221,7 +221,7 @@ module.exports = [ name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics)', path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'), gzip: true, - limit: '83 KB', + limit: '84 KB', }, { name: 'CDN Bundle (incl. Tracing, Replay, Feedback)', @@ -283,7 +283,7 @@ module.exports = [ path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'), gzip: false, brotli: false, - limit: '255 KB', + limit: '256 KB', }, { name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed', @@ -297,7 +297,7 @@ module.exports = [ path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'), gzip: false, brotli: false, - limit: '268 KB', + limit: '269 KB', }, // Next.js SDK (ESM) {