From 296548a78177f25e6131960ad8f7a397ae4dbb88 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 24 Feb 2026 13:49:03 +0700 Subject: [PATCH] fix(sentry): sync dist parameter to resolve minified stack traces --- Dockerfile | 4 +++- core/lib/utils/sentry/sentry_config.dart | 9 +++++++++ core/lib/utils/sentry/sentry_initializer.dart | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f4be0e43a..801f4819b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,9 @@ ENV GITHUB_SHA=$GITHUB_SHA \ SENTRY_RELEASE=$SENTRY_RELEASE RUN ./scripts/prebuild.sh && \ - flutter build web --release --source-maps --dart-define=SENTRY_RELEASE=$SENTRY_RELEASE && \ + flutter build web --release --source-maps \ + --dart-define=SENTRY_RELEASE=$SENTRY_RELEASE \ + --dart-define=SENTRY_DIST=$GITHUB_SHA && \ if [ -n "$SENTRY_AUTH_TOKEN" ] && [ -n "$SENTRY_ORG" ] && [ -n "$SENTRY_PROJECT" ] && [ -n "$SENTRY_RELEASE" ]; then \ echo "Sentry configuration detected, uploading sourcemaps..." && \ curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=2.20.7 bash && \ diff --git a/core/lib/utils/sentry/sentry_config.dart b/core/lib/utils/sentry/sentry_config.dart index 8a2acaaf2..9e0fb1d25 100644 --- a/core/lib/utils/sentry/sentry_config.dart +++ b/core/lib/utils/sentry/sentry_config.dart @@ -32,6 +32,11 @@ class SentryConfig { // Check if Sentry is available final bool isAvailable; + // The distribution version of the release. + // In this project, it represents the Git SHA passed via `--dart-define=SENTRY_DIST`. + // This must match the `--dist` parameter used when uploading source maps to Sentry. + final String? dist; + SentryConfig({ required this.dsn, required this.environment, @@ -42,6 +47,7 @@ class SentryConfig { this.isDebug = BuildUtils.isDebugMode, this.attachScreenshot = false, this.isAvailable = false, + this.dist, }); /// Load configuration from an env file. @@ -62,11 +68,14 @@ class SentryConfig { final appVersion = await ApplicationManager().getAppVersion(); + const sentryDist = String.fromEnvironment('SENTRY_DIST'); + return SentryConfig( dsn: sentryDSN, environment: sentryEnvironment, release: appVersion, isAvailable: isAvailable, + dist: sentryDist.isNotEmpty ? sentryDist : null, ); } } diff --git a/core/lib/utils/sentry/sentry_initializer.dart b/core/lib/utils/sentry/sentry_initializer.dart index 324b249c6..530f3aabe 100644 --- a/core/lib/utils/sentry/sentry_initializer.dart +++ b/core/lib/utils/sentry/sentry_initializer.dart @@ -30,6 +30,7 @@ class SentryInitializer { options.dsn = config.dsn; options.environment = config.environment; options.release = config.release; + options.dist = config.dist; options.tracesSampleRate = config.tracesSampleRate; options.profilesSampleRate = config.profilesSampleRate; options.enableLogs = config.enableLogs;