Sentry 9.25.0 upgrade, span-streaming migration, replay + ProGuard fixes - #25
Merged
Merged
Conversation
- Bump Sentry SDK 9.22.0 -> 9.25.0 (sentry_flutter/dio/file/logging) plus dio, flutter_dotenv, cupertino_icons, webview_flutter; app version -> 9.25.0+1 - Enable Span Streaming (traceLifecycle = stream) and migrate all manual instrumentation from startTransaction/startChild to the Sentry.startSpan callback API (product_list, navbar_destination, main, file_io_demo, webview) - Webview distributed tracing: hold the journey span via startInactiveSpan and hand its sentry-trace to the loaded page explicitly (Sentry.getSpan() is null in stream mode); keep generateNewTrace() so the journey gets a fresh trace - Fix session replay rendering: stop masking all images (maskAllImages/maskAssetImages = false); keep price masking via maskCallback - Propagate se/customerType onto all streamed spans via scope.setAttributes (scope tags don't reach spans in stream mode) so Performance/Trace data stays filterable per engineer, consistent with errors and replays - Add SENTRY_DEBUG dart-define/.env toggle for envelope-delivery diagnostics - Update CLAUDE.md and .env.example to match Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The APK carried no ProGuard UUID, so uploaded R8 mappings were orphaned and Sentry size analysis reported "Missing proguard mapping" (no DEX breakdown), and Kotlin/Java crashes wouldn't de-obfuscate. - Add io.sentry.android.gradle 6.15.0 (settings + app build.gradle.kts), scoped to mapping handling only: autoUploadProguardMapping + includeProguardMapping, with autoInstallation and tracingInstrumentation disabled so it doesn't add a native SDK or instrument bytecode on top of sentry_flutter - Org/project/authToken read from env (demo.sh exports them); upload is skipped when absent - demo.sh: make the manual `sentry-cli upload-proguard` step a no-op — the plugin now embeds the matching UUID into the APK and uploads the mapping during build, which the manual step could not do Verified: APK now embeds assets/sentry-debug-meta.properties (ProguardUuids 43c717a2-...), the matching proguard mapping is uploaded to demo/flutter, and a re-distributed build gets a detailed DEX breakdown. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrades the Sentry SDK to the latest and adopts the Span Streaming API, plus fixes surfaced by end-to-end verification on Android + iOS with events confirmed in the
demoorg.Changes
traceLifecycle = stream; migrate all manualstartTransaction/startChildinstrumentation to theSentry.startSpancallback API (product_list, navbar_destination, main, file_io_demo, webview)startInactiveSpan+ hand itssentry-traceto the loaded page explicitly (getSpan()is null in stream mode); keepgenerateNewTrace()for a fresh tracemaskAllImages/maskAssetImages = false); keep price masking viamaskCallbackse/customerTypeonto all streamed spans viascope.setAttributes(scope tags don't reach spans in stream mode)io.sentry.android.gradle6.15.0 (scoped to mapping handling) so the APK embeds a UUID and the matching mapping uploads during the build — fixes size-analysis "Missing proguard mapping" and Kotlin/Java crash de-obfuscation;demo.shmanual upload made a no-opVerified in Sentry (demo/flutter)
se:tda)se/customerTypeio.sentry.ProguardUuids; matching proguard mapping uploaded; build distributed for size analysis🤖 Generated with Claude Code