chore: convert submodules to standard directories for true monorepo structure
This commit is contained in:
35
vibn-frontend/instrumentation-client.ts
Normal file
35
vibn-frontend/instrumentation-client.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Next.js client-side instrumentation. Runs in the browser bundle
|
||||
* before the app renders. Captures unhandled exceptions, promise
|
||||
* rejections, and router navigation errors. Also enables Sentry
|
||||
* Session Replay (free tier) so we can rewatch what the user was
|
||||
* doing when an error fired — invaluable for solo-dev beta debugging.
|
||||
*/
|
||||
|
||||
import * as Sentry from '@sentry/nextjs';
|
||||
|
||||
Sentry.init({
|
||||
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||
enabled: Boolean(process.env.NEXT_PUBLIC_SENTRY_DSN),
|
||||
environment: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT || process.env.NODE_ENV,
|
||||
|
||||
tracesSampleRate: 1.0,
|
||||
|
||||
// Session Replay: record a video-like reconstruction of the user's
|
||||
// tab on every error, plus 10% of healthy sessions for context.
|
||||
// Free tier covers this comfortably.
|
||||
replaysSessionSampleRate: 0.1,
|
||||
replaysOnErrorSampleRate: 1.0,
|
||||
|
||||
integrations: [
|
||||
Sentry.replayIntegration({
|
||||
// Mask all text/inputs by default — beta users may type
|
||||
// anything into chat. Selectively unmask later if needed.
|
||||
maskAllText: true,
|
||||
blockAllMedia: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
// Required for client-side router transition errors to reach Sentry.
|
||||
export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;
|
||||
Reference in New Issue
Block a user