Log Sentry dev-inert status; explicit replay=0

When Sentry init runs but is disabled (local dev / CI), log a debug
message so developers can see Sentry *would* send in production.

Also explicitly set replaysSessionSampleRate/replaysOnErrorSampleRate
to 0 in the client and mobile configs. Replay integration isn't
installed, so this is documentation — it prevents future accidental
enablement if an integration is ever added.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-04-18 00:15:31 +02:00
parent cc0f44258a
commit 4092f21475
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
4 changed files with 30 additions and 4 deletions

View file

@ -9,13 +9,14 @@ import { renderToPipeableStream } from "react-dom/server";
import { initI18nServer, detectLanguage } from "@trails-cool/i18n";
const sentryEnvironment = process.env.CI ? "ci" : (process.env.NODE_ENV ?? "development");
const sentryEnabled = process.env.NODE_ENV === "production" && !process.env.CI;
Sentry.init({
dsn: "https://a32ffcc575d34be072e91b20f247eeee@o4509530546634752.ingest.de.sentry.io/4509530555547728",
release: process.env.SENTRY_RELEASE,
environment: sentryEnvironment,
tracesSampleRate: 1.0,
enabled: process.env.NODE_ENV === "production" && !process.env.CI,
enabled: sentryEnabled,
sendDefaultPii: false,
beforeSend(event) {
// Drop 404s — they're expected (scanners, typos), not bugs
@ -25,6 +26,10 @@ Sentry.init({
},
});
if (!sentryEnabled && !process.env.CI) {
console.debug(`[sentry] journal SSR init inert (env=${sentryEnvironment}); would send to Sentry in production`);
}
export const streamTimeout = 5_000;
export default function handleRequest(

View file

@ -10,6 +10,7 @@ export function initSentryClient() {
const sentryEnvironment = import.meta.env.VITE_SENTRY_ENVIRONMENT ??
(import.meta.env.PROD ? "production" : "development");
const enabled = import.meta.env.PROD && sentryEnvironment !== "ci";
Sentry.init({
dsn: "https://a32ffcc575d34be072e91b20f247eeee@o4509530546634752.ingest.de.sentry.io/4509530555547728",
@ -24,7 +25,14 @@ export function initSentryClient() {
],
environment: sentryEnvironment,
tracesSampleRate: sentryEnvironment === "ci" ? 0 : 1.0,
enabled: import.meta.env.PROD && sentryEnvironment !== "ci",
enabled,
sendDefaultPii: false,
// Session Replay is not installed; document the intent explicitly.
replaysSessionSampleRate: 0,
replaysOnErrorSampleRate: 0,
});
if (!enabled && !import.meta.env.PROD) {
console.debug(`[sentry] journal client init inert (env=${sentryEnvironment}); would send to Sentry in production`);
}
}

View file

@ -3,12 +3,20 @@ import * as Sentry from "@sentry/react-native";
const SENTRY_DSN = "https://af50ac7aea803216adbe21e9dd4b896b@o4509530546634752.ingest.de.sentry.io/4511209742532688";
export function initSentry() {
const enabled = !__DEV__;
Sentry.init({
dsn: SENTRY_DSN,
tracesSampleRate: __DEV__ ? 0 : 1.0,
enabled: !__DEV__,
enabled,
sendDefaultPii: false,
// Session Replay is not installed; document the intent explicitly.
replaysSessionSampleRate: 0,
replaysOnErrorSampleRate: 0,
});
if (!enabled) {
console.debug("[sentry] mobile init inert in dev; would send to Sentry in production");
}
}
export { Sentry };

View file

@ -11,13 +11,14 @@ import { expireSessionsJob } from "./app/jobs/expire-sessions.ts";
import postgres from "postgres";
const sentryEnvironment = process.env.CI ? "ci" : (process.env.NODE_ENV ?? "development");
const sentryEnabled = process.env.NODE_ENV === "production" && !process.env.CI;
Sentry.init({
dsn: "https://5215134cd78d5e6c199e29300b8425af@o4509530546634752.ingest.de.sentry.io/4511102546608208",
release: process.env.SENTRY_RELEASE,
environment: sentryEnvironment,
tracesSampleRate: 1.0,
enabled: process.env.NODE_ENV === "production" && !process.env.CI,
enabled: sentryEnabled,
beforeSend(event) {
const serialized = event.extra?.__serialized__ as Record<string, unknown> | undefined;
if (serialized?.status === 404) return null;
@ -25,6 +26,10 @@ Sentry.init({
},
});
if (!sentryEnabled && !process.env.CI) {
console.debug(`[sentry] planner server init inert (env=${sentryEnvironment}); would send to Sentry in production`);
}
const port = Number(process.env.PORT ?? 3001);
const CLIENT_DIR = resolve(import.meta.dirname, "build", "client");