This repository has been archived on 2026-06-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
master-ai/vibn-frontend/instrumentation-client.ts

36 lines
1.2 KiB
TypeScript

/**
* 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;