[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-sentry-flutter-sdk":3,"mdc-61sgk7-key":39,"related-org-sentry-sentry-flutter-sdk":8456,"related-repo-sentry-sentry-flutter-sdk":8636},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":34,"sourceUrl":37,"mdContent":38},"sentry-flutter-sdk","setup Sentry monitoring for Flutter","Full Sentry SDK setup for Flutter and Dart. Use when asked to \"add Sentry to Flutter\", \"install sentry_flutter\", \"setup Sentry in Dart\", or configure error monitoring, tracing, profiling, session replay, or logging for Flutter applications. Supports Android, iOS, macOS, Linux, Windows, and Web.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"sentry","Sentry","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsentry.png","getsentry",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"Observability","observability","tag",{"name":18,"slug":19,"type":16},"Flutter","flutter",{"name":21,"slug":22,"type":16},"Monitoring","monitoring",{"name":24,"slug":25,"type":16},"Dart","dart",{"name":9,"slug":8,"type":16},237,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai","2026-07-11T05:53:22.627803","Apache-2.0",30,[33],"tag-production",{"repoUrl":28,"stars":27,"forks":31,"topics":35,"description":36},[33],"Teach your AI coding assistant how to use Sentry - setup, debugging, alerts, and more","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai\u002Ftree\u002FHEAD\u002Fskills-legacy\u002Fsentry-flutter-sdk","---\nname: sentry-flutter-sdk\ndescription: Full Sentry SDK setup for Flutter and Dart. Use when asked to \"add Sentry to Flutter\", \"install sentry_flutter\", \"setup Sentry in Dart\", or configure error monitoring, tracing, profiling, session replay, or logging for Flutter applications. Supports Android, iOS, macOS, Linux, Windows, and Web.\nlicense: Apache-2.0\ncategory: sdk-setup\nparent: sentry-sdk-setup\ndisable-model-invocation: true\n---\n\n> [All Skills](..\u002F..\u002FSKILL_TREE.md) > [SDK Setup](..\u002Fsentry-sdk-setup\u002FSKILL.md) > Flutter SDK\n\n# Sentry Flutter SDK\n\nOpinionated wizard that scans your Flutter or Dart project and guides you through complete Sentry setup — error monitoring, tracing, session replay, logging, profiling, and ecosystem integrations.\n\n## Invoke This Skill When\n\n- User asks to \"add Sentry to Flutter\" or \"set up Sentry\" in a Flutter or Dart app\n- User wants error monitoring, tracing, profiling, session replay, or logging in Flutter\n- User mentions `sentry_flutter`, `sentry_dart`, mobile error tracking, or Sentry for Flutter\n- User wants to monitor native crashes, ANRs, or app hangs on iOS\u002FAndroid\n\n> **Note:** SDK versions and APIs below reflect `sentry_flutter` ≥9.14.0 (current stable, February 2026).\n> Always verify against [docs.sentry.io\u002Fplatforms\u002Fflutter\u002F](https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002Fflutter\u002F) before implementing.\n\n---\n\n## Phase 1: Detect\n\nRun these commands to understand the project before making any recommendations:\n\n```bash\n# Detect Flutter project type and existing Sentry\ncat pubspec.yaml | grep -E '(sentry|flutter|dart)'\n\n# Check SDK version\ncat pubspec.yaml | grep -A2 'environment:'\n\n# Check for existing Sentry initialization\ngrep -r \"SentryFlutter.init\\|Sentry.init\" lib\u002F 2>\u002Fdev\u002Fnull | head -5\n\n# Detect navigation library\ngrep -E '(go_router|auto_route|get:|beamer|routemaster)' pubspec.yaml\n\n# Detect HTTP client\ngrep -E '(dio:|http:|chopper:)' pubspec.yaml\n\n# Detect database packages\ngrep -E '(sqflite|drift|hive|isar|floor)' pubspec.yaml\n\n# Detect state management (for integration patterns)\ngrep -E '(flutter_bloc|riverpod|provider:|get:)' pubspec.yaml\n\n# Detect GraphQL\ngrep -E '(graphql|ferry|gql)' pubspec.yaml\n\n# Detect Firebase\ngrep -E '(firebase_core|supabase)' pubspec.yaml\n\n# Detect backend for cross-link\nls ..\u002Fbackend\u002F ..\u002Fserver\u002F ..\u002Fapi\u002F 2>\u002Fdev\u002Fnull\nfind .. -maxdepth 3 \\( -name \"go.mod\" -o -name \"requirements.txt\" -o -name \"Gemfile\" -o -name \"*.csproj\" \\) 2>\u002Fdev\u002Fnull | grep -v flutter | head -10\n\n# Detect platform targets\nls android\u002F ios\u002F macos\u002F linux\u002F windows\u002F web\u002F 2>\u002Fdev\u002Fnull\n```\n\n**What to determine:**\n\n| Question | Impact |\n|----------|--------|\n| `sentry_flutter` already in `pubspec.yaml`? | Skip install, jump to feature config |\n| Dart SDK `>=3.5`? | Required for `sentry_flutter` ≥9.0.0 |\n| `go_router` or `auto_route` present? | Use `SentryNavigatorObserver` — specific patterns apply |\n| `dio` present? | Recommend `sentry_dio` integration |\n| `sqflite`, `drift`, `hive`, `isar` present? | Recommend matching `sentry_*` DB package |\n| Has `android\u002F` and `ios\u002F` directories? | Full mobile feature set available |\n| Has `web\u002F` directory only? | Session Replay and Profiling unavailable |\n| Has `macos\u002F` directory? | Profiling available (alpha) |\n| Backend directory detected? | Trigger Phase 4 cross-link |\n\n---\n\n## Phase 2: Recommend\n\nPresent a concrete recommendation based on what you found. Don't ask open-ended questions — lead with a proposal:\n\n**Recommended (core coverage — always set up these):**\n- ✅ **Error Monitoring** — captures Dart exceptions, Flutter framework errors, and native crashes (iOS + Android)\n- ✅ **Tracing** — auto-instruments navigation, app start, network requests, and UI interactions\n- ✅ **Session Replay** — captures widget tree screenshots for debugging (iOS + Android only)\n\n**Optional (enhanced observability):**\n- ⚡ **Profiling** — CPU profiling; iOS and macOS only (alpha)\n- ⚡ **Logging** — structured logs via `Sentry.logger.*` and `sentry_logging` integration\n- ⚡ **Metrics** — counters, gauges, distributions (SDK ≥9.11.0)\n\n**Platform limitations — be upfront:**\n\n| Feature | Platforms | Notes |\n|---------|-----------|-------|\n| Session Replay | iOS, Android | Not available on macOS, Linux, Windows, Web |\n| Profiling | iOS, macOS | Alpha status; not available on Android, Linux, Windows, Web |\n| Native crashes | iOS, Android, macOS | NDK\u002Fsignal handling; Linux\u002FWindows\u002FWeb: Dart exceptions only |\n| App Start metrics | iOS, Android | Not available on desktop\u002Fweb |\n| Slow\u002Ffrozen frames | iOS, Android, macOS | Not available on Linux, Windows, Web |\n| Crons | N\u002FA | **Not available** in the Flutter\u002FDart SDK |\n\nPropose: *\"For your Flutter app targeting iOS\u002FAndroid, I recommend Error Monitoring + Tracing + Session Replay. Want me to also add Logging and Profiling (iOS\u002FmacOS alpha)?\"*\n\n---\n\n## Phase 3: Guide\n\n### Determine Your Setup Path\n\n| Project type | Recommended setup |\n|-------------|------------------|\n| Any Flutter app | Wizard CLI (handles pubspec, init, symbol upload) |\n| Manual preferred | Path B below — `pubspec.yaml` + `main.dart` |\n| Dart-only (CLI, server) | Path C below — pure `sentry` package |\n\n---\n\n### Path A: Wizard CLI (Recommended)\n\n> **You need to run this yourself** — the wizard opens a browser for login and requires interactive input that the agent can't handle. Copy-paste into your terminal:\n>\n> ```bash\n> brew install getsentry\u002Ftools\u002Fsentry-wizard && sentry-wizard -i flutter\n> ```\n>\n> It handles org\u002Fproject selection, adds `sentry_flutter` to `pubspec.yaml`, updates `main.dart`, configures `sentry_dart_plugin` for debug symbol upload, and adds build scripts. Here's what it creates\u002Fmodifies:\n>\n> | File | Action | Purpose |\n> |------|--------|---------|\n> | `pubspec.yaml` | Adds `sentry_flutter` dependency and `sentry:` config block | SDK + symbol upload config |\n> | `lib\u002Fmain.dart` | Wraps `main()` with `SentryFlutter.init()` | SDK initialization |\n> | `android\u002Fapp\u002Fbuild.gradle` | Adds Proguard config reference | Android obfuscation support |\n> | `.sentryclirc` | Auth token and org\u002Fproject config | Symbol upload credentials |\n>\n> **Once it finishes, come back and skip to [Verification](#verification).**\n\nIf the user skips the wizard, proceed with Path B (Manual Setup) below.\n\n---\n\n### Path B: Manual — Flutter App\n\n**Step 1 — Install**\n\n```bash\nflutter pub add sentry_flutter\n```\n\nOr add to `pubspec.yaml` manually:\n\n```yaml\ndependencies:\n  flutter:\n    sdk: flutter\n  sentry_flutter: ^9.14.0\n```\n\nThen run:\n\n```bash\nflutter pub get\n```\n\n**Step 2 — Initialize Sentry in `lib\u002Fmain.dart`**\n\n```dart\nimport 'package:flutter\u002Fwidgets.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nFuture\u003Cvoid> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.sendDefaultPii = true;\n\n      \u002F\u002F Tracing\n      options.tracesSampleRate = 1.0; \u002F\u002F lower to 0.1–0.2 in production\n\n      \u002F\u002F Profiling (iOS and macOS only — alpha)\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Session Replay (iOS and Android only)\n      options.replay.sessionSampleRate = 0.1;\n      options.replay.onErrorSampleRate = 1.0;\n\n      \u002F\u002F Structured Logging (SDK ≥9.5.0)\n      options.enableLogs = true;\n\n      options.environment = const bool.fromEnvironment('dart.vm.product')\n          ? 'production'\n          : 'development';\n    },\n    \u002F\u002F REQUIRED: wrap root widget to enable screenshots, replay, user interaction tracing\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n```\n\n**Step 3 — Add Navigation Observer**\n\nAdd `SentryNavigatorObserver` to your `MaterialApp` or `CupertinoApp`:\n\n```dart\nimport 'package:flutter\u002Fmaterial.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      navigatorObservers: [\n        SentryNavigatorObserver(),\n      ],\n      \u002F\u002F Always name your routes for Sentry to track them\n      routes: {\n        '\u002F': (context) => HomeScreen(),\n        '\u002Fprofile': (context) => ProfileScreen(),\n      },\n    );\n  }\n}\n```\n\nFor **GoRouter**:\n\n```dart\nimport 'package:go_router\u002Fgo_router.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nfinal GoRouter router = GoRouter(\n  observers: [SentryNavigatorObserver()],\n  routes: [\n    GoRoute(\n      path: '\u002F',\n      name: 'home', \u002F\u002F name is REQUIRED for Sentry route tracking\n      builder: (context, state) => const HomeScreen(),\n      routes: [\n        GoRoute(\n          path: 'profile\u002F:id',\n          name: 'profile', \u002F\u002F name is REQUIRED\n          builder: (context, state) => ProfileScreen(\n            id: state.pathParameters['id']!,\n          ),\n        ),\n      ],\n    ),\n  ],\n);\n```\n\n**Step 4 — Configure Debug Symbol Upload**\n\nReadable stack traces in Sentry require uploading debug symbols when building with `--obfuscate`.\n\nAdd to `pubspec.yaml`:\n\n```yaml\ndev_dependencies:\n  sentry_dart_plugin: ^3.2.1\n\nsentry:\n  project: YOUR_PROJECT_SLUG\n  org: YOUR_ORG_SLUG\n  auth_token: YOUR_AUTH_TOKEN  # prefer SENTRY_AUTH_TOKEN env var instead\n  upload_debug_symbols: true\n  upload_sources: true\n  upload_source_maps: true     # for Web\n```\n\nBuild and upload:\n\n```bash\n# Android\nflutter build apk \\\n  --release \\\n  --obfuscate \\\n  --split-debug-info=build\u002Fdebug-info \\\n  --extra-gen-snapshot-options=--save-obfuscation-map=build\u002Fapp\u002Fobfuscation.map.json\ndart run sentry_dart_plugin\n\n# iOS\nflutter build ipa \\\n  --release \\\n  --obfuscate \\\n  --split-debug-info=build\u002Fdebug-info \\\n  --extra-gen-snapshot-options=--save-obfuscation-map=build\u002Fapp\u002Fobfuscation.map.json\ndart run sentry_dart_plugin\n\n# Web\nflutter build web --release --source-maps\ndart run sentry_dart_plugin\n```\n\n---\n\n### Path C: Manual — Dart-Only (CLI \u002F Server)\n\n```yaml\n# pubspec.yaml\ndependencies:\n  sentry: ^9.14.0\n```\n\n```dart\nimport 'package:sentry\u002Fsentry.dart';\n\nFuture\u003Cvoid> main() async {\n  await Sentry.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.tracesSampleRate = 1.0;\n      options.enableLogs = true;\n    },\n    appRunner: myApp,\n  );\n}\n```\n\n---\n\n### Quick Reference: Full-Featured `SentryFlutter.init()`\n\n```dart\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nFuture\u003Cvoid> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.sendDefaultPii = true;\n\n      \u002F\u002F Environment — detect release builds via dart.vm.product\n      options.environment = const bool.fromEnvironment('dart.vm.product')\n          ? 'production'\n          : 'development';\n\n      \u002F\u002F Release is auto-set on iOS\u002FAndroid as \"packageName@version+build\"\n      \u002F\u002F Override if needed:\n      \u002F\u002F options.release = 'my-app@1.0.0+42';\n\n      \u002F\u002F Error sampling — reduce to drop a fraction of errors in high-volume production\n      options.sampleRate = 1.0;\n\n      \u002F\u002F Tracing — lower to 0.1–0.2 in high-traffic production\n      options.tracesSampleRate = 1.0;\n\n      \u002F\u002F Profiling — iOS and macOS only (alpha); relative to tracesSampleRate\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Session Replay — iOS and Android only (SDK ≥9.0.0)\n      options.replay.sessionSampleRate = 0.1;   \u002F\u002F record 10% of all sessions\n      options.replay.onErrorSampleRate = 1.0;   \u002F\u002F always record error sessions\n\n      \u002F\u002F Privacy defaults — all text and images masked\n      options.privacy.maskAllText = true;\n      options.privacy.maskAllImages = true;\n\n      \u002F\u002F Structured logging (SDK ≥9.5.0)\n      options.enableLogs = true;\n\n      \u002F\u002F Attachments\n      options.attachScreenshot = true;          \u002F\u002F screenshot on error\n      options.attachViewHierarchy = true;       \u002F\u002F widget tree on error\n\n      \u002F\u002F HTTP client\n      options.captureFailedRequests = true;     \u002F\u002F auto-capture HTTP errors\n      options.maxRequestBodySize = MaxRequestBodySize.small;\n\n      \u002F\u002F Android specifics\n      options.anrEnabled = true;                \u002F\u002F ANR detection\n      options.enableNdkScopeSync = true;        \u002F\u002F sync scope to native\n      options.enableTombstone = false;          \u002F\u002F Android 12+ tombstone (opt-in)\n\n      \u002F\u002F Navigation (Time to Full Display — opt-in)\n      options.enableTimeToFullDisplayTracing = true;\n    },\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n```\n\n---\n\n### Navigation: Time to Full Display (TTFD)\n\nTTID (Time to Initial Display) is always enabled. TTFD is opt-in:\n\n```dart\n\u002F\u002F Enable in options:\noptions.enableTimeToFullDisplayTracing = true;\n```\n\nThen report when your screen has loaded its data:\n\n```dart\n\u002F\u002F Option 1: Widget wrapper (marks TTFD when child first renders)\nSentryDisplayWidget(child: MyWidget())\n\n\u002F\u002F Option 2: Manual API call (after async data loads)\nawait _loadData();\nSentryFlutter.currentDisplay()?.reportFullyDisplayed();\n```\n\n---\n\n### For Each Agreed Feature\n\nWalk through features one at a time. Load the reference file for each, follow its steps, then verify before moving on:\n\n| Feature | Reference | Load when... |\n|---------|-----------|-------------|\n| Error Monitoring | `${SKILL_ROOT}\u002Freferences\u002Ferror-monitoring.md` | Always (baseline) |\n| Tracing & Performance | `${SKILL_ROOT}\u002Freferences\u002Ftracing.md` | Always — navigation, HTTP, DB spans |\n| Session Replay | `${SKILL_ROOT}\u002Freferences\u002Fsession-replay.md` | iOS\u002FAndroid user-facing apps |\n| Profiling | `${SKILL_ROOT}\u002Freferences\u002Fprofiling.md` | iOS\u002FmacOS performance-sensitive apps |\n| Logging | `${SKILL_ROOT}\u002Freferences\u002Flogging.md` | Structured logging \u002F log-trace correlation |\n| Metrics | `${SKILL_ROOT}\u002Freferences\u002Fmetrics.md` | Custom business metrics |\n| Ecosystem Integrations | `${SKILL_ROOT}\u002Freferences\u002Fecosystem-integrations.md` | HTTP clients, databases, GraphQL, state management |\n\nFor each feature: `Read ${SKILL_ROOT}\u002Freferences\u002F\u003Cfeature>.md`, follow steps exactly, verify it works.\n\n---\n\n## Configuration Reference\n\n### Core `SentryFlutter.init()` Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `dsn` | `string` | — | **Required.** Project DSN. Env: `SENTRY_DSN` via `--dart-define` |\n| `environment` | `string` | — | e.g., `\"production\"`, `\"staging\"`. Env: `SENTRY_ENVIRONMENT` |\n| `release` | `string` | Auto on iOS\u002FAndroid | `\"packageName@version+build\"`. Env: `SENTRY_RELEASE` |\n| `dist` | `string` | — | Distribution identifier; max 64 chars. Env: `SENTRY_DIST` |\n| `sendDefaultPii` | `bool` | `false` | Include PII: IP address, user labels, widget text in replay |\n| `sampleRate` | `double` | `1.0` | Error event sampling (0.0–1.0) |\n| `maxBreadcrumbs` | `int` | `100` | Max breadcrumbs per event |\n| `attachStacktrace` | `bool` | `true` | Auto-attach stack traces to messages |\n| `attachScreenshot` | `bool` | `false` | Capture screenshot on error (mobile\u002Fdesktop only) |\n| `screenshotQuality` | enum | `high` | Screenshot quality: `full`, `high`, `medium`, `low` |\n| `attachViewHierarchy` | `bool` | `false` | Attach JSON widget tree as attachment on error |\n| `debug` | `bool` | `true` in debug | Verbose SDK output. **Never force `true` in production** |\n| `diagnosticLevel` | enum | `warning` | Log verbosity: `debug`, `info`, `warning`, `error`, `fatal` |\n| `enabled` | `bool` | `true` | Disable SDK entirely (e.g., for testing) |\n| `maxCacheItems` | `int` | `30` | Max offline-cached envelopes (not supported on Web) |\n| `sendClientReports` | `bool` | `true` | Send SDK health reports (dropped events, etc.) |\n| `reportPackages` | `bool` | `true` | Report `pubspec.yaml` dependency list |\n| `reportSilentFlutterErrors` | `bool` | `false` | Capture `FlutterErrorDetails.silent` errors |\n| `idleTimeout` | `Duration` | `3000ms` | Auto-finish idle user interaction transactions |\n\n### Tracing Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `tracesSampleRate` | `double` | — | Transaction sample rate (0–1). Enable by setting >0 |\n| `tracesSampler` | `function` | — | Per-transaction sampling; overrides `tracesSampleRate` |\n| `tracePropagationTargets` | `List` | — | URLs to attach `sentry-trace` + `baggage` headers |\n| `propagateTraceparent` | `bool` | `false` | Also send W3C `traceparent` header (SDK ≥9.7.0) |\n| `enableTimeToFullDisplayTracing` | `bool` | `false` | Opt-in TTFD tracking per screen |\n| `enableAutoPerformanceTracing` | `bool` | `true` | Auto-enable performance monitoring |\n| `enableUserInteractionTracing` | `bool` | `true` | Create transactions for tap\u002Fclick\u002Flong-press events |\n| `enableUserInteractionBreadcrumbs` | `bool` | `true` | Breadcrumbs for every tracked user interaction |\n\n### Profiling Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `profilesSampleRate` | `double` | — | Profiling rate relative to `tracesSampleRate`. **iOS\u002FmacOS only** |\n\n### Native \u002F Mobile Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `autoInitializeNativeSdk` | `bool` | `true` | Auto-initialize native Android\u002FiOS SDK layer |\n| `enableNativeCrashHandling` | `bool` | `true` | Capture native crashes (NDK, signal, Mach exception) |\n| `enableNdkScopeSync` | `bool` | `true` | Sync Dart scope to Android NDK |\n| `enableScopeSync` | `bool` | `true` | Sync scope data to native SDKs |\n| `anrEnabled` | `bool` | `true` | ANR detection (Android) |\n| `anrTimeoutInterval` | `int` | `5000` | ANR timeout in milliseconds (Android) |\n| `enableWatchdogTerminationTracking` | `bool` | `true` | OOM kill tracking (iOS) |\n| `enableTombstone` | `bool` | `false` | Android 12+ native crash info via `ApplicationExitInfo` |\n| `attachThreads` | `bool` | `false` | Attach all threads on crash (Android) |\n| `captureNativeFailedRequests` | `bool` | — | Native HTTP error capture, independent of Dart client (iOS\u002FmacOS, v9.11.0+) |\n| `enableAutoNativeAppStart` | `bool` | `true` | App start timing instrumentation (iOS\u002FAndroid) |\n| `enableFramesTracking` | `bool` | `true` | Slow\u002Ffrozen frame monitoring (iOS\u002FAndroid\u002FmacOS) |\n| `proguardUuid` | `string` | — | Proguard UUID for Android obfuscation mapping |\n\n### Session & Release Health Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `enableAutoSessionTracking` | `bool` | `true` | Session tracking for crash-free user\u002Fsession metrics |\n| `autoSessionTrackingInterval` | `Duration` | `30s` | Background inactivity before session ends |\n\n### Replay Options (`options.replay`)\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `replay.sessionSampleRate` | `double` | `0.0` | Fraction of all sessions recorded |\n| `replay.onErrorSampleRate` | `double` | `0.0` | Fraction of error sessions recorded |\n\n### Replay Privacy Options (`options.privacy`)\n\n| Option \u002F Method | Default | Purpose |\n|-----------------|---------|---------|\n| `privacy.maskAllText` | `true` | Mask all text widget content |\n| `privacy.maskAllImages` | `true` | Mask all image widgets |\n| `privacy.maskAssetImages` | `true` | Mask images from root asset bundle |\n| `privacy.mask\u003CT>()` | — | Mask a specific widget type and all subclasses |\n| `privacy.unmask\u003CT>()` | — | Unmask a specific widget type |\n| `privacy.maskCallback\u003CT>()` | — | Custom masking decision per widget instance |\n\n### HTTP Options\n\n| Option | Type | Default | Purpose |\n|--------|------|---------|---------|\n| `captureFailedRequests` | `bool` | `true` (Flutter) | Auto-capture HTTP errors |\n| `maxRequestBodySize` | enum | `never` | Body capture: `never`, `small`, `medium`, `always` |\n| `failedRequestStatusCodes` | `List` | `[500–599]` | Status codes treated as failures |\n| `failedRequestTargets` | `List` | `['.*']` | URL patterns to monitor |\n\n### Hook Options\n\n| Option | Type | Purpose |\n|--------|------|---------|\n| `beforeSend` | `(SentryEvent, Hint) → SentryEvent?` | Modify or drop error events. Return `null` to drop |\n| `beforeSendTransaction` | `(SentryEvent) → SentryEvent?` | Modify or drop transaction events |\n| `beforeBreadcrumb` | `(Breadcrumb, Hint) → Breadcrumb?` | Process breadcrumbs before storage |\n| `beforeSendLog` | `(SentryLog) → SentryLog?` | Filter structured logs before sending |\n\n### Environment Variables\n\nPass via `--dart-define` at build time:\n\n| Variable | Purpose | Notes |\n|----------|---------|-------|\n| `SENTRY_DSN` | Data Source Name | Falls back from `options.dsn` |\n| `SENTRY_ENVIRONMENT` | Deployment environment | Falls back from `options.environment` |\n| `SENTRY_RELEASE` | Release identifier | Falls back from `options.release` |\n| `SENTRY_DIST` | Build distribution | Falls back from `options.dist` |\n| `SENTRY_AUTH_TOKEN` | Upload debug symbols | **Never embed in app — build tool only** |\n| `SENTRY_ORG` | Organization slug | Used by `sentry_dart_plugin` |\n| `SENTRY_PROJECT` | Project slug | Used by `sentry_dart_plugin` |\n\nUsage:\n\n```bash\nflutter build apk --release \\\n  --dart-define=SENTRY_DSN=https:\u002F\u002Fxxx@sentry.io\u002F123 \\\n  --dart-define=SENTRY_ENVIRONMENT=production\n```\n\nThen in code:\n\n```dart\noptions.dsn = const String.fromEnvironment('SENTRY_DSN');\noptions.environment = const String.fromEnvironment('SENTRY_ENVIRONMENT', defaultValue: 'development');\n```\n\n### Production Settings\n\nLower sample rates and harden config before shipping:\n\n```dart\nFuture\u003Cvoid> main() async {\n  final isProduction = const bool.fromEnvironment('dart.vm.product');\n\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = const String.fromEnvironment('SENTRY_DSN');\n      options.environment = isProduction ? 'production' : 'development';\n\n      \u002F\u002F Trace 10% of transactions in high-traffic production\n      options.tracesSampleRate = isProduction ? 0.1 : 1.0;\n\n      \u002F\u002F Profile 100% of traced transactions (profiling is always a subset)\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Replay all error sessions, sample 5% of normal sessions\n      options.replay.onErrorSampleRate = 1.0;\n      options.replay.sessionSampleRate = isProduction ? 0.05 : 1.0;\n\n      \u002F\u002F Disable debug logging in production\n      options.debug = !isProduction;\n    },\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n```\n\n### Default Auto-Enabled Integrations\n\nThese are active with no extra config when you call `SentryFlutter.init()`:\n\n| Integration | What it does |\n|-------------|-------------|\n| `FlutterErrorIntegration` | Captures `FlutterError.onError` framework errors |\n| `RunZonedGuardedIntegration` | Catches unhandled Dart exceptions in runZonedGuarded |\n| `NativeAppStartIntegration` | App start timing (iOS\u002FAndroid) |\n| `FramesTrackingIntegration` | Slow\u002Ffrozen frames (iOS\u002FAndroid\u002FmacOS) |\n| `NativeUserInteractionIntegration` | User interaction breadcrumbs from native layer |\n| `UserInteractionIntegration` | Dart-layer tap\u002Fclick transactions (requires `SentryWidget`) |\n| `DeviceContextIntegration` | Device model, OS version, screen resolution |\n| `AppContextIntegration` | App version, build number, bundle ID |\n| `ConnectivityIntegration` | Network connectivity change breadcrumbs |\n| `HttpClientIntegration` | Auto-instrument Dart `http` requests |\n| `SdkIntegration` | SDK metadata tagging |\n| `ReleaseIntegration` | Auto-set release on iOS\u002FAndroid from package info |\n\n---\n\n## Verification\n\nAfter setup, test that Sentry is receiving events:\n\n```dart\n\u002F\u002F Add a test button somewhere visible during development:\nElevatedButton(\n  onPressed: () {\n    throw Exception('Sentry test error!');\n  },\n  child: const Text('Test Sentry Error'),\n)\n\n\u002F\u002F Or capture manually:\nElevatedButton(\n  onPressed: () {\n    Sentry.captureMessage('Sentry test message', level: SentryLevel.info);\n  },\n  child: const Text('Test Sentry Message'),\n)\n\n\u002F\u002F Test structured logging:\nElevatedButton(\n  onPressed: () {\n    Sentry.logger.info('Test log from Flutter app');\n  },\n  child: const Text('Test Sentry Log'),\n)\n```\n\n**Check the Sentry dashboard:**\n- **Issues** → test error should appear within seconds\n- **Traces** → look for a navigation transaction with child spans\n- **Replays** → session recording visible after app interaction (iOS\u002FAndroid only)\n- **Logs** → structured log entries if `enableLogs: true`\n\n> ⚠️ **Platform limitations in debug mode:**\n> - Native crashes, session replay, slow\u002Ffrozen frames, and app start metrics only fully work in release builds on iOS\u002FAndroid\n> - Run `flutter run --release` or use a real device\u002Femulator to test native features\n> - Debug mode uses the Dart VM with JIT compilation — some native integrations behave differently\n\n---\n\n## Phase 4: Cross-Link\n\nAfter completing Flutter setup, check for a backend missing Sentry coverage:\n\n```bash\n# Adjacent backend directories\nls ..\u002Fbackend ..\u002Fserver ..\u002Fapi 2>\u002Fdev\u002Fnull\ncat ..\u002Fgo.mod 2>\u002Fdev\u002Fnull | head -3\ncat ..\u002Frequirements.txt ..\u002Fpyproject.toml 2>\u002Fdev\u002Fnull | head -3\ncat ..\u002FGemfile 2>\u002Fdev\u002Fnull | head -3\nls ..\u002Fbackend\u002Fpackage.json ..\u002Fserver\u002Fpackage.json 2>\u002Fdev\u002Fnull\n```\n\nIf a backend exists without Sentry, suggest the matching skill:\n\n| Detected | Suggest skill |\n|----------|--------------|\n| Go backend (`go.mod`) | `sentry-go-sdk` |\n| Python backend (`requirements.txt`, `pyproject.toml`) | `sentry-python-sdk` |\n| Ruby backend (`Gemfile`) | `sentry-ruby-sdk` |\n| Node.js backend | `sentry-node-sdk` |\n| .NET backend (`*.csproj`) | `sentry-dotnet-sdk` |\n| React \u002F Next.js web | `sentry-react-sdk` \u002F `sentry-nextjs-sdk` |\n\n**Distributed tracing** — if a backend skill is added, configure `tracePropagationTargets` in Flutter to propagate trace context to your API:\n\n```dart\noptions.tracePropagationTargets = ['api.myapp.com', 'localhost'];\noptions.propagateTraceparent = true; \u002F\u002F also send W3C traceparent header\n```\n\nThis links mobile transactions to backend traces in the Sentry waterfall view.\n\n---\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Events not appearing in Sentry | Set `options.debug = true` — SDK logs to Flutter console; verify DSN is correct |\n| `SentryFlutter.init` throws | Ensure `main()` is `async` and you `await SentryFlutter.init(...)` |\n| Stack traces unreadable in Sentry | Upload debug symbols with `sentry_dart_plugin`; build with `--obfuscate --split-debug-info` |\n| Stack traces missing on Web | Build with `--source-maps` and run `dart run sentry_dart_plugin` to upload |\n| Native crashes not captured | Confirm `enableNativeCrashHandling: true`; test in release mode, not debug |\n| Session replay not recording | iOS\u002FAndroid only; confirm `SentryWidget` wraps root; check `replay.onErrorSampleRate` |\n| Replay shows blank screens | Confirm `SentryWidget(child: MyApp())` is outermost widget; not inside navigator |\n| Profiling not working | iOS and macOS only (alpha); confirm `tracesSampleRate > 0` is set first |\n| Navigation not tracked | Add `SentryNavigatorObserver()` to `navigatorObservers`; name all routes |\n| GoRouter routes unnamed | Add `name:` to all `GoRoute` entries — unnamed routes are tracked as `null` |\n| TTFD never reports | Call `SentryFlutter.currentDisplay()?.reportFullyDisplayed()` after data loads, or wrap with `SentryDisplayWidget` |\n| `sentry_dart_plugin` auth error | Set `SENTRY_AUTH_TOKEN` env var instead of hardcoding in `pubspec.yaml` |\n| Android ProGuard mapping missing | Ensure `--extra-gen-snapshot-options=--save-obfuscation-map=...` flag is set |\n| iOS dSYM not uploaded | `sentry_dart_plugin` handles this; check `upload_debug_symbols: true` in `pubspec.yaml` `sentry:` block |\n| `pub get` fails: Dart SDK too old | `sentry_flutter` ≥9.0.0 requires Dart ≥3.5.0; run `flutter upgrade` |\n| Hot restart crashes on Android debug | Known issue (fixed in SDK ≥9.9.0); upgrade if on older version |\n| ANR detection too aggressive | Increase `anrTimeoutInterval` (default: 5000ms) |\n| Too many transactions in dashboard | Lower `tracesSampleRate` to `0.1` or use `tracesSampler` to drop health checks |\n| `beforeSend` not firing for native crashes | Expected — `beforeSend` intercepts only Dart-layer events; native crashes bypass it |\n| Crons not available | The Flutter\u002FDart SDK does not support Sentry Crons; use a server-side SDK instead |\n| `SentryWidget` warning in tests | Wrap test widget with `SentryFlutter.init()` in `setUpAll`, or use `enabled: false` |\n| Firebase Remote Config: Linux\u002FWindows | `sentry_firebase_remote_config` not supported on Linux\u002FWindows (Firebase limitation) |\n| Isar tracing on Web | `sentry_isar` does NOT support Web (Isar does not support Web) |\n",{"data":40,"body":44},{"name":4,"description":6,"license":30,"category":41,"parent":42,"disable-model-invocation":43},"sdk-setup","sentry-sdk-setup",true,{"type":45,"children":46},"root",[47,74,80,85,92,134,165,169,175,180,930,938,1209,1212,1218,1223,1231,1268,1276,1327,1335,1471,1482,1485,1491,1498,1579,1582,1588,1839,1844,1847,1853,1861,1890,1902,1971,1976,1999,2012,2254,2262,2288,2436,2447,2627,2635,2647,2658,2824,2829,3073,3076,3082,3124,3219,3222,3233,3682,3685,3691,3696,3719,3724,3778,3781,3787,3792,3967,3980,3983,3989,4002,4796,4802,5112,5118,5187,5193,5649,5655,5750,5764,5859,5872,6035,6041,6227,6233,6369,6375,6387,6595,6600,6650,6655,6678,6684,6689,6874,6880,6891,7140,7143,7148,7153,7334,7342,7391,7430,7433,7439,7444,7616,7621,7784,7801,7824,7829,7832,7838,8450],{"type":48,"tag":49,"props":50,"children":51},"element","blockquote",{},[52],{"type":48,"tag":53,"props":54,"children":55},"p",{},[56,64,66,72],{"type":48,"tag":57,"props":58,"children":60},"a",{"href":59},"..\u002F..\u002FSKILL_TREE.md",[61],{"type":62,"value":63},"text","All Skills",{"type":62,"value":65}," > ",{"type":48,"tag":57,"props":67,"children":69},{"href":68},"..\u002Fsentry-sdk-setup\u002FSKILL.md",[70],{"type":62,"value":71},"SDK Setup",{"type":62,"value":73}," > Flutter SDK",{"type":48,"tag":75,"props":76,"children":77},"h1",{"id":4},[78],{"type":62,"value":79},"Sentry Flutter SDK",{"type":48,"tag":53,"props":81,"children":82},{},[83],{"type":62,"value":84},"Opinionated wizard that scans your Flutter or Dart project and guides you through complete Sentry setup — error monitoring, tracing, session replay, logging, profiling, and ecosystem integrations.",{"type":48,"tag":86,"props":87,"children":89},"h2",{"id":88},"invoke-this-skill-when",[90],{"type":62,"value":91},"Invoke This Skill When",{"type":48,"tag":93,"props":94,"children":95},"ul",{},[96,102,107,129],{"type":48,"tag":97,"props":98,"children":99},"li",{},[100],{"type":62,"value":101},"User asks to \"add Sentry to Flutter\" or \"set up Sentry\" in a Flutter or Dart app",{"type":48,"tag":97,"props":103,"children":104},{},[105],{"type":62,"value":106},"User wants error monitoring, tracing, profiling, session replay, or logging in Flutter",{"type":48,"tag":97,"props":108,"children":109},{},[110,112,119,121,127],{"type":62,"value":111},"User mentions ",{"type":48,"tag":113,"props":114,"children":116},"code",{"className":115},[],[117],{"type":62,"value":118},"sentry_flutter",{"type":62,"value":120},", ",{"type":48,"tag":113,"props":122,"children":124},{"className":123},[],[125],{"type":62,"value":126},"sentry_dart",{"type":62,"value":128},", mobile error tracking, or Sentry for Flutter",{"type":48,"tag":97,"props":130,"children":131},{},[132],{"type":62,"value":133},"User wants to monitor native crashes, ANRs, or app hangs on iOS\u002FAndroid",{"type":48,"tag":49,"props":135,"children":136},{},[137],{"type":48,"tag":53,"props":138,"children":139},{},[140,146,148,153,155,163],{"type":48,"tag":141,"props":142,"children":143},"strong",{},[144],{"type":62,"value":145},"Note:",{"type":62,"value":147}," SDK versions and APIs below reflect ",{"type":48,"tag":113,"props":149,"children":151},{"className":150},[],[152],{"type":62,"value":118},{"type":62,"value":154}," ≥9.14.0 (current stable, February 2026).\nAlways verify against ",{"type":48,"tag":57,"props":156,"children":160},{"href":157,"rel":158},"https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002Fflutter\u002F",[159],"nofollow",[161],{"type":62,"value":162},"docs.sentry.io\u002Fplatforms\u002Fflutter\u002F",{"type":62,"value":164}," before implementing.",{"type":48,"tag":166,"props":167,"children":168},"hr",{},[],{"type":48,"tag":86,"props":170,"children":172},{"id":171},"phase-1-detect",[173],{"type":62,"value":174},"Phase 1: Detect",{"type":48,"tag":53,"props":176,"children":177},{},[178],{"type":62,"value":179},"Run these commands to understand the project before making any recommendations:",{"type":48,"tag":181,"props":182,"children":187},"pre",{"className":183,"code":184,"language":185,"meta":186,"style":186},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Detect Flutter project type and existing Sentry\ncat pubspec.yaml | grep -E '(sentry|flutter|dart)'\n\n# Check SDK version\ncat pubspec.yaml | grep -A2 'environment:'\n\n# Check for existing Sentry initialization\ngrep -r \"SentryFlutter.init\\|Sentry.init\" lib\u002F 2>\u002Fdev\u002Fnull | head -5\n\n# Detect navigation library\ngrep -E '(go_router|auto_route|get:|beamer|routemaster)' pubspec.yaml\n\n# Detect HTTP client\ngrep -E '(dio:|http:|chopper:)' pubspec.yaml\n\n# Detect database packages\ngrep -E '(sqflite|drift|hive|isar|floor)' pubspec.yaml\n\n# Detect state management (for integration patterns)\ngrep -E '(flutter_bloc|riverpod|provider:|get:)' pubspec.yaml\n\n# Detect GraphQL\ngrep -E '(graphql|ferry|gql)' pubspec.yaml\n\n# Detect Firebase\ngrep -E '(firebase_core|supabase)' pubspec.yaml\n\n# Detect backend for cross-link\nls ..\u002Fbackend\u002F ..\u002Fserver\u002F ..\u002Fapi\u002F 2>\u002Fdev\u002Fnull\nfind .. -maxdepth 3 \\( -name \"go.mod\" -o -name \"requirements.txt\" -o -name \"Gemfile\" -o -name \"*.csproj\" \\) 2>\u002Fdev\u002Fnull | grep -v flutter | head -10\n\n# Detect platform targets\nls android\u002F ios\u002F macos\u002F linux\u002F windows\u002F web\u002F 2>\u002Fdev\u002Fnull\n","bash","",[188],{"type":48,"tag":113,"props":189,"children":190},{"__ignoreMap":186},[191,203,250,259,268,306,314,323,381,389,398,429,437,446,475,483,492,521,529,538,567,575,584,613,621,630,659,667,676,709,867,875,884],{"type":48,"tag":192,"props":193,"children":196},"span",{"class":194,"line":195},"line",1,[197],{"type":48,"tag":192,"props":198,"children":200},{"style":199},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[201],{"type":62,"value":202},"# Detect Flutter project type and existing Sentry\n",{"type":48,"tag":192,"props":204,"children":206},{"class":194,"line":205},2,[207,213,219,225,230,235,240,245],{"type":48,"tag":192,"props":208,"children":210},{"style":209},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[211],{"type":62,"value":212},"cat",{"type":48,"tag":192,"props":214,"children":216},{"style":215},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[217],{"type":62,"value":218}," pubspec.yaml",{"type":48,"tag":192,"props":220,"children":222},{"style":221},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[223],{"type":62,"value":224}," |",{"type":48,"tag":192,"props":226,"children":227},{"style":209},[228],{"type":62,"value":229}," grep",{"type":48,"tag":192,"props":231,"children":232},{"style":215},[233],{"type":62,"value":234}," -E",{"type":48,"tag":192,"props":236,"children":237},{"style":221},[238],{"type":62,"value":239}," '",{"type":48,"tag":192,"props":241,"children":242},{"style":215},[243],{"type":62,"value":244},"(sentry|flutter|dart)",{"type":48,"tag":192,"props":246,"children":247},{"style":221},[248],{"type":62,"value":249},"'\n",{"type":48,"tag":192,"props":251,"children":253},{"class":194,"line":252},3,[254],{"type":48,"tag":192,"props":255,"children":256},{"emptyLinePlaceholder":43},[257],{"type":62,"value":258},"\n",{"type":48,"tag":192,"props":260,"children":262},{"class":194,"line":261},4,[263],{"type":48,"tag":192,"props":264,"children":265},{"style":199},[266],{"type":62,"value":267},"# Check SDK version\n",{"type":48,"tag":192,"props":269,"children":271},{"class":194,"line":270},5,[272,276,280,284,288,293,297,302],{"type":48,"tag":192,"props":273,"children":274},{"style":209},[275],{"type":62,"value":212},{"type":48,"tag":192,"props":277,"children":278},{"style":215},[279],{"type":62,"value":218},{"type":48,"tag":192,"props":281,"children":282},{"style":221},[283],{"type":62,"value":224},{"type":48,"tag":192,"props":285,"children":286},{"style":209},[287],{"type":62,"value":229},{"type":48,"tag":192,"props":289,"children":290},{"style":215},[291],{"type":62,"value":292}," -A2",{"type":48,"tag":192,"props":294,"children":295},{"style":221},[296],{"type":62,"value":239},{"type":48,"tag":192,"props":298,"children":299},{"style":215},[300],{"type":62,"value":301},"environment:",{"type":48,"tag":192,"props":303,"children":304},{"style":221},[305],{"type":62,"value":249},{"type":48,"tag":192,"props":307,"children":309},{"class":194,"line":308},6,[310],{"type":48,"tag":192,"props":311,"children":312},{"emptyLinePlaceholder":43},[313],{"type":62,"value":258},{"type":48,"tag":192,"props":315,"children":317},{"class":194,"line":316},7,[318],{"type":48,"tag":192,"props":319,"children":320},{"style":199},[321],{"type":62,"value":322},"# Check for existing Sentry initialization\n",{"type":48,"tag":192,"props":324,"children":326},{"class":194,"line":325},8,[327,332,337,342,347,352,357,362,367,371,376],{"type":48,"tag":192,"props":328,"children":329},{"style":209},[330],{"type":62,"value":331},"grep",{"type":48,"tag":192,"props":333,"children":334},{"style":215},[335],{"type":62,"value":336}," -r",{"type":48,"tag":192,"props":338,"children":339},{"style":221},[340],{"type":62,"value":341}," \"",{"type":48,"tag":192,"props":343,"children":344},{"style":215},[345],{"type":62,"value":346},"SentryFlutter.init\\|Sentry.init",{"type":48,"tag":192,"props":348,"children":349},{"style":221},[350],{"type":62,"value":351},"\"",{"type":48,"tag":192,"props":353,"children":354},{"style":215},[355],{"type":62,"value":356}," lib\u002F",{"type":48,"tag":192,"props":358,"children":359},{"style":221},[360],{"type":62,"value":361}," 2>",{"type":48,"tag":192,"props":363,"children":364},{"style":215},[365],{"type":62,"value":366},"\u002Fdev\u002Fnull",{"type":48,"tag":192,"props":368,"children":369},{"style":221},[370],{"type":62,"value":224},{"type":48,"tag":192,"props":372,"children":373},{"style":209},[374],{"type":62,"value":375}," head",{"type":48,"tag":192,"props":377,"children":378},{"style":215},[379],{"type":62,"value":380}," -5\n",{"type":48,"tag":192,"props":382,"children":384},{"class":194,"line":383},9,[385],{"type":48,"tag":192,"props":386,"children":387},{"emptyLinePlaceholder":43},[388],{"type":62,"value":258},{"type":48,"tag":192,"props":390,"children":392},{"class":194,"line":391},10,[393],{"type":48,"tag":192,"props":394,"children":395},{"style":199},[396],{"type":62,"value":397},"# Detect navigation library\n",{"type":48,"tag":192,"props":399,"children":401},{"class":194,"line":400},11,[402,406,410,414,419,424],{"type":48,"tag":192,"props":403,"children":404},{"style":209},[405],{"type":62,"value":331},{"type":48,"tag":192,"props":407,"children":408},{"style":215},[409],{"type":62,"value":234},{"type":48,"tag":192,"props":411,"children":412},{"style":221},[413],{"type":62,"value":239},{"type":48,"tag":192,"props":415,"children":416},{"style":215},[417],{"type":62,"value":418},"(go_router|auto_route|get:|beamer|routemaster)",{"type":48,"tag":192,"props":420,"children":421},{"style":221},[422],{"type":62,"value":423},"'",{"type":48,"tag":192,"props":425,"children":426},{"style":215},[427],{"type":62,"value":428}," pubspec.yaml\n",{"type":48,"tag":192,"props":430,"children":432},{"class":194,"line":431},12,[433],{"type":48,"tag":192,"props":434,"children":435},{"emptyLinePlaceholder":43},[436],{"type":62,"value":258},{"type":48,"tag":192,"props":438,"children":440},{"class":194,"line":439},13,[441],{"type":48,"tag":192,"props":442,"children":443},{"style":199},[444],{"type":62,"value":445},"# Detect HTTP client\n",{"type":48,"tag":192,"props":447,"children":449},{"class":194,"line":448},14,[450,454,458,462,467,471],{"type":48,"tag":192,"props":451,"children":452},{"style":209},[453],{"type":62,"value":331},{"type":48,"tag":192,"props":455,"children":456},{"style":215},[457],{"type":62,"value":234},{"type":48,"tag":192,"props":459,"children":460},{"style":221},[461],{"type":62,"value":239},{"type":48,"tag":192,"props":463,"children":464},{"style":215},[465],{"type":62,"value":466},"(dio:|http:|chopper:)",{"type":48,"tag":192,"props":468,"children":469},{"style":221},[470],{"type":62,"value":423},{"type":48,"tag":192,"props":472,"children":473},{"style":215},[474],{"type":62,"value":428},{"type":48,"tag":192,"props":476,"children":478},{"class":194,"line":477},15,[479],{"type":48,"tag":192,"props":480,"children":481},{"emptyLinePlaceholder":43},[482],{"type":62,"value":258},{"type":48,"tag":192,"props":484,"children":486},{"class":194,"line":485},16,[487],{"type":48,"tag":192,"props":488,"children":489},{"style":199},[490],{"type":62,"value":491},"# Detect database packages\n",{"type":48,"tag":192,"props":493,"children":495},{"class":194,"line":494},17,[496,500,504,508,513,517],{"type":48,"tag":192,"props":497,"children":498},{"style":209},[499],{"type":62,"value":331},{"type":48,"tag":192,"props":501,"children":502},{"style":215},[503],{"type":62,"value":234},{"type":48,"tag":192,"props":505,"children":506},{"style":221},[507],{"type":62,"value":239},{"type":48,"tag":192,"props":509,"children":510},{"style":215},[511],{"type":62,"value":512},"(sqflite|drift|hive|isar|floor)",{"type":48,"tag":192,"props":514,"children":515},{"style":221},[516],{"type":62,"value":423},{"type":48,"tag":192,"props":518,"children":519},{"style":215},[520],{"type":62,"value":428},{"type":48,"tag":192,"props":522,"children":524},{"class":194,"line":523},18,[525],{"type":48,"tag":192,"props":526,"children":527},{"emptyLinePlaceholder":43},[528],{"type":62,"value":258},{"type":48,"tag":192,"props":530,"children":532},{"class":194,"line":531},19,[533],{"type":48,"tag":192,"props":534,"children":535},{"style":199},[536],{"type":62,"value":537},"# Detect state management (for integration patterns)\n",{"type":48,"tag":192,"props":539,"children":541},{"class":194,"line":540},20,[542,546,550,554,559,563],{"type":48,"tag":192,"props":543,"children":544},{"style":209},[545],{"type":62,"value":331},{"type":48,"tag":192,"props":547,"children":548},{"style":215},[549],{"type":62,"value":234},{"type":48,"tag":192,"props":551,"children":552},{"style":221},[553],{"type":62,"value":239},{"type":48,"tag":192,"props":555,"children":556},{"style":215},[557],{"type":62,"value":558},"(flutter_bloc|riverpod|provider:|get:)",{"type":48,"tag":192,"props":560,"children":561},{"style":221},[562],{"type":62,"value":423},{"type":48,"tag":192,"props":564,"children":565},{"style":215},[566],{"type":62,"value":428},{"type":48,"tag":192,"props":568,"children":570},{"class":194,"line":569},21,[571],{"type":48,"tag":192,"props":572,"children":573},{"emptyLinePlaceholder":43},[574],{"type":62,"value":258},{"type":48,"tag":192,"props":576,"children":578},{"class":194,"line":577},22,[579],{"type":48,"tag":192,"props":580,"children":581},{"style":199},[582],{"type":62,"value":583},"# Detect GraphQL\n",{"type":48,"tag":192,"props":585,"children":587},{"class":194,"line":586},23,[588,592,596,600,605,609],{"type":48,"tag":192,"props":589,"children":590},{"style":209},[591],{"type":62,"value":331},{"type":48,"tag":192,"props":593,"children":594},{"style":215},[595],{"type":62,"value":234},{"type":48,"tag":192,"props":597,"children":598},{"style":221},[599],{"type":62,"value":239},{"type":48,"tag":192,"props":601,"children":602},{"style":215},[603],{"type":62,"value":604},"(graphql|ferry|gql)",{"type":48,"tag":192,"props":606,"children":607},{"style":221},[608],{"type":62,"value":423},{"type":48,"tag":192,"props":610,"children":611},{"style":215},[612],{"type":62,"value":428},{"type":48,"tag":192,"props":614,"children":616},{"class":194,"line":615},24,[617],{"type":48,"tag":192,"props":618,"children":619},{"emptyLinePlaceholder":43},[620],{"type":62,"value":258},{"type":48,"tag":192,"props":622,"children":624},{"class":194,"line":623},25,[625],{"type":48,"tag":192,"props":626,"children":627},{"style":199},[628],{"type":62,"value":629},"# Detect Firebase\n",{"type":48,"tag":192,"props":631,"children":633},{"class":194,"line":632},26,[634,638,642,646,651,655],{"type":48,"tag":192,"props":635,"children":636},{"style":209},[637],{"type":62,"value":331},{"type":48,"tag":192,"props":639,"children":640},{"style":215},[641],{"type":62,"value":234},{"type":48,"tag":192,"props":643,"children":644},{"style":221},[645],{"type":62,"value":239},{"type":48,"tag":192,"props":647,"children":648},{"style":215},[649],{"type":62,"value":650},"(firebase_core|supabase)",{"type":48,"tag":192,"props":652,"children":653},{"style":221},[654],{"type":62,"value":423},{"type":48,"tag":192,"props":656,"children":657},{"style":215},[658],{"type":62,"value":428},{"type":48,"tag":192,"props":660,"children":662},{"class":194,"line":661},27,[663],{"type":48,"tag":192,"props":664,"children":665},{"emptyLinePlaceholder":43},[666],{"type":62,"value":258},{"type":48,"tag":192,"props":668,"children":670},{"class":194,"line":669},28,[671],{"type":48,"tag":192,"props":672,"children":673},{"style":199},[674],{"type":62,"value":675},"# Detect backend for cross-link\n",{"type":48,"tag":192,"props":677,"children":679},{"class":194,"line":678},29,[680,685,690,695,700,704],{"type":48,"tag":192,"props":681,"children":682},{"style":209},[683],{"type":62,"value":684},"ls",{"type":48,"tag":192,"props":686,"children":687},{"style":215},[688],{"type":62,"value":689}," ..\u002Fbackend\u002F",{"type":48,"tag":192,"props":691,"children":692},{"style":215},[693],{"type":62,"value":694}," ..\u002Fserver\u002F",{"type":48,"tag":192,"props":696,"children":697},{"style":215},[698],{"type":62,"value":699}," ..\u002Fapi\u002F",{"type":48,"tag":192,"props":701,"children":702},{"style":221},[703],{"type":62,"value":361},{"type":48,"tag":192,"props":705,"children":706},{"style":215},[707],{"type":62,"value":708},"\u002Fdev\u002Fnull\n",{"type":48,"tag":192,"props":710,"children":711},{"class":194,"line":31},[712,717,722,727,733,739,744,748,753,757,762,767,771,776,780,784,788,792,797,801,805,809,813,818,822,827,832,836,840,844,849,854,858,862],{"type":48,"tag":192,"props":713,"children":714},{"style":209},[715],{"type":62,"value":716},"find",{"type":48,"tag":192,"props":718,"children":719},{"style":215},[720],{"type":62,"value":721}," ..",{"type":48,"tag":192,"props":723,"children":724},{"style":215},[725],{"type":62,"value":726}," -maxdepth",{"type":48,"tag":192,"props":728,"children":730},{"style":729},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[731],{"type":62,"value":732}," 3",{"type":48,"tag":192,"props":734,"children":736},{"style":735},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[737],{"type":62,"value":738}," \\( ",{"type":48,"tag":192,"props":740,"children":741},{"style":215},[742],{"type":62,"value":743},"-name",{"type":48,"tag":192,"props":745,"children":746},{"style":221},[747],{"type":62,"value":341},{"type":48,"tag":192,"props":749,"children":750},{"style":215},[751],{"type":62,"value":752},"go.mod",{"type":48,"tag":192,"props":754,"children":755},{"style":221},[756],{"type":62,"value":351},{"type":48,"tag":192,"props":758,"children":759},{"style":215},[760],{"type":62,"value":761}," -o",{"type":48,"tag":192,"props":763,"children":764},{"style":215},[765],{"type":62,"value":766}," -name",{"type":48,"tag":192,"props":768,"children":769},{"style":221},[770],{"type":62,"value":341},{"type":48,"tag":192,"props":772,"children":773},{"style":215},[774],{"type":62,"value":775},"requirements.txt",{"type":48,"tag":192,"props":777,"children":778},{"style":221},[779],{"type":62,"value":351},{"type":48,"tag":192,"props":781,"children":782},{"style":215},[783],{"type":62,"value":761},{"type":48,"tag":192,"props":785,"children":786},{"style":215},[787],{"type":62,"value":766},{"type":48,"tag":192,"props":789,"children":790},{"style":221},[791],{"type":62,"value":341},{"type":48,"tag":192,"props":793,"children":794},{"style":215},[795],{"type":62,"value":796},"Gemfile",{"type":48,"tag":192,"props":798,"children":799},{"style":221},[800],{"type":62,"value":351},{"type":48,"tag":192,"props":802,"children":803},{"style":215},[804],{"type":62,"value":761},{"type":48,"tag":192,"props":806,"children":807},{"style":215},[808],{"type":62,"value":766},{"type":48,"tag":192,"props":810,"children":811},{"style":221},[812],{"type":62,"value":341},{"type":48,"tag":192,"props":814,"children":815},{"style":215},[816],{"type":62,"value":817},"*.csproj",{"type":48,"tag":192,"props":819,"children":820},{"style":221},[821],{"type":62,"value":351},{"type":48,"tag":192,"props":823,"children":824},{"style":735},[825],{"type":62,"value":826}," \\) ",{"type":48,"tag":192,"props":828,"children":829},{"style":221},[830],{"type":62,"value":831},"2>",{"type":48,"tag":192,"props":833,"children":834},{"style":215},[835],{"type":62,"value":366},{"type":48,"tag":192,"props":837,"children":838},{"style":221},[839],{"type":62,"value":224},{"type":48,"tag":192,"props":841,"children":842},{"style":209},[843],{"type":62,"value":229},{"type":48,"tag":192,"props":845,"children":846},{"style":215},[847],{"type":62,"value":848}," -v",{"type":48,"tag":192,"props":850,"children":851},{"style":215},[852],{"type":62,"value":853}," flutter",{"type":48,"tag":192,"props":855,"children":856},{"style":221},[857],{"type":62,"value":224},{"type":48,"tag":192,"props":859,"children":860},{"style":209},[861],{"type":62,"value":375},{"type":48,"tag":192,"props":863,"children":864},{"style":215},[865],{"type":62,"value":866}," -10\n",{"type":48,"tag":192,"props":868,"children":870},{"class":194,"line":869},31,[871],{"type":48,"tag":192,"props":872,"children":873},{"emptyLinePlaceholder":43},[874],{"type":62,"value":258},{"type":48,"tag":192,"props":876,"children":878},{"class":194,"line":877},32,[879],{"type":48,"tag":192,"props":880,"children":881},{"style":199},[882],{"type":62,"value":883},"# Detect platform targets\n",{"type":48,"tag":192,"props":885,"children":887},{"class":194,"line":886},33,[888,892,897,902,907,912,917,922,926],{"type":48,"tag":192,"props":889,"children":890},{"style":209},[891],{"type":62,"value":684},{"type":48,"tag":192,"props":893,"children":894},{"style":215},[895],{"type":62,"value":896}," android\u002F",{"type":48,"tag":192,"props":898,"children":899},{"style":215},[900],{"type":62,"value":901}," ios\u002F",{"type":48,"tag":192,"props":903,"children":904},{"style":215},[905],{"type":62,"value":906}," macos\u002F",{"type":48,"tag":192,"props":908,"children":909},{"style":215},[910],{"type":62,"value":911}," linux\u002F",{"type":48,"tag":192,"props":913,"children":914},{"style":215},[915],{"type":62,"value":916}," windows\u002F",{"type":48,"tag":192,"props":918,"children":919},{"style":215},[920],{"type":62,"value":921}," web\u002F",{"type":48,"tag":192,"props":923,"children":924},{"style":221},[925],{"type":62,"value":361},{"type":48,"tag":192,"props":927,"children":928},{"style":215},[929],{"type":62,"value":708},{"type":48,"tag":53,"props":931,"children":932},{},[933],{"type":48,"tag":141,"props":934,"children":935},{},[936],{"type":62,"value":937},"What to determine:",{"type":48,"tag":939,"props":940,"children":941},"table",{},[942,961],{"type":48,"tag":943,"props":944,"children":945},"thead",{},[946],{"type":48,"tag":947,"props":948,"children":949},"tr",{},[950,956],{"type":48,"tag":951,"props":952,"children":953},"th",{},[954],{"type":62,"value":955},"Question",{"type":48,"tag":951,"props":957,"children":958},{},[959],{"type":62,"value":960},"Impact",{"type":48,"tag":962,"props":963,"children":964},"tbody",{},[965,992,1019,1054,1080,1127,1156,1176,1196],{"type":48,"tag":947,"props":966,"children":967},{},[968,987],{"type":48,"tag":969,"props":970,"children":971},"td",{},[972,977,979,985],{"type":48,"tag":113,"props":973,"children":975},{"className":974},[],[976],{"type":62,"value":118},{"type":62,"value":978}," already in ",{"type":48,"tag":113,"props":980,"children":982},{"className":981},[],[983],{"type":62,"value":984},"pubspec.yaml",{"type":62,"value":986},"?",{"type":48,"tag":969,"props":988,"children":989},{},[990],{"type":62,"value":991},"Skip install, jump to feature config",{"type":48,"tag":947,"props":993,"children":994},{},[995,1007],{"type":48,"tag":969,"props":996,"children":997},{},[998,1000,1006],{"type":62,"value":999},"Dart SDK ",{"type":48,"tag":113,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":62,"value":1005},">=3.5",{"type":62,"value":986},{"type":48,"tag":969,"props":1008,"children":1009},{},[1010,1012,1017],{"type":62,"value":1011},"Required for ",{"type":48,"tag":113,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":62,"value":118},{"type":62,"value":1018}," ≥9.0.0",{"type":48,"tag":947,"props":1020,"children":1021},{},[1022,1041],{"type":48,"tag":969,"props":1023,"children":1024},{},[1025,1031,1033,1039],{"type":48,"tag":113,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":62,"value":1030},"go_router",{"type":62,"value":1032}," or ",{"type":48,"tag":113,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":62,"value":1038},"auto_route",{"type":62,"value":1040}," present?",{"type":48,"tag":969,"props":1042,"children":1043},{},[1044,1046,1052],{"type":62,"value":1045},"Use ",{"type":48,"tag":113,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":62,"value":1051},"SentryNavigatorObserver",{"type":62,"value":1053}," — specific patterns apply",{"type":48,"tag":947,"props":1055,"children":1056},{},[1057,1067],{"type":48,"tag":969,"props":1058,"children":1059},{},[1060,1066],{"type":48,"tag":113,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":62,"value":1065},"dio",{"type":62,"value":1040},{"type":48,"tag":969,"props":1068,"children":1069},{},[1070,1072,1078],{"type":62,"value":1071},"Recommend ",{"type":48,"tag":113,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":62,"value":1077},"sentry_dio",{"type":62,"value":1079}," integration",{"type":48,"tag":947,"props":1081,"children":1082},{},[1083,1114],{"type":48,"tag":969,"props":1084,"children":1085},{},[1086,1092,1093,1099,1100,1106,1107,1113],{"type":48,"tag":113,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":62,"value":1091},"sqflite",{"type":62,"value":120},{"type":48,"tag":113,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":62,"value":1098},"drift",{"type":62,"value":120},{"type":48,"tag":113,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":62,"value":1105},"hive",{"type":62,"value":120},{"type":48,"tag":113,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":62,"value":1112},"isar",{"type":62,"value":1040},{"type":48,"tag":969,"props":1115,"children":1116},{},[1117,1119,1125],{"type":62,"value":1118},"Recommend matching ",{"type":48,"tag":113,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":62,"value":1124},"sentry_*",{"type":62,"value":1126}," DB package",{"type":48,"tag":947,"props":1128,"children":1129},{},[1130,1151],{"type":48,"tag":969,"props":1131,"children":1132},{},[1133,1135,1141,1143,1149],{"type":62,"value":1134},"Has ",{"type":48,"tag":113,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":62,"value":1140},"android\u002F",{"type":62,"value":1142}," and ",{"type":48,"tag":113,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":62,"value":1148},"ios\u002F",{"type":62,"value":1150}," directories?",{"type":48,"tag":969,"props":1152,"children":1153},{},[1154],{"type":62,"value":1155},"Full mobile feature set available",{"type":48,"tag":947,"props":1157,"children":1158},{},[1159,1171],{"type":48,"tag":969,"props":1160,"children":1161},{},[1162,1163,1169],{"type":62,"value":1134},{"type":48,"tag":113,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":62,"value":1168},"web\u002F",{"type":62,"value":1170}," directory only?",{"type":48,"tag":969,"props":1172,"children":1173},{},[1174],{"type":62,"value":1175},"Session Replay and Profiling unavailable",{"type":48,"tag":947,"props":1177,"children":1178},{},[1179,1191],{"type":48,"tag":969,"props":1180,"children":1181},{},[1182,1183,1189],{"type":62,"value":1134},{"type":48,"tag":113,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":62,"value":1188},"macos\u002F",{"type":62,"value":1190}," directory?",{"type":48,"tag":969,"props":1192,"children":1193},{},[1194],{"type":62,"value":1195},"Profiling available (alpha)",{"type":48,"tag":947,"props":1197,"children":1198},{},[1199,1204],{"type":48,"tag":969,"props":1200,"children":1201},{},[1202],{"type":62,"value":1203},"Backend directory detected?",{"type":48,"tag":969,"props":1205,"children":1206},{},[1207],{"type":62,"value":1208},"Trigger Phase 4 cross-link",{"type":48,"tag":166,"props":1210,"children":1211},{},[],{"type":48,"tag":86,"props":1213,"children":1215},{"id":1214},"phase-2-recommend",[1216],{"type":62,"value":1217},"Phase 2: Recommend",{"type":48,"tag":53,"props":1219,"children":1220},{},[1221],{"type":62,"value":1222},"Present a concrete recommendation based on what you found. Don't ask open-ended questions — lead with a proposal:",{"type":48,"tag":53,"props":1224,"children":1225},{},[1226],{"type":48,"tag":141,"props":1227,"children":1228},{},[1229],{"type":62,"value":1230},"Recommended (core coverage — always set up these):",{"type":48,"tag":93,"props":1232,"children":1233},{},[1234,1246,1257],{"type":48,"tag":97,"props":1235,"children":1236},{},[1237,1239,1244],{"type":62,"value":1238},"✅ ",{"type":48,"tag":141,"props":1240,"children":1241},{},[1242],{"type":62,"value":1243},"Error Monitoring",{"type":62,"value":1245}," — captures Dart exceptions, Flutter framework errors, and native crashes (iOS + Android)",{"type":48,"tag":97,"props":1247,"children":1248},{},[1249,1250,1255],{"type":62,"value":1238},{"type":48,"tag":141,"props":1251,"children":1252},{},[1253],{"type":62,"value":1254},"Tracing",{"type":62,"value":1256}," — auto-instruments navigation, app start, network requests, and UI interactions",{"type":48,"tag":97,"props":1258,"children":1259},{},[1260,1261,1266],{"type":62,"value":1238},{"type":48,"tag":141,"props":1262,"children":1263},{},[1264],{"type":62,"value":1265},"Session Replay",{"type":62,"value":1267}," — captures widget tree screenshots for debugging (iOS + Android only)",{"type":48,"tag":53,"props":1269,"children":1270},{},[1271],{"type":48,"tag":141,"props":1272,"children":1273},{},[1274],{"type":62,"value":1275},"Optional (enhanced observability):",{"type":48,"tag":93,"props":1277,"children":1278},{},[1279,1291,1316],{"type":48,"tag":97,"props":1280,"children":1281},{},[1282,1284,1289],{"type":62,"value":1283},"⚡ ",{"type":48,"tag":141,"props":1285,"children":1286},{},[1287],{"type":62,"value":1288},"Profiling",{"type":62,"value":1290}," — CPU profiling; iOS and macOS only (alpha)",{"type":48,"tag":97,"props":1292,"children":1293},{},[1294,1295,1300,1302,1308,1309,1315],{"type":62,"value":1283},{"type":48,"tag":141,"props":1296,"children":1297},{},[1298],{"type":62,"value":1299},"Logging",{"type":62,"value":1301}," — structured logs via ",{"type":48,"tag":113,"props":1303,"children":1305},{"className":1304},[],[1306],{"type":62,"value":1307},"Sentry.logger.*",{"type":62,"value":1142},{"type":48,"tag":113,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":62,"value":1314},"sentry_logging",{"type":62,"value":1079},{"type":48,"tag":97,"props":1317,"children":1318},{},[1319,1320,1325],{"type":62,"value":1283},{"type":48,"tag":141,"props":1321,"children":1322},{},[1323],{"type":62,"value":1324},"Metrics",{"type":62,"value":1326}," — counters, gauges, distributions (SDK ≥9.11.0)",{"type":48,"tag":53,"props":1328,"children":1329},{},[1330],{"type":48,"tag":141,"props":1331,"children":1332},{},[1333],{"type":62,"value":1334},"Platform limitations — be upfront:",{"type":48,"tag":939,"props":1336,"children":1337},{},[1338,1359],{"type":48,"tag":943,"props":1339,"children":1340},{},[1341],{"type":48,"tag":947,"props":1342,"children":1343},{},[1344,1349,1354],{"type":48,"tag":951,"props":1345,"children":1346},{},[1347],{"type":62,"value":1348},"Feature",{"type":48,"tag":951,"props":1350,"children":1351},{},[1352],{"type":62,"value":1353},"Platforms",{"type":48,"tag":951,"props":1355,"children":1356},{},[1357],{"type":62,"value":1358},"Notes",{"type":48,"tag":962,"props":1360,"children":1361},{},[1362,1379,1396,1414,1431,1448],{"type":48,"tag":947,"props":1363,"children":1364},{},[1365,1369,1374],{"type":48,"tag":969,"props":1366,"children":1367},{},[1368],{"type":62,"value":1265},{"type":48,"tag":969,"props":1370,"children":1371},{},[1372],{"type":62,"value":1373},"iOS, Android",{"type":48,"tag":969,"props":1375,"children":1376},{},[1377],{"type":62,"value":1378},"Not available on macOS, Linux, Windows, Web",{"type":48,"tag":947,"props":1380,"children":1381},{},[1382,1386,1391],{"type":48,"tag":969,"props":1383,"children":1384},{},[1385],{"type":62,"value":1288},{"type":48,"tag":969,"props":1387,"children":1388},{},[1389],{"type":62,"value":1390},"iOS, macOS",{"type":48,"tag":969,"props":1392,"children":1393},{},[1394],{"type":62,"value":1395},"Alpha status; not available on Android, Linux, Windows, Web",{"type":48,"tag":947,"props":1397,"children":1398},{},[1399,1404,1409],{"type":48,"tag":969,"props":1400,"children":1401},{},[1402],{"type":62,"value":1403},"Native crashes",{"type":48,"tag":969,"props":1405,"children":1406},{},[1407],{"type":62,"value":1408},"iOS, Android, macOS",{"type":48,"tag":969,"props":1410,"children":1411},{},[1412],{"type":62,"value":1413},"NDK\u002Fsignal handling; Linux\u002FWindows\u002FWeb: Dart exceptions only",{"type":48,"tag":947,"props":1415,"children":1416},{},[1417,1422,1426],{"type":48,"tag":969,"props":1418,"children":1419},{},[1420],{"type":62,"value":1421},"App Start metrics",{"type":48,"tag":969,"props":1423,"children":1424},{},[1425],{"type":62,"value":1373},{"type":48,"tag":969,"props":1427,"children":1428},{},[1429],{"type":62,"value":1430},"Not available on desktop\u002Fweb",{"type":48,"tag":947,"props":1432,"children":1433},{},[1434,1439,1443],{"type":48,"tag":969,"props":1435,"children":1436},{},[1437],{"type":62,"value":1438},"Slow\u002Ffrozen frames",{"type":48,"tag":969,"props":1440,"children":1441},{},[1442],{"type":62,"value":1408},{"type":48,"tag":969,"props":1444,"children":1445},{},[1446],{"type":62,"value":1447},"Not available on Linux, Windows, Web",{"type":48,"tag":947,"props":1449,"children":1450},{},[1451,1456,1461],{"type":48,"tag":969,"props":1452,"children":1453},{},[1454],{"type":62,"value":1455},"Crons",{"type":48,"tag":969,"props":1457,"children":1458},{},[1459],{"type":62,"value":1460},"N\u002FA",{"type":48,"tag":969,"props":1462,"children":1463},{},[1464,1469],{"type":48,"tag":141,"props":1465,"children":1466},{},[1467],{"type":62,"value":1468},"Not available",{"type":62,"value":1470}," in the Flutter\u002FDart SDK",{"type":48,"tag":53,"props":1472,"children":1473},{},[1474,1476],{"type":62,"value":1475},"Propose: ",{"type":48,"tag":1477,"props":1478,"children":1479},"em",{},[1480],{"type":62,"value":1481},"\"For your Flutter app targeting iOS\u002FAndroid, I recommend Error Monitoring + Tracing + Session Replay. Want me to also add Logging and Profiling (iOS\u002FmacOS alpha)?\"",{"type":48,"tag":166,"props":1483,"children":1484},{},[],{"type":48,"tag":86,"props":1486,"children":1488},{"id":1487},"phase-3-guide",[1489],{"type":62,"value":1490},"Phase 3: Guide",{"type":48,"tag":1492,"props":1493,"children":1495},"h3",{"id":1494},"determine-your-setup-path",[1496],{"type":62,"value":1497},"Determine Your Setup Path",{"type":48,"tag":939,"props":1499,"children":1500},{},[1501,1517],{"type":48,"tag":943,"props":1502,"children":1503},{},[1504],{"type":48,"tag":947,"props":1505,"children":1506},{},[1507,1512],{"type":48,"tag":951,"props":1508,"children":1509},{},[1510],{"type":62,"value":1511},"Project type",{"type":48,"tag":951,"props":1513,"children":1514},{},[1515],{"type":62,"value":1516},"Recommended setup",{"type":48,"tag":962,"props":1518,"children":1519},{},[1520,1533,1559],{"type":48,"tag":947,"props":1521,"children":1522},{},[1523,1528],{"type":48,"tag":969,"props":1524,"children":1525},{},[1526],{"type":62,"value":1527},"Any Flutter app",{"type":48,"tag":969,"props":1529,"children":1530},{},[1531],{"type":62,"value":1532},"Wizard CLI (handles pubspec, init, symbol upload)",{"type":48,"tag":947,"props":1534,"children":1535},{},[1536,1541],{"type":48,"tag":969,"props":1537,"children":1538},{},[1539],{"type":62,"value":1540},"Manual preferred",{"type":48,"tag":969,"props":1542,"children":1543},{},[1544,1546,1551,1553],{"type":62,"value":1545},"Path B below — ",{"type":48,"tag":113,"props":1547,"children":1549},{"className":1548},[],[1550],{"type":62,"value":984},{"type":62,"value":1552}," + ",{"type":48,"tag":113,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":62,"value":1558},"main.dart",{"type":48,"tag":947,"props":1560,"children":1561},{},[1562,1567],{"type":48,"tag":969,"props":1563,"children":1564},{},[1565],{"type":62,"value":1566},"Dart-only (CLI, server)",{"type":48,"tag":969,"props":1568,"children":1569},{},[1570,1572,1577],{"type":62,"value":1571},"Path C below — pure ",{"type":48,"tag":113,"props":1573,"children":1575},{"className":1574},[],[1576],{"type":62,"value":8},{"type":62,"value":1578}," package",{"type":48,"tag":166,"props":1580,"children":1581},{},[],{"type":48,"tag":1492,"props":1583,"children":1585},{"id":1584},"path-a-wizard-cli-recommended",[1586],{"type":62,"value":1587},"Path A: Wizard CLI (Recommended)",{"type":48,"tag":49,"props":1589,"children":1590},{},[1591,1601,1646,1680,1823],{"type":48,"tag":53,"props":1592,"children":1593},{},[1594,1599],{"type":48,"tag":141,"props":1595,"children":1596},{},[1597],{"type":62,"value":1598},"You need to run this yourself",{"type":62,"value":1600}," — the wizard opens a browser for login and requires interactive input that the agent can't handle. Copy-paste into your terminal:",{"type":48,"tag":181,"props":1602,"children":1604},{"className":183,"code":1603,"language":185,"meta":186,"style":186},"brew install getsentry\u002Ftools\u002Fsentry-wizard && sentry-wizard -i flutter\n",[1605],{"type":48,"tag":113,"props":1606,"children":1607},{"__ignoreMap":186},[1608],{"type":48,"tag":192,"props":1609,"children":1610},{"class":194,"line":195},[1611,1616,1621,1626,1631,1636,1641],{"type":48,"tag":192,"props":1612,"children":1613},{"style":209},[1614],{"type":62,"value":1615},"brew",{"type":48,"tag":192,"props":1617,"children":1618},{"style":215},[1619],{"type":62,"value":1620}," install",{"type":48,"tag":192,"props":1622,"children":1623},{"style":215},[1624],{"type":62,"value":1625}," getsentry\u002Ftools\u002Fsentry-wizard",{"type":48,"tag":192,"props":1627,"children":1628},{"style":221},[1629],{"type":62,"value":1630}," &&",{"type":48,"tag":192,"props":1632,"children":1633},{"style":209},[1634],{"type":62,"value":1635}," sentry-wizard",{"type":48,"tag":192,"props":1637,"children":1638},{"style":215},[1639],{"type":62,"value":1640}," -i",{"type":48,"tag":192,"props":1642,"children":1643},{"style":215},[1644],{"type":62,"value":1645}," flutter\n",{"type":48,"tag":53,"props":1647,"children":1648},{},[1649,1651,1656,1658,1663,1665,1670,1672,1678],{"type":62,"value":1650},"It handles org\u002Fproject selection, adds ",{"type":48,"tag":113,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":62,"value":118},{"type":62,"value":1657}," to ",{"type":48,"tag":113,"props":1659,"children":1661},{"className":1660},[],[1662],{"type":62,"value":984},{"type":62,"value":1664},", updates ",{"type":48,"tag":113,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":62,"value":1558},{"type":62,"value":1671},", configures ",{"type":48,"tag":113,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":62,"value":1677},"sentry_dart_plugin",{"type":62,"value":1679}," for debug symbol upload, and adds build scripts. Here's what it creates\u002Fmodifies:",{"type":48,"tag":939,"props":1681,"children":1682},{},[1683,1704],{"type":48,"tag":943,"props":1684,"children":1685},{},[1686],{"type":48,"tag":947,"props":1687,"children":1688},{},[1689,1694,1699],{"type":48,"tag":951,"props":1690,"children":1691},{},[1692],{"type":62,"value":1693},"File",{"type":48,"tag":951,"props":1695,"children":1696},{},[1697],{"type":62,"value":1698},"Action",{"type":48,"tag":951,"props":1700,"children":1701},{},[1702],{"type":62,"value":1703},"Purpose",{"type":48,"tag":962,"props":1705,"children":1706},{},[1707,1743,1779,1801],{"type":48,"tag":947,"props":1708,"children":1709},{},[1710,1718,1738],{"type":48,"tag":969,"props":1711,"children":1712},{},[1713],{"type":48,"tag":113,"props":1714,"children":1716},{"className":1715},[],[1717],{"type":62,"value":984},{"type":48,"tag":969,"props":1719,"children":1720},{},[1721,1723,1728,1730,1736],{"type":62,"value":1722},"Adds ",{"type":48,"tag":113,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":62,"value":118},{"type":62,"value":1729}," dependency and ",{"type":48,"tag":113,"props":1731,"children":1733},{"className":1732},[],[1734],{"type":62,"value":1735},"sentry:",{"type":62,"value":1737}," config block",{"type":48,"tag":969,"props":1739,"children":1740},{},[1741],{"type":62,"value":1742},"SDK + symbol upload config",{"type":48,"tag":947,"props":1744,"children":1745},{},[1746,1755,1774],{"type":48,"tag":969,"props":1747,"children":1748},{},[1749],{"type":48,"tag":113,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":62,"value":1754},"lib\u002Fmain.dart",{"type":48,"tag":969,"props":1756,"children":1757},{},[1758,1760,1766,1768],{"type":62,"value":1759},"Wraps ",{"type":48,"tag":113,"props":1761,"children":1763},{"className":1762},[],[1764],{"type":62,"value":1765},"main()",{"type":62,"value":1767}," with ",{"type":48,"tag":113,"props":1769,"children":1771},{"className":1770},[],[1772],{"type":62,"value":1773},"SentryFlutter.init()",{"type":48,"tag":969,"props":1775,"children":1776},{},[1777],{"type":62,"value":1778},"SDK initialization",{"type":48,"tag":947,"props":1780,"children":1781},{},[1782,1791,1796],{"type":48,"tag":969,"props":1783,"children":1784},{},[1785],{"type":48,"tag":113,"props":1786,"children":1788},{"className":1787},[],[1789],{"type":62,"value":1790},"android\u002Fapp\u002Fbuild.gradle",{"type":48,"tag":969,"props":1792,"children":1793},{},[1794],{"type":62,"value":1795},"Adds Proguard config reference",{"type":48,"tag":969,"props":1797,"children":1798},{},[1799],{"type":62,"value":1800},"Android obfuscation support",{"type":48,"tag":947,"props":1802,"children":1803},{},[1804,1813,1818],{"type":48,"tag":969,"props":1805,"children":1806},{},[1807],{"type":48,"tag":113,"props":1808,"children":1810},{"className":1809},[],[1811],{"type":62,"value":1812},".sentryclirc",{"type":48,"tag":969,"props":1814,"children":1815},{},[1816],{"type":62,"value":1817},"Auth token and org\u002Fproject config",{"type":48,"tag":969,"props":1819,"children":1820},{},[1821],{"type":62,"value":1822},"Symbol upload credentials",{"type":48,"tag":53,"props":1824,"children":1825},{},[1826],{"type":48,"tag":141,"props":1827,"children":1828},{},[1829,1831,1837],{"type":62,"value":1830},"Once it finishes, come back and skip to ",{"type":48,"tag":57,"props":1832,"children":1834},{"href":1833},"#verification",[1835],{"type":62,"value":1836},"Verification",{"type":62,"value":1838},".",{"type":48,"tag":53,"props":1840,"children":1841},{},[1842],{"type":62,"value":1843},"If the user skips the wizard, proceed with Path B (Manual Setup) below.",{"type":48,"tag":166,"props":1845,"children":1846},{},[],{"type":48,"tag":1492,"props":1848,"children":1850},{"id":1849},"path-b-manual-flutter-app",[1851],{"type":62,"value":1852},"Path B: Manual — Flutter App",{"type":48,"tag":53,"props":1854,"children":1855},{},[1856],{"type":48,"tag":141,"props":1857,"children":1858},{},[1859],{"type":62,"value":1860},"Step 1 — Install",{"type":48,"tag":181,"props":1862,"children":1864},{"className":183,"code":1863,"language":185,"meta":186,"style":186},"flutter pub add sentry_flutter\n",[1865],{"type":48,"tag":113,"props":1866,"children":1867},{"__ignoreMap":186},[1868],{"type":48,"tag":192,"props":1869,"children":1870},{"class":194,"line":195},[1871,1875,1880,1885],{"type":48,"tag":192,"props":1872,"children":1873},{"style":209},[1874],{"type":62,"value":19},{"type":48,"tag":192,"props":1876,"children":1877},{"style":215},[1878],{"type":62,"value":1879}," pub",{"type":48,"tag":192,"props":1881,"children":1882},{"style":215},[1883],{"type":62,"value":1884}," add",{"type":48,"tag":192,"props":1886,"children":1887},{"style":215},[1888],{"type":62,"value":1889}," sentry_flutter\n",{"type":48,"tag":53,"props":1891,"children":1892},{},[1893,1895,1900],{"type":62,"value":1894},"Or add to ",{"type":48,"tag":113,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":62,"value":984},{"type":62,"value":1901}," manually:",{"type":48,"tag":181,"props":1903,"children":1907},{"className":1904,"code":1905,"language":1906,"meta":186,"style":186},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dependencies:\n  flutter:\n    sdk: flutter\n  sentry_flutter: ^9.14.0\n","yaml",[1908],{"type":48,"tag":113,"props":1909,"children":1910},{"__ignoreMap":186},[1911,1925,1937,1954],{"type":48,"tag":192,"props":1912,"children":1913},{"class":194,"line":195},[1914,1920],{"type":48,"tag":192,"props":1915,"children":1917},{"style":1916},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1918],{"type":62,"value":1919},"dependencies",{"type":48,"tag":192,"props":1921,"children":1922},{"style":221},[1923],{"type":62,"value":1924},":\n",{"type":48,"tag":192,"props":1926,"children":1927},{"class":194,"line":205},[1928,1933],{"type":48,"tag":192,"props":1929,"children":1930},{"style":1916},[1931],{"type":62,"value":1932},"  flutter",{"type":48,"tag":192,"props":1934,"children":1935},{"style":221},[1936],{"type":62,"value":1924},{"type":48,"tag":192,"props":1938,"children":1939},{"class":194,"line":252},[1940,1945,1950],{"type":48,"tag":192,"props":1941,"children":1942},{"style":1916},[1943],{"type":62,"value":1944},"    sdk",{"type":48,"tag":192,"props":1946,"children":1947},{"style":221},[1948],{"type":62,"value":1949},":",{"type":48,"tag":192,"props":1951,"children":1952},{"style":215},[1953],{"type":62,"value":1645},{"type":48,"tag":192,"props":1955,"children":1956},{"class":194,"line":261},[1957,1962,1966],{"type":48,"tag":192,"props":1958,"children":1959},{"style":1916},[1960],{"type":62,"value":1961},"  sentry_flutter",{"type":48,"tag":192,"props":1963,"children":1964},{"style":221},[1965],{"type":62,"value":1949},{"type":48,"tag":192,"props":1967,"children":1968},{"style":215},[1969],{"type":62,"value":1970}," ^9.14.0\n",{"type":48,"tag":53,"props":1972,"children":1973},{},[1974],{"type":62,"value":1975},"Then run:",{"type":48,"tag":181,"props":1977,"children":1979},{"className":183,"code":1978,"language":185,"meta":186,"style":186},"flutter pub get\n",[1980],{"type":48,"tag":113,"props":1981,"children":1982},{"__ignoreMap":186},[1983],{"type":48,"tag":192,"props":1984,"children":1985},{"class":194,"line":195},[1986,1990,1994],{"type":48,"tag":192,"props":1987,"children":1988},{"style":209},[1989],{"type":62,"value":19},{"type":48,"tag":192,"props":1991,"children":1992},{"style":215},[1993],{"type":62,"value":1879},{"type":48,"tag":192,"props":1995,"children":1996},{"style":215},[1997],{"type":62,"value":1998}," get\n",{"type":48,"tag":53,"props":2000,"children":2001},{},[2002],{"type":48,"tag":141,"props":2003,"children":2004},{},[2005,2007],{"type":62,"value":2006},"Step 2 — Initialize Sentry in ",{"type":48,"tag":113,"props":2008,"children":2010},{"className":2009},[],[2011],{"type":62,"value":1754},{"type":48,"tag":181,"props":2013,"children":2016},{"className":2014,"code":2015,"language":25,"meta":186,"style":186},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import 'package:flutter\u002Fwidgets.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nFuture\u003Cvoid> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.sendDefaultPii = true;\n\n      \u002F\u002F Tracing\n      options.tracesSampleRate = 1.0; \u002F\u002F lower to 0.1–0.2 in production\n\n      \u002F\u002F Profiling (iOS and macOS only — alpha)\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Session Replay (iOS and Android only)\n      options.replay.sessionSampleRate = 0.1;\n      options.replay.onErrorSampleRate = 1.0;\n\n      \u002F\u002F Structured Logging (SDK ≥9.5.0)\n      options.enableLogs = true;\n\n      options.environment = const bool.fromEnvironment('dart.vm.product')\n          ? 'production'\n          : 'development';\n    },\n    \u002F\u002F REQUIRED: wrap root widget to enable screenshots, replay, user interaction tracing\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n",[2017],{"type":48,"tag":113,"props":2018,"children":2019},{"__ignoreMap":186},[2020,2028,2036,2043,2051,2059,2067,2075,2083,2090,2098,2106,2113,2121,2129,2136,2144,2152,2160,2167,2175,2183,2190,2198,2206,2214,2222,2230,2238,2246],{"type":48,"tag":192,"props":2021,"children":2022},{"class":194,"line":195},[2023],{"type":48,"tag":192,"props":2024,"children":2025},{},[2026],{"type":62,"value":2027},"import 'package:flutter\u002Fwidgets.dart';\n",{"type":48,"tag":192,"props":2029,"children":2030},{"class":194,"line":205},[2031],{"type":48,"tag":192,"props":2032,"children":2033},{},[2034],{"type":62,"value":2035},"import 'package:sentry_flutter\u002Fsentry_flutter.dart';\n",{"type":48,"tag":192,"props":2037,"children":2038},{"class":194,"line":252},[2039],{"type":48,"tag":192,"props":2040,"children":2041},{"emptyLinePlaceholder":43},[2042],{"type":62,"value":258},{"type":48,"tag":192,"props":2044,"children":2045},{"class":194,"line":261},[2046],{"type":48,"tag":192,"props":2047,"children":2048},{},[2049],{"type":62,"value":2050},"Future\u003Cvoid> main() async {\n",{"type":48,"tag":192,"props":2052,"children":2053},{"class":194,"line":270},[2054],{"type":48,"tag":192,"props":2055,"children":2056},{},[2057],{"type":62,"value":2058},"  await SentryFlutter.init(\n",{"type":48,"tag":192,"props":2060,"children":2061},{"class":194,"line":308},[2062],{"type":48,"tag":192,"props":2063,"children":2064},{},[2065],{"type":62,"value":2066},"    (options) {\n",{"type":48,"tag":192,"props":2068,"children":2069},{"class":194,"line":316},[2070],{"type":48,"tag":192,"props":2071,"children":2072},{},[2073],{"type":62,"value":2074},"      options.dsn = 'YOUR_SENTRY_DSN';\n",{"type":48,"tag":192,"props":2076,"children":2077},{"class":194,"line":325},[2078],{"type":48,"tag":192,"props":2079,"children":2080},{},[2081],{"type":62,"value":2082},"      options.sendDefaultPii = true;\n",{"type":48,"tag":192,"props":2084,"children":2085},{"class":194,"line":383},[2086],{"type":48,"tag":192,"props":2087,"children":2088},{"emptyLinePlaceholder":43},[2089],{"type":62,"value":258},{"type":48,"tag":192,"props":2091,"children":2092},{"class":194,"line":391},[2093],{"type":48,"tag":192,"props":2094,"children":2095},{},[2096],{"type":62,"value":2097},"      \u002F\u002F Tracing\n",{"type":48,"tag":192,"props":2099,"children":2100},{"class":194,"line":400},[2101],{"type":48,"tag":192,"props":2102,"children":2103},{},[2104],{"type":62,"value":2105},"      options.tracesSampleRate = 1.0; \u002F\u002F lower to 0.1–0.2 in production\n",{"type":48,"tag":192,"props":2107,"children":2108},{"class":194,"line":431},[2109],{"type":48,"tag":192,"props":2110,"children":2111},{"emptyLinePlaceholder":43},[2112],{"type":62,"value":258},{"type":48,"tag":192,"props":2114,"children":2115},{"class":194,"line":439},[2116],{"type":48,"tag":192,"props":2117,"children":2118},{},[2119],{"type":62,"value":2120},"      \u002F\u002F Profiling (iOS and macOS only — alpha)\n",{"type":48,"tag":192,"props":2122,"children":2123},{"class":194,"line":448},[2124],{"type":48,"tag":192,"props":2125,"children":2126},{},[2127],{"type":62,"value":2128},"      options.profilesSampleRate = 1.0;\n",{"type":48,"tag":192,"props":2130,"children":2131},{"class":194,"line":477},[2132],{"type":48,"tag":192,"props":2133,"children":2134},{"emptyLinePlaceholder":43},[2135],{"type":62,"value":258},{"type":48,"tag":192,"props":2137,"children":2138},{"class":194,"line":485},[2139],{"type":48,"tag":192,"props":2140,"children":2141},{},[2142],{"type":62,"value":2143},"      \u002F\u002F Session Replay (iOS and Android only)\n",{"type":48,"tag":192,"props":2145,"children":2146},{"class":194,"line":494},[2147],{"type":48,"tag":192,"props":2148,"children":2149},{},[2150],{"type":62,"value":2151},"      options.replay.sessionSampleRate = 0.1;\n",{"type":48,"tag":192,"props":2153,"children":2154},{"class":194,"line":523},[2155],{"type":48,"tag":192,"props":2156,"children":2157},{},[2158],{"type":62,"value":2159},"      options.replay.onErrorSampleRate = 1.0;\n",{"type":48,"tag":192,"props":2161,"children":2162},{"class":194,"line":531},[2163],{"type":48,"tag":192,"props":2164,"children":2165},{"emptyLinePlaceholder":43},[2166],{"type":62,"value":258},{"type":48,"tag":192,"props":2168,"children":2169},{"class":194,"line":540},[2170],{"type":48,"tag":192,"props":2171,"children":2172},{},[2173],{"type":62,"value":2174},"      \u002F\u002F Structured Logging (SDK ≥9.5.0)\n",{"type":48,"tag":192,"props":2176,"children":2177},{"class":194,"line":569},[2178],{"type":48,"tag":192,"props":2179,"children":2180},{},[2181],{"type":62,"value":2182},"      options.enableLogs = true;\n",{"type":48,"tag":192,"props":2184,"children":2185},{"class":194,"line":577},[2186],{"type":48,"tag":192,"props":2187,"children":2188},{"emptyLinePlaceholder":43},[2189],{"type":62,"value":258},{"type":48,"tag":192,"props":2191,"children":2192},{"class":194,"line":586},[2193],{"type":48,"tag":192,"props":2194,"children":2195},{},[2196],{"type":62,"value":2197},"      options.environment = const bool.fromEnvironment('dart.vm.product')\n",{"type":48,"tag":192,"props":2199,"children":2200},{"class":194,"line":615},[2201],{"type":48,"tag":192,"props":2202,"children":2203},{},[2204],{"type":62,"value":2205},"          ? 'production'\n",{"type":48,"tag":192,"props":2207,"children":2208},{"class":194,"line":623},[2209],{"type":48,"tag":192,"props":2210,"children":2211},{},[2212],{"type":62,"value":2213},"          : 'development';\n",{"type":48,"tag":192,"props":2215,"children":2216},{"class":194,"line":632},[2217],{"type":48,"tag":192,"props":2218,"children":2219},{},[2220],{"type":62,"value":2221},"    },\n",{"type":48,"tag":192,"props":2223,"children":2224},{"class":194,"line":661},[2225],{"type":48,"tag":192,"props":2226,"children":2227},{},[2228],{"type":62,"value":2229},"    \u002F\u002F REQUIRED: wrap root widget to enable screenshots, replay, user interaction tracing\n",{"type":48,"tag":192,"props":2231,"children":2232},{"class":194,"line":669},[2233],{"type":48,"tag":192,"props":2234,"children":2235},{},[2236],{"type":62,"value":2237},"    appRunner: () => runApp(SentryWidget(child: MyApp())),\n",{"type":48,"tag":192,"props":2239,"children":2240},{"class":194,"line":678},[2241],{"type":48,"tag":192,"props":2242,"children":2243},{},[2244],{"type":62,"value":2245},"  );\n",{"type":48,"tag":192,"props":2247,"children":2248},{"class":194,"line":31},[2249],{"type":48,"tag":192,"props":2250,"children":2251},{},[2252],{"type":62,"value":2253},"}\n",{"type":48,"tag":53,"props":2255,"children":2256},{},[2257],{"type":48,"tag":141,"props":2258,"children":2259},{},[2260],{"type":62,"value":2261},"Step 3 — Add Navigation Observer",{"type":48,"tag":53,"props":2263,"children":2264},{},[2265,2267,2272,2274,2280,2281,2287],{"type":62,"value":2266},"Add ",{"type":48,"tag":113,"props":2268,"children":2270},{"className":2269},[],[2271],{"type":62,"value":1051},{"type":62,"value":2273}," to your ",{"type":48,"tag":113,"props":2275,"children":2277},{"className":2276},[],[2278],{"type":62,"value":2279},"MaterialApp",{"type":62,"value":1032},{"type":48,"tag":113,"props":2282,"children":2284},{"className":2283},[],[2285],{"type":62,"value":2286},"CupertinoApp",{"type":62,"value":1949},{"type":48,"tag":181,"props":2289,"children":2291},{"className":2014,"code":2290,"language":25,"meta":186,"style":186},"import 'package:flutter\u002Fmaterial.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      navigatorObservers: [\n        SentryNavigatorObserver(),\n      ],\n      \u002F\u002F Always name your routes for Sentry to track them\n      routes: {\n        '\u002F': (context) => HomeScreen(),\n        '\u002Fprofile': (context) => ProfileScreen(),\n      },\n    );\n  }\n}\n",[2292],{"type":48,"tag":113,"props":2293,"children":2294},{"__ignoreMap":186},[2295,2303,2310,2317,2325,2333,2341,2349,2357,2365,2373,2381,2389,2397,2405,2413,2421,2429],{"type":48,"tag":192,"props":2296,"children":2297},{"class":194,"line":195},[2298],{"type":48,"tag":192,"props":2299,"children":2300},{},[2301],{"type":62,"value":2302},"import 'package:flutter\u002Fmaterial.dart';\n",{"type":48,"tag":192,"props":2304,"children":2305},{"class":194,"line":205},[2306],{"type":48,"tag":192,"props":2307,"children":2308},{},[2309],{"type":62,"value":2035},{"type":48,"tag":192,"props":2311,"children":2312},{"class":194,"line":252},[2313],{"type":48,"tag":192,"props":2314,"children":2315},{"emptyLinePlaceholder":43},[2316],{"type":62,"value":258},{"type":48,"tag":192,"props":2318,"children":2319},{"class":194,"line":261},[2320],{"type":48,"tag":192,"props":2321,"children":2322},{},[2323],{"type":62,"value":2324},"class MyApp extends StatelessWidget {\n",{"type":48,"tag":192,"props":2326,"children":2327},{"class":194,"line":270},[2328],{"type":48,"tag":192,"props":2329,"children":2330},{},[2331],{"type":62,"value":2332},"  @override\n",{"type":48,"tag":192,"props":2334,"children":2335},{"class":194,"line":308},[2336],{"type":48,"tag":192,"props":2337,"children":2338},{},[2339],{"type":62,"value":2340},"  Widget build(BuildContext context) {\n",{"type":48,"tag":192,"props":2342,"children":2343},{"class":194,"line":316},[2344],{"type":48,"tag":192,"props":2345,"children":2346},{},[2347],{"type":62,"value":2348},"    return MaterialApp(\n",{"type":48,"tag":192,"props":2350,"children":2351},{"class":194,"line":325},[2352],{"type":48,"tag":192,"props":2353,"children":2354},{},[2355],{"type":62,"value":2356},"      navigatorObservers: [\n",{"type":48,"tag":192,"props":2358,"children":2359},{"class":194,"line":383},[2360],{"type":48,"tag":192,"props":2361,"children":2362},{},[2363],{"type":62,"value":2364},"        SentryNavigatorObserver(),\n",{"type":48,"tag":192,"props":2366,"children":2367},{"class":194,"line":391},[2368],{"type":48,"tag":192,"props":2369,"children":2370},{},[2371],{"type":62,"value":2372},"      ],\n",{"type":48,"tag":192,"props":2374,"children":2375},{"class":194,"line":400},[2376],{"type":48,"tag":192,"props":2377,"children":2378},{},[2379],{"type":62,"value":2380},"      \u002F\u002F Always name your routes for Sentry to track them\n",{"type":48,"tag":192,"props":2382,"children":2383},{"class":194,"line":431},[2384],{"type":48,"tag":192,"props":2385,"children":2386},{},[2387],{"type":62,"value":2388},"      routes: {\n",{"type":48,"tag":192,"props":2390,"children":2391},{"class":194,"line":439},[2392],{"type":48,"tag":192,"props":2393,"children":2394},{},[2395],{"type":62,"value":2396},"        '\u002F': (context) => HomeScreen(),\n",{"type":48,"tag":192,"props":2398,"children":2399},{"class":194,"line":448},[2400],{"type":48,"tag":192,"props":2401,"children":2402},{},[2403],{"type":62,"value":2404},"        '\u002Fprofile': (context) => ProfileScreen(),\n",{"type":48,"tag":192,"props":2406,"children":2407},{"class":194,"line":477},[2408],{"type":48,"tag":192,"props":2409,"children":2410},{},[2411],{"type":62,"value":2412},"      },\n",{"type":48,"tag":192,"props":2414,"children":2415},{"class":194,"line":485},[2416],{"type":48,"tag":192,"props":2417,"children":2418},{},[2419],{"type":62,"value":2420},"    );\n",{"type":48,"tag":192,"props":2422,"children":2423},{"class":194,"line":494},[2424],{"type":48,"tag":192,"props":2425,"children":2426},{},[2427],{"type":62,"value":2428},"  }\n",{"type":48,"tag":192,"props":2430,"children":2431},{"class":194,"line":523},[2432],{"type":48,"tag":192,"props":2433,"children":2434},{},[2435],{"type":62,"value":2253},{"type":48,"tag":53,"props":2437,"children":2438},{},[2439,2441,2446],{"type":62,"value":2440},"For ",{"type":48,"tag":141,"props":2442,"children":2443},{},[2444],{"type":62,"value":2445},"GoRouter",{"type":62,"value":1949},{"type":48,"tag":181,"props":2448,"children":2450},{"className":2014,"code":2449,"language":25,"meta":186,"style":186},"import 'package:go_router\u002Fgo_router.dart';\nimport 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nfinal GoRouter router = GoRouter(\n  observers: [SentryNavigatorObserver()],\n  routes: [\n    GoRoute(\n      path: '\u002F',\n      name: 'home', \u002F\u002F name is REQUIRED for Sentry route tracking\n      builder: (context, state) => const HomeScreen(),\n      routes: [\n        GoRoute(\n          path: 'profile\u002F:id',\n          name: 'profile', \u002F\u002F name is REQUIRED\n          builder: (context, state) => ProfileScreen(\n            id: state.pathParameters['id']!,\n          ),\n        ),\n      ],\n    ),\n  ],\n);\n",[2451],{"type":48,"tag":113,"props":2452,"children":2453},{"__ignoreMap":186},[2454,2462,2469,2476,2484,2492,2500,2508,2516,2524,2532,2540,2548,2556,2564,2572,2580,2588,2596,2603,2611,2619],{"type":48,"tag":192,"props":2455,"children":2456},{"class":194,"line":195},[2457],{"type":48,"tag":192,"props":2458,"children":2459},{},[2460],{"type":62,"value":2461},"import 'package:go_router\u002Fgo_router.dart';\n",{"type":48,"tag":192,"props":2463,"children":2464},{"class":194,"line":205},[2465],{"type":48,"tag":192,"props":2466,"children":2467},{},[2468],{"type":62,"value":2035},{"type":48,"tag":192,"props":2470,"children":2471},{"class":194,"line":252},[2472],{"type":48,"tag":192,"props":2473,"children":2474},{"emptyLinePlaceholder":43},[2475],{"type":62,"value":258},{"type":48,"tag":192,"props":2477,"children":2478},{"class":194,"line":261},[2479],{"type":48,"tag":192,"props":2480,"children":2481},{},[2482],{"type":62,"value":2483},"final GoRouter router = GoRouter(\n",{"type":48,"tag":192,"props":2485,"children":2486},{"class":194,"line":270},[2487],{"type":48,"tag":192,"props":2488,"children":2489},{},[2490],{"type":62,"value":2491},"  observers: [SentryNavigatorObserver()],\n",{"type":48,"tag":192,"props":2493,"children":2494},{"class":194,"line":308},[2495],{"type":48,"tag":192,"props":2496,"children":2497},{},[2498],{"type":62,"value":2499},"  routes: [\n",{"type":48,"tag":192,"props":2501,"children":2502},{"class":194,"line":316},[2503],{"type":48,"tag":192,"props":2504,"children":2505},{},[2506],{"type":62,"value":2507},"    GoRoute(\n",{"type":48,"tag":192,"props":2509,"children":2510},{"class":194,"line":325},[2511],{"type":48,"tag":192,"props":2512,"children":2513},{},[2514],{"type":62,"value":2515},"      path: '\u002F',\n",{"type":48,"tag":192,"props":2517,"children":2518},{"class":194,"line":383},[2519],{"type":48,"tag":192,"props":2520,"children":2521},{},[2522],{"type":62,"value":2523},"      name: 'home', \u002F\u002F name is REQUIRED for Sentry route tracking\n",{"type":48,"tag":192,"props":2525,"children":2526},{"class":194,"line":391},[2527],{"type":48,"tag":192,"props":2528,"children":2529},{},[2530],{"type":62,"value":2531},"      builder: (context, state) => const HomeScreen(),\n",{"type":48,"tag":192,"props":2533,"children":2534},{"class":194,"line":400},[2535],{"type":48,"tag":192,"props":2536,"children":2537},{},[2538],{"type":62,"value":2539},"      routes: [\n",{"type":48,"tag":192,"props":2541,"children":2542},{"class":194,"line":431},[2543],{"type":48,"tag":192,"props":2544,"children":2545},{},[2546],{"type":62,"value":2547},"        GoRoute(\n",{"type":48,"tag":192,"props":2549,"children":2550},{"class":194,"line":439},[2551],{"type":48,"tag":192,"props":2552,"children":2553},{},[2554],{"type":62,"value":2555},"          path: 'profile\u002F:id',\n",{"type":48,"tag":192,"props":2557,"children":2558},{"class":194,"line":448},[2559],{"type":48,"tag":192,"props":2560,"children":2561},{},[2562],{"type":62,"value":2563},"          name: 'profile', \u002F\u002F name is REQUIRED\n",{"type":48,"tag":192,"props":2565,"children":2566},{"class":194,"line":477},[2567],{"type":48,"tag":192,"props":2568,"children":2569},{},[2570],{"type":62,"value":2571},"          builder: (context, state) => ProfileScreen(\n",{"type":48,"tag":192,"props":2573,"children":2574},{"class":194,"line":485},[2575],{"type":48,"tag":192,"props":2576,"children":2577},{},[2578],{"type":62,"value":2579},"            id: state.pathParameters['id']!,\n",{"type":48,"tag":192,"props":2581,"children":2582},{"class":194,"line":494},[2583],{"type":48,"tag":192,"props":2584,"children":2585},{},[2586],{"type":62,"value":2587},"          ),\n",{"type":48,"tag":192,"props":2589,"children":2590},{"class":194,"line":523},[2591],{"type":48,"tag":192,"props":2592,"children":2593},{},[2594],{"type":62,"value":2595},"        ),\n",{"type":48,"tag":192,"props":2597,"children":2598},{"class":194,"line":531},[2599],{"type":48,"tag":192,"props":2600,"children":2601},{},[2602],{"type":62,"value":2372},{"type":48,"tag":192,"props":2604,"children":2605},{"class":194,"line":540},[2606],{"type":48,"tag":192,"props":2607,"children":2608},{},[2609],{"type":62,"value":2610},"    ),\n",{"type":48,"tag":192,"props":2612,"children":2613},{"class":194,"line":569},[2614],{"type":48,"tag":192,"props":2615,"children":2616},{},[2617],{"type":62,"value":2618},"  ],\n",{"type":48,"tag":192,"props":2620,"children":2621},{"class":194,"line":577},[2622],{"type":48,"tag":192,"props":2623,"children":2624},{},[2625],{"type":62,"value":2626},");\n",{"type":48,"tag":53,"props":2628,"children":2629},{},[2630],{"type":48,"tag":141,"props":2631,"children":2632},{},[2633],{"type":62,"value":2634},"Step 4 — Configure Debug Symbol Upload",{"type":48,"tag":53,"props":2636,"children":2637},{},[2638,2640,2646],{"type":62,"value":2639},"Readable stack traces in Sentry require uploading debug symbols when building with ",{"type":48,"tag":113,"props":2641,"children":2643},{"className":2642},[],[2644],{"type":62,"value":2645},"--obfuscate",{"type":62,"value":1838},{"type":48,"tag":53,"props":2648,"children":2649},{},[2650,2652,2657],{"type":62,"value":2651},"Add to ",{"type":48,"tag":113,"props":2653,"children":2655},{"className":2654},[],[2656],{"type":62,"value":984},{"type":62,"value":1949},{"type":48,"tag":181,"props":2659,"children":2661},{"className":1904,"code":2660,"language":1906,"meta":186,"style":186},"dev_dependencies:\n  sentry_dart_plugin: ^3.2.1\n\nsentry:\n  project: YOUR_PROJECT_SLUG\n  org: YOUR_ORG_SLUG\n  auth_token: YOUR_AUTH_TOKEN  # prefer SENTRY_AUTH_TOKEN env var instead\n  upload_debug_symbols: true\n  upload_sources: true\n  upload_source_maps: true     # for Web\n",[2662],{"type":48,"tag":113,"props":2663,"children":2664},{"__ignoreMap":186},[2665,2677,2694,2701,2712,2729,2746,2768,2786,2802],{"type":48,"tag":192,"props":2666,"children":2667},{"class":194,"line":195},[2668,2673],{"type":48,"tag":192,"props":2669,"children":2670},{"style":1916},[2671],{"type":62,"value":2672},"dev_dependencies",{"type":48,"tag":192,"props":2674,"children":2675},{"style":221},[2676],{"type":62,"value":1924},{"type":48,"tag":192,"props":2678,"children":2679},{"class":194,"line":205},[2680,2685,2689],{"type":48,"tag":192,"props":2681,"children":2682},{"style":1916},[2683],{"type":62,"value":2684},"  sentry_dart_plugin",{"type":48,"tag":192,"props":2686,"children":2687},{"style":221},[2688],{"type":62,"value":1949},{"type":48,"tag":192,"props":2690,"children":2691},{"style":215},[2692],{"type":62,"value":2693}," ^3.2.1\n",{"type":48,"tag":192,"props":2695,"children":2696},{"class":194,"line":252},[2697],{"type":48,"tag":192,"props":2698,"children":2699},{"emptyLinePlaceholder":43},[2700],{"type":62,"value":258},{"type":48,"tag":192,"props":2702,"children":2703},{"class":194,"line":261},[2704,2708],{"type":48,"tag":192,"props":2705,"children":2706},{"style":1916},[2707],{"type":62,"value":8},{"type":48,"tag":192,"props":2709,"children":2710},{"style":221},[2711],{"type":62,"value":1924},{"type":48,"tag":192,"props":2713,"children":2714},{"class":194,"line":270},[2715,2720,2724],{"type":48,"tag":192,"props":2716,"children":2717},{"style":1916},[2718],{"type":62,"value":2719},"  project",{"type":48,"tag":192,"props":2721,"children":2722},{"style":221},[2723],{"type":62,"value":1949},{"type":48,"tag":192,"props":2725,"children":2726},{"style":215},[2727],{"type":62,"value":2728}," YOUR_PROJECT_SLUG\n",{"type":48,"tag":192,"props":2730,"children":2731},{"class":194,"line":308},[2732,2737,2741],{"type":48,"tag":192,"props":2733,"children":2734},{"style":1916},[2735],{"type":62,"value":2736},"  org",{"type":48,"tag":192,"props":2738,"children":2739},{"style":221},[2740],{"type":62,"value":1949},{"type":48,"tag":192,"props":2742,"children":2743},{"style":215},[2744],{"type":62,"value":2745}," YOUR_ORG_SLUG\n",{"type":48,"tag":192,"props":2747,"children":2748},{"class":194,"line":316},[2749,2754,2758,2763],{"type":48,"tag":192,"props":2750,"children":2751},{"style":1916},[2752],{"type":62,"value":2753},"  auth_token",{"type":48,"tag":192,"props":2755,"children":2756},{"style":221},[2757],{"type":62,"value":1949},{"type":48,"tag":192,"props":2759,"children":2760},{"style":215},[2761],{"type":62,"value":2762}," YOUR_AUTH_TOKEN",{"type":48,"tag":192,"props":2764,"children":2765},{"style":199},[2766],{"type":62,"value":2767},"  # prefer SENTRY_AUTH_TOKEN env var instead\n",{"type":48,"tag":192,"props":2769,"children":2770},{"class":194,"line":325},[2771,2776,2780],{"type":48,"tag":192,"props":2772,"children":2773},{"style":1916},[2774],{"type":62,"value":2775},"  upload_debug_symbols",{"type":48,"tag":192,"props":2777,"children":2778},{"style":221},[2779],{"type":62,"value":1949},{"type":48,"tag":192,"props":2781,"children":2783},{"style":2782},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[2784],{"type":62,"value":2785}," true\n",{"type":48,"tag":192,"props":2787,"children":2788},{"class":194,"line":383},[2789,2794,2798],{"type":48,"tag":192,"props":2790,"children":2791},{"style":1916},[2792],{"type":62,"value":2793},"  upload_sources",{"type":48,"tag":192,"props":2795,"children":2796},{"style":221},[2797],{"type":62,"value":1949},{"type":48,"tag":192,"props":2799,"children":2800},{"style":2782},[2801],{"type":62,"value":2785},{"type":48,"tag":192,"props":2803,"children":2804},{"class":194,"line":391},[2805,2810,2814,2819],{"type":48,"tag":192,"props":2806,"children":2807},{"style":1916},[2808],{"type":62,"value":2809},"  upload_source_maps",{"type":48,"tag":192,"props":2811,"children":2812},{"style":221},[2813],{"type":62,"value":1949},{"type":48,"tag":192,"props":2815,"children":2816},{"style":2782},[2817],{"type":62,"value":2818}," true",{"type":48,"tag":192,"props":2820,"children":2821},{"style":199},[2822],{"type":62,"value":2823},"     # for Web\n",{"type":48,"tag":53,"props":2825,"children":2826},{},[2827],{"type":62,"value":2828},"Build and upload:",{"type":48,"tag":181,"props":2830,"children":2832},{"className":183,"code":2831,"language":185,"meta":186,"style":186},"# Android\nflutter build apk \\\n  --release \\\n  --obfuscate \\\n  --split-debug-info=build\u002Fdebug-info \\\n  --extra-gen-snapshot-options=--save-obfuscation-map=build\u002Fapp\u002Fobfuscation.map.json\ndart run sentry_dart_plugin\n\n# iOS\nflutter build ipa \\\n  --release \\\n  --obfuscate \\\n  --split-debug-info=build\u002Fdebug-info \\\n  --extra-gen-snapshot-options=--save-obfuscation-map=build\u002Fapp\u002Fobfuscation.map.json\ndart run sentry_dart_plugin\n\n# Web\nflutter build web --release --source-maps\ndart run sentry_dart_plugin\n",[2833],{"type":48,"tag":113,"props":2834,"children":2835},{"__ignoreMap":186},[2836,2844,2866,2878,2890,2902,2910,2927,2934,2942,2962,2973,2984,2995,3002,3017,3024,3032,3058],{"type":48,"tag":192,"props":2837,"children":2838},{"class":194,"line":195},[2839],{"type":48,"tag":192,"props":2840,"children":2841},{"style":199},[2842],{"type":62,"value":2843},"# Android\n",{"type":48,"tag":192,"props":2845,"children":2846},{"class":194,"line":205},[2847,2851,2856,2861],{"type":48,"tag":192,"props":2848,"children":2849},{"style":209},[2850],{"type":62,"value":19},{"type":48,"tag":192,"props":2852,"children":2853},{"style":215},[2854],{"type":62,"value":2855}," build",{"type":48,"tag":192,"props":2857,"children":2858},{"style":215},[2859],{"type":62,"value":2860}," apk",{"type":48,"tag":192,"props":2862,"children":2863},{"style":735},[2864],{"type":62,"value":2865}," \\\n",{"type":48,"tag":192,"props":2867,"children":2868},{"class":194,"line":252},[2869,2874],{"type":48,"tag":192,"props":2870,"children":2871},{"style":215},[2872],{"type":62,"value":2873},"  --release",{"type":48,"tag":192,"props":2875,"children":2876},{"style":735},[2877],{"type":62,"value":2865},{"type":48,"tag":192,"props":2879,"children":2880},{"class":194,"line":261},[2881,2886],{"type":48,"tag":192,"props":2882,"children":2883},{"style":215},[2884],{"type":62,"value":2885},"  --obfuscate",{"type":48,"tag":192,"props":2887,"children":2888},{"style":735},[2889],{"type":62,"value":2865},{"type":48,"tag":192,"props":2891,"children":2892},{"class":194,"line":270},[2893,2898],{"type":48,"tag":192,"props":2894,"children":2895},{"style":215},[2896],{"type":62,"value":2897},"  --split-debug-info=build\u002Fdebug-info",{"type":48,"tag":192,"props":2899,"children":2900},{"style":735},[2901],{"type":62,"value":2865},{"type":48,"tag":192,"props":2903,"children":2904},{"class":194,"line":308},[2905],{"type":48,"tag":192,"props":2906,"children":2907},{"style":215},[2908],{"type":62,"value":2909},"  --extra-gen-snapshot-options=--save-obfuscation-map=build\u002Fapp\u002Fobfuscation.map.json\n",{"type":48,"tag":192,"props":2911,"children":2912},{"class":194,"line":316},[2913,2917,2922],{"type":48,"tag":192,"props":2914,"children":2915},{"style":209},[2916],{"type":62,"value":25},{"type":48,"tag":192,"props":2918,"children":2919},{"style":215},[2920],{"type":62,"value":2921}," run",{"type":48,"tag":192,"props":2923,"children":2924},{"style":215},[2925],{"type":62,"value":2926}," sentry_dart_plugin\n",{"type":48,"tag":192,"props":2928,"children":2929},{"class":194,"line":325},[2930],{"type":48,"tag":192,"props":2931,"children":2932},{"emptyLinePlaceholder":43},[2933],{"type":62,"value":258},{"type":48,"tag":192,"props":2935,"children":2936},{"class":194,"line":383},[2937],{"type":48,"tag":192,"props":2938,"children":2939},{"style":199},[2940],{"type":62,"value":2941},"# iOS\n",{"type":48,"tag":192,"props":2943,"children":2944},{"class":194,"line":391},[2945,2949,2953,2958],{"type":48,"tag":192,"props":2946,"children":2947},{"style":209},[2948],{"type":62,"value":19},{"type":48,"tag":192,"props":2950,"children":2951},{"style":215},[2952],{"type":62,"value":2855},{"type":48,"tag":192,"props":2954,"children":2955},{"style":215},[2956],{"type":62,"value":2957}," ipa",{"type":48,"tag":192,"props":2959,"children":2960},{"style":735},[2961],{"type":62,"value":2865},{"type":48,"tag":192,"props":2963,"children":2964},{"class":194,"line":400},[2965,2969],{"type":48,"tag":192,"props":2966,"children":2967},{"style":215},[2968],{"type":62,"value":2873},{"type":48,"tag":192,"props":2970,"children":2971},{"style":735},[2972],{"type":62,"value":2865},{"type":48,"tag":192,"props":2974,"children":2975},{"class":194,"line":431},[2976,2980],{"type":48,"tag":192,"props":2977,"children":2978},{"style":215},[2979],{"type":62,"value":2885},{"type":48,"tag":192,"props":2981,"children":2982},{"style":735},[2983],{"type":62,"value":2865},{"type":48,"tag":192,"props":2985,"children":2986},{"class":194,"line":439},[2987,2991],{"type":48,"tag":192,"props":2988,"children":2989},{"style":215},[2990],{"type":62,"value":2897},{"type":48,"tag":192,"props":2992,"children":2993},{"style":735},[2994],{"type":62,"value":2865},{"type":48,"tag":192,"props":2996,"children":2997},{"class":194,"line":448},[2998],{"type":48,"tag":192,"props":2999,"children":3000},{"style":215},[3001],{"type":62,"value":2909},{"type":48,"tag":192,"props":3003,"children":3004},{"class":194,"line":477},[3005,3009,3013],{"type":48,"tag":192,"props":3006,"children":3007},{"style":209},[3008],{"type":62,"value":25},{"type":48,"tag":192,"props":3010,"children":3011},{"style":215},[3012],{"type":62,"value":2921},{"type":48,"tag":192,"props":3014,"children":3015},{"style":215},[3016],{"type":62,"value":2926},{"type":48,"tag":192,"props":3018,"children":3019},{"class":194,"line":485},[3020],{"type":48,"tag":192,"props":3021,"children":3022},{"emptyLinePlaceholder":43},[3023],{"type":62,"value":258},{"type":48,"tag":192,"props":3025,"children":3026},{"class":194,"line":494},[3027],{"type":48,"tag":192,"props":3028,"children":3029},{"style":199},[3030],{"type":62,"value":3031},"# Web\n",{"type":48,"tag":192,"props":3033,"children":3034},{"class":194,"line":523},[3035,3039,3043,3048,3053],{"type":48,"tag":192,"props":3036,"children":3037},{"style":209},[3038],{"type":62,"value":19},{"type":48,"tag":192,"props":3040,"children":3041},{"style":215},[3042],{"type":62,"value":2855},{"type":48,"tag":192,"props":3044,"children":3045},{"style":215},[3046],{"type":62,"value":3047}," web",{"type":48,"tag":192,"props":3049,"children":3050},{"style":215},[3051],{"type":62,"value":3052}," --release",{"type":48,"tag":192,"props":3054,"children":3055},{"style":215},[3056],{"type":62,"value":3057}," --source-maps\n",{"type":48,"tag":192,"props":3059,"children":3060},{"class":194,"line":531},[3061,3065,3069],{"type":48,"tag":192,"props":3062,"children":3063},{"style":209},[3064],{"type":62,"value":25},{"type":48,"tag":192,"props":3066,"children":3067},{"style":215},[3068],{"type":62,"value":2921},{"type":48,"tag":192,"props":3070,"children":3071},{"style":215},[3072],{"type":62,"value":2926},{"type":48,"tag":166,"props":3074,"children":3075},{},[],{"type":48,"tag":1492,"props":3077,"children":3079},{"id":3078},"path-c-manual-dart-only-cli-server",[3080],{"type":62,"value":3081},"Path C: Manual — Dart-Only (CLI \u002F Server)",{"type":48,"tag":181,"props":3083,"children":3085},{"className":1904,"code":3084,"language":1906,"meta":186,"style":186},"# pubspec.yaml\ndependencies:\n  sentry: ^9.14.0\n",[3086],{"type":48,"tag":113,"props":3087,"children":3088},{"__ignoreMap":186},[3089,3097,3108],{"type":48,"tag":192,"props":3090,"children":3091},{"class":194,"line":195},[3092],{"type":48,"tag":192,"props":3093,"children":3094},{"style":199},[3095],{"type":62,"value":3096},"# pubspec.yaml\n",{"type":48,"tag":192,"props":3098,"children":3099},{"class":194,"line":205},[3100,3104],{"type":48,"tag":192,"props":3101,"children":3102},{"style":1916},[3103],{"type":62,"value":1919},{"type":48,"tag":192,"props":3105,"children":3106},{"style":221},[3107],{"type":62,"value":1924},{"type":48,"tag":192,"props":3109,"children":3110},{"class":194,"line":252},[3111,3116,3120],{"type":48,"tag":192,"props":3112,"children":3113},{"style":1916},[3114],{"type":62,"value":3115},"  sentry",{"type":48,"tag":192,"props":3117,"children":3118},{"style":221},[3119],{"type":62,"value":1949},{"type":48,"tag":192,"props":3121,"children":3122},{"style":215},[3123],{"type":62,"value":1970},{"type":48,"tag":181,"props":3125,"children":3127},{"className":2014,"code":3126,"language":25,"meta":186,"style":186},"import 'package:sentry\u002Fsentry.dart';\n\nFuture\u003Cvoid> main() async {\n  await Sentry.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.tracesSampleRate = 1.0;\n      options.enableLogs = true;\n    },\n    appRunner: myApp,\n  );\n}\n",[3128],{"type":48,"tag":113,"props":3129,"children":3130},{"__ignoreMap":186},[3131,3139,3146,3153,3161,3168,3175,3183,3190,3197,3205,3212],{"type":48,"tag":192,"props":3132,"children":3133},{"class":194,"line":195},[3134],{"type":48,"tag":192,"props":3135,"children":3136},{},[3137],{"type":62,"value":3138},"import 'package:sentry\u002Fsentry.dart';\n",{"type":48,"tag":192,"props":3140,"children":3141},{"class":194,"line":205},[3142],{"type":48,"tag":192,"props":3143,"children":3144},{"emptyLinePlaceholder":43},[3145],{"type":62,"value":258},{"type":48,"tag":192,"props":3147,"children":3148},{"class":194,"line":252},[3149],{"type":48,"tag":192,"props":3150,"children":3151},{},[3152],{"type":62,"value":2050},{"type":48,"tag":192,"props":3154,"children":3155},{"class":194,"line":261},[3156],{"type":48,"tag":192,"props":3157,"children":3158},{},[3159],{"type":62,"value":3160},"  await Sentry.init(\n",{"type":48,"tag":192,"props":3162,"children":3163},{"class":194,"line":270},[3164],{"type":48,"tag":192,"props":3165,"children":3166},{},[3167],{"type":62,"value":2066},{"type":48,"tag":192,"props":3169,"children":3170},{"class":194,"line":308},[3171],{"type":48,"tag":192,"props":3172,"children":3173},{},[3174],{"type":62,"value":2074},{"type":48,"tag":192,"props":3176,"children":3177},{"class":194,"line":316},[3178],{"type":48,"tag":192,"props":3179,"children":3180},{},[3181],{"type":62,"value":3182},"      options.tracesSampleRate = 1.0;\n",{"type":48,"tag":192,"props":3184,"children":3185},{"class":194,"line":325},[3186],{"type":48,"tag":192,"props":3187,"children":3188},{},[3189],{"type":62,"value":2182},{"type":48,"tag":192,"props":3191,"children":3192},{"class":194,"line":383},[3193],{"type":48,"tag":192,"props":3194,"children":3195},{},[3196],{"type":62,"value":2221},{"type":48,"tag":192,"props":3198,"children":3199},{"class":194,"line":391},[3200],{"type":48,"tag":192,"props":3201,"children":3202},{},[3203],{"type":62,"value":3204},"    appRunner: myApp,\n",{"type":48,"tag":192,"props":3206,"children":3207},{"class":194,"line":400},[3208],{"type":48,"tag":192,"props":3209,"children":3210},{},[3211],{"type":62,"value":2245},{"type":48,"tag":192,"props":3213,"children":3214},{"class":194,"line":431},[3215],{"type":48,"tag":192,"props":3216,"children":3217},{},[3218],{"type":62,"value":2253},{"type":48,"tag":166,"props":3220,"children":3221},{},[],{"type":48,"tag":1492,"props":3223,"children":3225},{"id":3224},"quick-reference-full-featured-sentryflutterinit",[3226,3228],{"type":62,"value":3227},"Quick Reference: Full-Featured ",{"type":48,"tag":113,"props":3229,"children":3231},{"className":3230},[],[3232],{"type":62,"value":1773},{"type":48,"tag":181,"props":3234,"children":3236},{"className":2014,"code":3235,"language":25,"meta":186,"style":186},"import 'package:sentry_flutter\u002Fsentry_flutter.dart';\n\nFuture\u003Cvoid> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = 'YOUR_SENTRY_DSN';\n      options.sendDefaultPii = true;\n\n      \u002F\u002F Environment — detect release builds via dart.vm.product\n      options.environment = const bool.fromEnvironment('dart.vm.product')\n          ? 'production'\n          : 'development';\n\n      \u002F\u002F Release is auto-set on iOS\u002FAndroid as \"packageName@version+build\"\n      \u002F\u002F Override if needed:\n      \u002F\u002F options.release = 'my-app@1.0.0+42';\n\n      \u002F\u002F Error sampling — reduce to drop a fraction of errors in high-volume production\n      options.sampleRate = 1.0;\n\n      \u002F\u002F Tracing — lower to 0.1–0.2 in high-traffic production\n      options.tracesSampleRate = 1.0;\n\n      \u002F\u002F Profiling — iOS and macOS only (alpha); relative to tracesSampleRate\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Session Replay — iOS and Android only (SDK ≥9.0.0)\n      options.replay.sessionSampleRate = 0.1;   \u002F\u002F record 10% of all sessions\n      options.replay.onErrorSampleRate = 1.0;   \u002F\u002F always record error sessions\n\n      \u002F\u002F Privacy defaults — all text and images masked\n      options.privacy.maskAllText = true;\n      options.privacy.maskAllImages = true;\n\n      \u002F\u002F Structured logging (SDK ≥9.5.0)\n      options.enableLogs = true;\n\n      \u002F\u002F Attachments\n      options.attachScreenshot = true;          \u002F\u002F screenshot on error\n      options.attachViewHierarchy = true;       \u002F\u002F widget tree on error\n\n      \u002F\u002F HTTP client\n      options.captureFailedRequests = true;     \u002F\u002F auto-capture HTTP errors\n      options.maxRequestBodySize = MaxRequestBodySize.small;\n\n      \u002F\u002F Android specifics\n      options.anrEnabled = true;                \u002F\u002F ANR detection\n      options.enableNdkScopeSync = true;        \u002F\u002F sync scope to native\n      options.enableTombstone = false;          \u002F\u002F Android 12+ tombstone (opt-in)\n\n      \u002F\u002F Navigation (Time to Full Display — opt-in)\n      options.enableTimeToFullDisplayTracing = true;\n    },\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n",[3237],{"type":48,"tag":113,"props":3238,"children":3239},{"__ignoreMap":186},[3240,3247,3254,3261,3268,3275,3282,3289,3296,3304,3311,3318,3325,3332,3340,3348,3356,3363,3371,3379,3386,3394,3401,3408,3416,3423,3430,3438,3446,3454,3461,3469,3477,3485,3493,3502,3510,3518,3527,3536,3545,3553,3562,3571,3580,3588,3597,3606,3615,3624,3632,3641,3650,3658,3666,3674],{"type":48,"tag":192,"props":3241,"children":3242},{"class":194,"line":195},[3243],{"type":48,"tag":192,"props":3244,"children":3245},{},[3246],{"type":62,"value":2035},{"type":48,"tag":192,"props":3248,"children":3249},{"class":194,"line":205},[3250],{"type":48,"tag":192,"props":3251,"children":3252},{"emptyLinePlaceholder":43},[3253],{"type":62,"value":258},{"type":48,"tag":192,"props":3255,"children":3256},{"class":194,"line":252},[3257],{"type":48,"tag":192,"props":3258,"children":3259},{},[3260],{"type":62,"value":2050},{"type":48,"tag":192,"props":3262,"children":3263},{"class":194,"line":261},[3264],{"type":48,"tag":192,"props":3265,"children":3266},{},[3267],{"type":62,"value":2058},{"type":48,"tag":192,"props":3269,"children":3270},{"class":194,"line":270},[3271],{"type":48,"tag":192,"props":3272,"children":3273},{},[3274],{"type":62,"value":2066},{"type":48,"tag":192,"props":3276,"children":3277},{"class":194,"line":308},[3278],{"type":48,"tag":192,"props":3279,"children":3280},{},[3281],{"type":62,"value":2074},{"type":48,"tag":192,"props":3283,"children":3284},{"class":194,"line":316},[3285],{"type":48,"tag":192,"props":3286,"children":3287},{},[3288],{"type":62,"value":2082},{"type":48,"tag":192,"props":3290,"children":3291},{"class":194,"line":325},[3292],{"type":48,"tag":192,"props":3293,"children":3294},{"emptyLinePlaceholder":43},[3295],{"type":62,"value":258},{"type":48,"tag":192,"props":3297,"children":3298},{"class":194,"line":383},[3299],{"type":48,"tag":192,"props":3300,"children":3301},{},[3302],{"type":62,"value":3303},"      \u002F\u002F Environment — detect release builds via dart.vm.product\n",{"type":48,"tag":192,"props":3305,"children":3306},{"class":194,"line":391},[3307],{"type":48,"tag":192,"props":3308,"children":3309},{},[3310],{"type":62,"value":2197},{"type":48,"tag":192,"props":3312,"children":3313},{"class":194,"line":400},[3314],{"type":48,"tag":192,"props":3315,"children":3316},{},[3317],{"type":62,"value":2205},{"type":48,"tag":192,"props":3319,"children":3320},{"class":194,"line":431},[3321],{"type":48,"tag":192,"props":3322,"children":3323},{},[3324],{"type":62,"value":2213},{"type":48,"tag":192,"props":3326,"children":3327},{"class":194,"line":439},[3328],{"type":48,"tag":192,"props":3329,"children":3330},{"emptyLinePlaceholder":43},[3331],{"type":62,"value":258},{"type":48,"tag":192,"props":3333,"children":3334},{"class":194,"line":448},[3335],{"type":48,"tag":192,"props":3336,"children":3337},{},[3338],{"type":62,"value":3339},"      \u002F\u002F Release is auto-set on iOS\u002FAndroid as \"packageName@version+build\"\n",{"type":48,"tag":192,"props":3341,"children":3342},{"class":194,"line":477},[3343],{"type":48,"tag":192,"props":3344,"children":3345},{},[3346],{"type":62,"value":3347},"      \u002F\u002F Override if needed:\n",{"type":48,"tag":192,"props":3349,"children":3350},{"class":194,"line":485},[3351],{"type":48,"tag":192,"props":3352,"children":3353},{},[3354],{"type":62,"value":3355},"      \u002F\u002F options.release = 'my-app@1.0.0+42';\n",{"type":48,"tag":192,"props":3357,"children":3358},{"class":194,"line":494},[3359],{"type":48,"tag":192,"props":3360,"children":3361},{"emptyLinePlaceholder":43},[3362],{"type":62,"value":258},{"type":48,"tag":192,"props":3364,"children":3365},{"class":194,"line":523},[3366],{"type":48,"tag":192,"props":3367,"children":3368},{},[3369],{"type":62,"value":3370},"      \u002F\u002F Error sampling — reduce to drop a fraction of errors in high-volume production\n",{"type":48,"tag":192,"props":3372,"children":3373},{"class":194,"line":531},[3374],{"type":48,"tag":192,"props":3375,"children":3376},{},[3377],{"type":62,"value":3378},"      options.sampleRate = 1.0;\n",{"type":48,"tag":192,"props":3380,"children":3381},{"class":194,"line":540},[3382],{"type":48,"tag":192,"props":3383,"children":3384},{"emptyLinePlaceholder":43},[3385],{"type":62,"value":258},{"type":48,"tag":192,"props":3387,"children":3388},{"class":194,"line":569},[3389],{"type":48,"tag":192,"props":3390,"children":3391},{},[3392],{"type":62,"value":3393},"      \u002F\u002F Tracing — lower to 0.1–0.2 in high-traffic production\n",{"type":48,"tag":192,"props":3395,"children":3396},{"class":194,"line":577},[3397],{"type":48,"tag":192,"props":3398,"children":3399},{},[3400],{"type":62,"value":3182},{"type":48,"tag":192,"props":3402,"children":3403},{"class":194,"line":586},[3404],{"type":48,"tag":192,"props":3405,"children":3406},{"emptyLinePlaceholder":43},[3407],{"type":62,"value":258},{"type":48,"tag":192,"props":3409,"children":3410},{"class":194,"line":615},[3411],{"type":48,"tag":192,"props":3412,"children":3413},{},[3414],{"type":62,"value":3415},"      \u002F\u002F Profiling — iOS and macOS only (alpha); relative to tracesSampleRate\n",{"type":48,"tag":192,"props":3417,"children":3418},{"class":194,"line":623},[3419],{"type":48,"tag":192,"props":3420,"children":3421},{},[3422],{"type":62,"value":2128},{"type":48,"tag":192,"props":3424,"children":3425},{"class":194,"line":632},[3426],{"type":48,"tag":192,"props":3427,"children":3428},{"emptyLinePlaceholder":43},[3429],{"type":62,"value":258},{"type":48,"tag":192,"props":3431,"children":3432},{"class":194,"line":661},[3433],{"type":48,"tag":192,"props":3434,"children":3435},{},[3436],{"type":62,"value":3437},"      \u002F\u002F Session Replay — iOS and Android only (SDK ≥9.0.0)\n",{"type":48,"tag":192,"props":3439,"children":3440},{"class":194,"line":669},[3441],{"type":48,"tag":192,"props":3442,"children":3443},{},[3444],{"type":62,"value":3445},"      options.replay.sessionSampleRate = 0.1;   \u002F\u002F record 10% of all sessions\n",{"type":48,"tag":192,"props":3447,"children":3448},{"class":194,"line":678},[3449],{"type":48,"tag":192,"props":3450,"children":3451},{},[3452],{"type":62,"value":3453},"      options.replay.onErrorSampleRate = 1.0;   \u002F\u002F always record error sessions\n",{"type":48,"tag":192,"props":3455,"children":3456},{"class":194,"line":31},[3457],{"type":48,"tag":192,"props":3458,"children":3459},{"emptyLinePlaceholder":43},[3460],{"type":62,"value":258},{"type":48,"tag":192,"props":3462,"children":3463},{"class":194,"line":869},[3464],{"type":48,"tag":192,"props":3465,"children":3466},{},[3467],{"type":62,"value":3468},"      \u002F\u002F Privacy defaults — all text and images masked\n",{"type":48,"tag":192,"props":3470,"children":3471},{"class":194,"line":877},[3472],{"type":48,"tag":192,"props":3473,"children":3474},{},[3475],{"type":62,"value":3476},"      options.privacy.maskAllText = true;\n",{"type":48,"tag":192,"props":3478,"children":3479},{"class":194,"line":886},[3480],{"type":48,"tag":192,"props":3481,"children":3482},{},[3483],{"type":62,"value":3484},"      options.privacy.maskAllImages = true;\n",{"type":48,"tag":192,"props":3486,"children":3488},{"class":194,"line":3487},34,[3489],{"type":48,"tag":192,"props":3490,"children":3491},{"emptyLinePlaceholder":43},[3492],{"type":62,"value":258},{"type":48,"tag":192,"props":3494,"children":3496},{"class":194,"line":3495},35,[3497],{"type":48,"tag":192,"props":3498,"children":3499},{},[3500],{"type":62,"value":3501},"      \u002F\u002F Structured logging (SDK ≥9.5.0)\n",{"type":48,"tag":192,"props":3503,"children":3505},{"class":194,"line":3504},36,[3506],{"type":48,"tag":192,"props":3507,"children":3508},{},[3509],{"type":62,"value":2182},{"type":48,"tag":192,"props":3511,"children":3513},{"class":194,"line":3512},37,[3514],{"type":48,"tag":192,"props":3515,"children":3516},{"emptyLinePlaceholder":43},[3517],{"type":62,"value":258},{"type":48,"tag":192,"props":3519,"children":3521},{"class":194,"line":3520},38,[3522],{"type":48,"tag":192,"props":3523,"children":3524},{},[3525],{"type":62,"value":3526},"      \u002F\u002F Attachments\n",{"type":48,"tag":192,"props":3528,"children":3530},{"class":194,"line":3529},39,[3531],{"type":48,"tag":192,"props":3532,"children":3533},{},[3534],{"type":62,"value":3535},"      options.attachScreenshot = true;          \u002F\u002F screenshot on error\n",{"type":48,"tag":192,"props":3537,"children":3539},{"class":194,"line":3538},40,[3540],{"type":48,"tag":192,"props":3541,"children":3542},{},[3543],{"type":62,"value":3544},"      options.attachViewHierarchy = true;       \u002F\u002F widget tree on error\n",{"type":48,"tag":192,"props":3546,"children":3548},{"class":194,"line":3547},41,[3549],{"type":48,"tag":192,"props":3550,"children":3551},{"emptyLinePlaceholder":43},[3552],{"type":62,"value":258},{"type":48,"tag":192,"props":3554,"children":3556},{"class":194,"line":3555},42,[3557],{"type":48,"tag":192,"props":3558,"children":3559},{},[3560],{"type":62,"value":3561},"      \u002F\u002F HTTP client\n",{"type":48,"tag":192,"props":3563,"children":3565},{"class":194,"line":3564},43,[3566],{"type":48,"tag":192,"props":3567,"children":3568},{},[3569],{"type":62,"value":3570},"      options.captureFailedRequests = true;     \u002F\u002F auto-capture HTTP errors\n",{"type":48,"tag":192,"props":3572,"children":3574},{"class":194,"line":3573},44,[3575],{"type":48,"tag":192,"props":3576,"children":3577},{},[3578],{"type":62,"value":3579},"      options.maxRequestBodySize = MaxRequestBodySize.small;\n",{"type":48,"tag":192,"props":3581,"children":3583},{"class":194,"line":3582},45,[3584],{"type":48,"tag":192,"props":3585,"children":3586},{"emptyLinePlaceholder":43},[3587],{"type":62,"value":258},{"type":48,"tag":192,"props":3589,"children":3591},{"class":194,"line":3590},46,[3592],{"type":48,"tag":192,"props":3593,"children":3594},{},[3595],{"type":62,"value":3596},"      \u002F\u002F Android specifics\n",{"type":48,"tag":192,"props":3598,"children":3600},{"class":194,"line":3599},47,[3601],{"type":48,"tag":192,"props":3602,"children":3603},{},[3604],{"type":62,"value":3605},"      options.anrEnabled = true;                \u002F\u002F ANR detection\n",{"type":48,"tag":192,"props":3607,"children":3609},{"class":194,"line":3608},48,[3610],{"type":48,"tag":192,"props":3611,"children":3612},{},[3613],{"type":62,"value":3614},"      options.enableNdkScopeSync = true;        \u002F\u002F sync scope to native\n",{"type":48,"tag":192,"props":3616,"children":3618},{"class":194,"line":3617},49,[3619],{"type":48,"tag":192,"props":3620,"children":3621},{},[3622],{"type":62,"value":3623},"      options.enableTombstone = false;          \u002F\u002F Android 12+ tombstone (opt-in)\n",{"type":48,"tag":192,"props":3625,"children":3627},{"class":194,"line":3626},50,[3628],{"type":48,"tag":192,"props":3629,"children":3630},{"emptyLinePlaceholder":43},[3631],{"type":62,"value":258},{"type":48,"tag":192,"props":3633,"children":3635},{"class":194,"line":3634},51,[3636],{"type":48,"tag":192,"props":3637,"children":3638},{},[3639],{"type":62,"value":3640},"      \u002F\u002F Navigation (Time to Full Display — opt-in)\n",{"type":48,"tag":192,"props":3642,"children":3644},{"class":194,"line":3643},52,[3645],{"type":48,"tag":192,"props":3646,"children":3647},{},[3648],{"type":62,"value":3649},"      options.enableTimeToFullDisplayTracing = true;\n",{"type":48,"tag":192,"props":3651,"children":3653},{"class":194,"line":3652},53,[3654],{"type":48,"tag":192,"props":3655,"children":3656},{},[3657],{"type":62,"value":2221},{"type":48,"tag":192,"props":3659,"children":3661},{"class":194,"line":3660},54,[3662],{"type":48,"tag":192,"props":3663,"children":3664},{},[3665],{"type":62,"value":2237},{"type":48,"tag":192,"props":3667,"children":3669},{"class":194,"line":3668},55,[3670],{"type":48,"tag":192,"props":3671,"children":3672},{},[3673],{"type":62,"value":2245},{"type":48,"tag":192,"props":3675,"children":3677},{"class":194,"line":3676},56,[3678],{"type":48,"tag":192,"props":3679,"children":3680},{},[3681],{"type":62,"value":2253},{"type":48,"tag":166,"props":3683,"children":3684},{},[],{"type":48,"tag":1492,"props":3686,"children":3688},{"id":3687},"navigation-time-to-full-display-ttfd",[3689],{"type":62,"value":3690},"Navigation: Time to Full Display (TTFD)",{"type":48,"tag":53,"props":3692,"children":3693},{},[3694],{"type":62,"value":3695},"TTID (Time to Initial Display) is always enabled. TTFD is opt-in:",{"type":48,"tag":181,"props":3697,"children":3699},{"className":2014,"code":3698,"language":25,"meta":186,"style":186},"\u002F\u002F Enable in options:\noptions.enableTimeToFullDisplayTracing = true;\n",[3700],{"type":48,"tag":113,"props":3701,"children":3702},{"__ignoreMap":186},[3703,3711],{"type":48,"tag":192,"props":3704,"children":3705},{"class":194,"line":195},[3706],{"type":48,"tag":192,"props":3707,"children":3708},{},[3709],{"type":62,"value":3710},"\u002F\u002F Enable in options:\n",{"type":48,"tag":192,"props":3712,"children":3713},{"class":194,"line":205},[3714],{"type":48,"tag":192,"props":3715,"children":3716},{},[3717],{"type":62,"value":3718},"options.enableTimeToFullDisplayTracing = true;\n",{"type":48,"tag":53,"props":3720,"children":3721},{},[3722],{"type":62,"value":3723},"Then report when your screen has loaded its data:",{"type":48,"tag":181,"props":3725,"children":3727},{"className":2014,"code":3726,"language":25,"meta":186,"style":186},"\u002F\u002F Option 1: Widget wrapper (marks TTFD when child first renders)\nSentryDisplayWidget(child: MyWidget())\n\n\u002F\u002F Option 2: Manual API call (after async data loads)\nawait _loadData();\nSentryFlutter.currentDisplay()?.reportFullyDisplayed();\n",[3728],{"type":48,"tag":113,"props":3729,"children":3730},{"__ignoreMap":186},[3731,3739,3747,3754,3762,3770],{"type":48,"tag":192,"props":3732,"children":3733},{"class":194,"line":195},[3734],{"type":48,"tag":192,"props":3735,"children":3736},{},[3737],{"type":62,"value":3738},"\u002F\u002F Option 1: Widget wrapper (marks TTFD when child first renders)\n",{"type":48,"tag":192,"props":3740,"children":3741},{"class":194,"line":205},[3742],{"type":48,"tag":192,"props":3743,"children":3744},{},[3745],{"type":62,"value":3746},"SentryDisplayWidget(child: MyWidget())\n",{"type":48,"tag":192,"props":3748,"children":3749},{"class":194,"line":252},[3750],{"type":48,"tag":192,"props":3751,"children":3752},{"emptyLinePlaceholder":43},[3753],{"type":62,"value":258},{"type":48,"tag":192,"props":3755,"children":3756},{"class":194,"line":261},[3757],{"type":48,"tag":192,"props":3758,"children":3759},{},[3760],{"type":62,"value":3761},"\u002F\u002F Option 2: Manual API call (after async data loads)\n",{"type":48,"tag":192,"props":3763,"children":3764},{"class":194,"line":270},[3765],{"type":48,"tag":192,"props":3766,"children":3767},{},[3768],{"type":62,"value":3769},"await _loadData();\n",{"type":48,"tag":192,"props":3771,"children":3772},{"class":194,"line":308},[3773],{"type":48,"tag":192,"props":3774,"children":3775},{},[3776],{"type":62,"value":3777},"SentryFlutter.currentDisplay()?.reportFullyDisplayed();\n",{"type":48,"tag":166,"props":3779,"children":3780},{},[],{"type":48,"tag":1492,"props":3782,"children":3784},{"id":3783},"for-each-agreed-feature",[3785],{"type":62,"value":3786},"For Each Agreed Feature",{"type":48,"tag":53,"props":3788,"children":3789},{},[3790],{"type":62,"value":3791},"Walk through features one at a time. Load the reference file for each, follow its steps, then verify before moving on:",{"type":48,"tag":939,"props":3793,"children":3794},{},[3795,3815],{"type":48,"tag":943,"props":3796,"children":3797},{},[3798],{"type":48,"tag":947,"props":3799,"children":3800},{},[3801,3805,3810],{"type":48,"tag":951,"props":3802,"children":3803},{},[3804],{"type":62,"value":1348},{"type":48,"tag":951,"props":3806,"children":3807},{},[3808],{"type":62,"value":3809},"Reference",{"type":48,"tag":951,"props":3811,"children":3812},{},[3813],{"type":62,"value":3814},"Load when...",{"type":48,"tag":962,"props":3816,"children":3817},{},[3818,3839,3861,3882,3903,3924,3945],{"type":48,"tag":947,"props":3819,"children":3820},{},[3821,3825,3834],{"type":48,"tag":969,"props":3822,"children":3823},{},[3824],{"type":62,"value":1243},{"type":48,"tag":969,"props":3826,"children":3827},{},[3828],{"type":48,"tag":113,"props":3829,"children":3831},{"className":3830},[],[3832],{"type":62,"value":3833},"${SKILL_ROOT}\u002Freferences\u002Ferror-monitoring.md",{"type":48,"tag":969,"props":3835,"children":3836},{},[3837],{"type":62,"value":3838},"Always (baseline)",{"type":48,"tag":947,"props":3840,"children":3841},{},[3842,3847,3856],{"type":48,"tag":969,"props":3843,"children":3844},{},[3845],{"type":62,"value":3846},"Tracing & Performance",{"type":48,"tag":969,"props":3848,"children":3849},{},[3850],{"type":48,"tag":113,"props":3851,"children":3853},{"className":3852},[],[3854],{"type":62,"value":3855},"${SKILL_ROOT}\u002Freferences\u002Ftracing.md",{"type":48,"tag":969,"props":3857,"children":3858},{},[3859],{"type":62,"value":3860},"Always — navigation, HTTP, DB spans",{"type":48,"tag":947,"props":3862,"children":3863},{},[3864,3868,3877],{"type":48,"tag":969,"props":3865,"children":3866},{},[3867],{"type":62,"value":1265},{"type":48,"tag":969,"props":3869,"children":3870},{},[3871],{"type":48,"tag":113,"props":3872,"children":3874},{"className":3873},[],[3875],{"type":62,"value":3876},"${SKILL_ROOT}\u002Freferences\u002Fsession-replay.md",{"type":48,"tag":969,"props":3878,"children":3879},{},[3880],{"type":62,"value":3881},"iOS\u002FAndroid user-facing apps",{"type":48,"tag":947,"props":3883,"children":3884},{},[3885,3889,3898],{"type":48,"tag":969,"props":3886,"children":3887},{},[3888],{"type":62,"value":1288},{"type":48,"tag":969,"props":3890,"children":3891},{},[3892],{"type":48,"tag":113,"props":3893,"children":3895},{"className":3894},[],[3896],{"type":62,"value":3897},"${SKILL_ROOT}\u002Freferences\u002Fprofiling.md",{"type":48,"tag":969,"props":3899,"children":3900},{},[3901],{"type":62,"value":3902},"iOS\u002FmacOS performance-sensitive apps",{"type":48,"tag":947,"props":3904,"children":3905},{},[3906,3910,3919],{"type":48,"tag":969,"props":3907,"children":3908},{},[3909],{"type":62,"value":1299},{"type":48,"tag":969,"props":3911,"children":3912},{},[3913],{"type":48,"tag":113,"props":3914,"children":3916},{"className":3915},[],[3917],{"type":62,"value":3918},"${SKILL_ROOT}\u002Freferences\u002Flogging.md",{"type":48,"tag":969,"props":3920,"children":3921},{},[3922],{"type":62,"value":3923},"Structured logging \u002F log-trace correlation",{"type":48,"tag":947,"props":3925,"children":3926},{},[3927,3931,3940],{"type":48,"tag":969,"props":3928,"children":3929},{},[3930],{"type":62,"value":1324},{"type":48,"tag":969,"props":3932,"children":3933},{},[3934],{"type":48,"tag":113,"props":3935,"children":3937},{"className":3936},[],[3938],{"type":62,"value":3939},"${SKILL_ROOT}\u002Freferences\u002Fmetrics.md",{"type":48,"tag":969,"props":3941,"children":3942},{},[3943],{"type":62,"value":3944},"Custom business metrics",{"type":48,"tag":947,"props":3946,"children":3947},{},[3948,3953,3962],{"type":48,"tag":969,"props":3949,"children":3950},{},[3951],{"type":62,"value":3952},"Ecosystem Integrations",{"type":48,"tag":969,"props":3954,"children":3955},{},[3956],{"type":48,"tag":113,"props":3957,"children":3959},{"className":3958},[],[3960],{"type":62,"value":3961},"${SKILL_ROOT}\u002Freferences\u002Fecosystem-integrations.md",{"type":48,"tag":969,"props":3963,"children":3964},{},[3965],{"type":62,"value":3966},"HTTP clients, databases, GraphQL, state management",{"type":48,"tag":53,"props":3968,"children":3969},{},[3970,3972,3978],{"type":62,"value":3971},"For each feature: ",{"type":48,"tag":113,"props":3973,"children":3975},{"className":3974},[],[3976],{"type":62,"value":3977},"Read ${SKILL_ROOT}\u002Freferences\u002F\u003Cfeature>.md",{"type":62,"value":3979},", follow steps exactly, verify it works.",{"type":48,"tag":166,"props":3981,"children":3982},{},[],{"type":48,"tag":86,"props":3984,"children":3986},{"id":3985},"configuration-reference",[3987],{"type":62,"value":3988},"Configuration Reference",{"type":48,"tag":1492,"props":3990,"children":3992},{"id":3991},"core-sentryflutterinit-options",[3993,3995,4000],{"type":62,"value":3994},"Core ",{"type":48,"tag":113,"props":3996,"children":3998},{"className":3997},[],[3999],{"type":62,"value":1773},{"type":62,"value":4001}," Options",{"type":48,"tag":939,"props":4003,"children":4004},{},[4005,4030],{"type":48,"tag":943,"props":4006,"children":4007},{},[4008],{"type":48,"tag":947,"props":4009,"children":4010},{},[4011,4016,4021,4026],{"type":48,"tag":951,"props":4012,"children":4013},{},[4014],{"type":62,"value":4015},"Option",{"type":48,"tag":951,"props":4017,"children":4018},{},[4019],{"type":62,"value":4020},"Type",{"type":48,"tag":951,"props":4022,"children":4023},{},[4024],{"type":62,"value":4025},"Default",{"type":48,"tag":951,"props":4027,"children":4028},{},[4029],{"type":62,"value":1703},{"type":48,"tag":962,"props":4031,"children":4032},{},[4033,4083,4133,4174,4209,4244,4279,4314,4348,4381,4438,4471,4518,4580,4613,4647,4680,4720,4761],{"type":48,"tag":947,"props":4034,"children":4035},{},[4036,4045,4054,4059],{"type":48,"tag":969,"props":4037,"children":4038},{},[4039],{"type":48,"tag":113,"props":4040,"children":4042},{"className":4041},[],[4043],{"type":62,"value":4044},"dsn",{"type":48,"tag":969,"props":4046,"children":4047},{},[4048],{"type":48,"tag":113,"props":4049,"children":4051},{"className":4050},[],[4052],{"type":62,"value":4053},"string",{"type":48,"tag":969,"props":4055,"children":4056},{},[4057],{"type":62,"value":4058},"—",{"type":48,"tag":969,"props":4060,"children":4061},{},[4062,4067,4069,4075,4077],{"type":48,"tag":141,"props":4063,"children":4064},{},[4065],{"type":62,"value":4066},"Required.",{"type":62,"value":4068}," Project DSN. Env: ",{"type":48,"tag":113,"props":4070,"children":4072},{"className":4071},[],[4073],{"type":62,"value":4074},"SENTRY_DSN",{"type":62,"value":4076}," via ",{"type":48,"tag":113,"props":4078,"children":4080},{"className":4079},[],[4081],{"type":62,"value":4082},"--dart-define",{"type":48,"tag":947,"props":4084,"children":4085},{},[4086,4095,4103,4107],{"type":48,"tag":969,"props":4087,"children":4088},{},[4089],{"type":48,"tag":113,"props":4090,"children":4092},{"className":4091},[],[4093],{"type":62,"value":4094},"environment",{"type":48,"tag":969,"props":4096,"children":4097},{},[4098],{"type":48,"tag":113,"props":4099,"children":4101},{"className":4100},[],[4102],{"type":62,"value":4053},{"type":48,"tag":969,"props":4104,"children":4105},{},[4106],{"type":62,"value":4058},{"type":48,"tag":969,"props":4108,"children":4109},{},[4110,4112,4118,4119,4125,4127],{"type":62,"value":4111},"e.g., ",{"type":48,"tag":113,"props":4113,"children":4115},{"className":4114},[],[4116],{"type":62,"value":4117},"\"production\"",{"type":62,"value":120},{"type":48,"tag":113,"props":4120,"children":4122},{"className":4121},[],[4123],{"type":62,"value":4124},"\"staging\"",{"type":62,"value":4126},". Env: ",{"type":48,"tag":113,"props":4128,"children":4130},{"className":4129},[],[4131],{"type":62,"value":4132},"SENTRY_ENVIRONMENT",{"type":48,"tag":947,"props":4134,"children":4135},{},[4136,4145,4153,4158],{"type":48,"tag":969,"props":4137,"children":4138},{},[4139],{"type":48,"tag":113,"props":4140,"children":4142},{"className":4141},[],[4143],{"type":62,"value":4144},"release",{"type":48,"tag":969,"props":4146,"children":4147},{},[4148],{"type":48,"tag":113,"props":4149,"children":4151},{"className":4150},[],[4152],{"type":62,"value":4053},{"type":48,"tag":969,"props":4154,"children":4155},{},[4156],{"type":62,"value":4157},"Auto on iOS\u002FAndroid",{"type":48,"tag":969,"props":4159,"children":4160},{},[4161,4167,4168],{"type":48,"tag":113,"props":4162,"children":4164},{"className":4163},[],[4165],{"type":62,"value":4166},"\"packageName@version+build\"",{"type":62,"value":4126},{"type":48,"tag":113,"props":4169,"children":4171},{"className":4170},[],[4172],{"type":62,"value":4173},"SENTRY_RELEASE",{"type":48,"tag":947,"props":4175,"children":4176},{},[4177,4186,4194,4198],{"type":48,"tag":969,"props":4178,"children":4179},{},[4180],{"type":48,"tag":113,"props":4181,"children":4183},{"className":4182},[],[4184],{"type":62,"value":4185},"dist",{"type":48,"tag":969,"props":4187,"children":4188},{},[4189],{"type":48,"tag":113,"props":4190,"children":4192},{"className":4191},[],[4193],{"type":62,"value":4053},{"type":48,"tag":969,"props":4195,"children":4196},{},[4197],{"type":62,"value":4058},{"type":48,"tag":969,"props":4199,"children":4200},{},[4201,4203],{"type":62,"value":4202},"Distribution identifier; max 64 chars. Env: ",{"type":48,"tag":113,"props":4204,"children":4206},{"className":4205},[],[4207],{"type":62,"value":4208},"SENTRY_DIST",{"type":48,"tag":947,"props":4210,"children":4211},{},[4212,4221,4230,4239],{"type":48,"tag":969,"props":4213,"children":4214},{},[4215],{"type":48,"tag":113,"props":4216,"children":4218},{"className":4217},[],[4219],{"type":62,"value":4220},"sendDefaultPii",{"type":48,"tag":969,"props":4222,"children":4223},{},[4224],{"type":48,"tag":113,"props":4225,"children":4227},{"className":4226},[],[4228],{"type":62,"value":4229},"bool",{"type":48,"tag":969,"props":4231,"children":4232},{},[4233],{"type":48,"tag":113,"props":4234,"children":4236},{"className":4235},[],[4237],{"type":62,"value":4238},"false",{"type":48,"tag":969,"props":4240,"children":4241},{},[4242],{"type":62,"value":4243},"Include PII: IP address, user labels, widget text in replay",{"type":48,"tag":947,"props":4245,"children":4246},{},[4247,4256,4265,4274],{"type":48,"tag":969,"props":4248,"children":4249},{},[4250],{"type":48,"tag":113,"props":4251,"children":4253},{"className":4252},[],[4254],{"type":62,"value":4255},"sampleRate",{"type":48,"tag":969,"props":4257,"children":4258},{},[4259],{"type":48,"tag":113,"props":4260,"children":4262},{"className":4261},[],[4263],{"type":62,"value":4264},"double",{"type":48,"tag":969,"props":4266,"children":4267},{},[4268],{"type":48,"tag":113,"props":4269,"children":4271},{"className":4270},[],[4272],{"type":62,"value":4273},"1.0",{"type":48,"tag":969,"props":4275,"children":4276},{},[4277],{"type":62,"value":4278},"Error event sampling (0.0–1.0)",{"type":48,"tag":947,"props":4280,"children":4281},{},[4282,4291,4300,4309],{"type":48,"tag":969,"props":4283,"children":4284},{},[4285],{"type":48,"tag":113,"props":4286,"children":4288},{"className":4287},[],[4289],{"type":62,"value":4290},"maxBreadcrumbs",{"type":48,"tag":969,"props":4292,"children":4293},{},[4294],{"type":48,"tag":113,"props":4295,"children":4297},{"className":4296},[],[4298],{"type":62,"value":4299},"int",{"type":48,"tag":969,"props":4301,"children":4302},{},[4303],{"type":48,"tag":113,"props":4304,"children":4306},{"className":4305},[],[4307],{"type":62,"value":4308},"100",{"type":48,"tag":969,"props":4310,"children":4311},{},[4312],{"type":62,"value":4313},"Max breadcrumbs per event",{"type":48,"tag":947,"props":4315,"children":4316},{},[4317,4326,4334,4343],{"type":48,"tag":969,"props":4318,"children":4319},{},[4320],{"type":48,"tag":113,"props":4321,"children":4323},{"className":4322},[],[4324],{"type":62,"value":4325},"attachStacktrace",{"type":48,"tag":969,"props":4327,"children":4328},{},[4329],{"type":48,"tag":113,"props":4330,"children":4332},{"className":4331},[],[4333],{"type":62,"value":4229},{"type":48,"tag":969,"props":4335,"children":4336},{},[4337],{"type":48,"tag":113,"props":4338,"children":4340},{"className":4339},[],[4341],{"type":62,"value":4342},"true",{"type":48,"tag":969,"props":4344,"children":4345},{},[4346],{"type":62,"value":4347},"Auto-attach stack traces to messages",{"type":48,"tag":947,"props":4349,"children":4350},{},[4351,4360,4368,4376],{"type":48,"tag":969,"props":4352,"children":4353},{},[4354],{"type":48,"tag":113,"props":4355,"children":4357},{"className":4356},[],[4358],{"type":62,"value":4359},"attachScreenshot",{"type":48,"tag":969,"props":4361,"children":4362},{},[4363],{"type":48,"tag":113,"props":4364,"children":4366},{"className":4365},[],[4367],{"type":62,"value":4229},{"type":48,"tag":969,"props":4369,"children":4370},{},[4371],{"type":48,"tag":113,"props":4372,"children":4374},{"className":4373},[],[4375],{"type":62,"value":4238},{"type":48,"tag":969,"props":4377,"children":4378},{},[4379],{"type":62,"value":4380},"Capture screenshot on error (mobile\u002Fdesktop only)",{"type":48,"tag":947,"props":4382,"children":4383},{},[4384,4393,4398,4407],{"type":48,"tag":969,"props":4385,"children":4386},{},[4387],{"type":48,"tag":113,"props":4388,"children":4390},{"className":4389},[],[4391],{"type":62,"value":4392},"screenshotQuality",{"type":48,"tag":969,"props":4394,"children":4395},{},[4396],{"type":62,"value":4397},"enum",{"type":48,"tag":969,"props":4399,"children":4400},{},[4401],{"type":48,"tag":113,"props":4402,"children":4404},{"className":4403},[],[4405],{"type":62,"value":4406},"high",{"type":48,"tag":969,"props":4408,"children":4409},{},[4410,4412,4418,4419,4424,4425,4431,4432],{"type":62,"value":4411},"Screenshot quality: ",{"type":48,"tag":113,"props":4413,"children":4415},{"className":4414},[],[4416],{"type":62,"value":4417},"full",{"type":62,"value":120},{"type":48,"tag":113,"props":4420,"children":4422},{"className":4421},[],[4423],{"type":62,"value":4406},{"type":62,"value":120},{"type":48,"tag":113,"props":4426,"children":4428},{"className":4427},[],[4429],{"type":62,"value":4430},"medium",{"type":62,"value":120},{"type":48,"tag":113,"props":4433,"children":4435},{"className":4434},[],[4436],{"type":62,"value":4437},"low",{"type":48,"tag":947,"props":4439,"children":4440},{},[4441,4450,4458,4466],{"type":48,"tag":969,"props":4442,"children":4443},{},[4444],{"type":48,"tag":113,"props":4445,"children":4447},{"className":4446},[],[4448],{"type":62,"value":4449},"attachViewHierarchy",{"type":48,"tag":969,"props":4451,"children":4452},{},[4453],{"type":48,"tag":113,"props":4454,"children":4456},{"className":4455},[],[4457],{"type":62,"value":4229},{"type":48,"tag":969,"props":4459,"children":4460},{},[4461],{"type":48,"tag":113,"props":4462,"children":4464},{"className":4463},[],[4465],{"type":62,"value":4238},{"type":48,"tag":969,"props":4467,"children":4468},{},[4469],{"type":62,"value":4470},"Attach JSON widget tree as attachment on error",{"type":48,"tag":947,"props":4472,"children":4473},{},[4474,4483,4491,4501],{"type":48,"tag":969,"props":4475,"children":4476},{},[4477],{"type":48,"tag":113,"props":4478,"children":4480},{"className":4479},[],[4481],{"type":62,"value":4482},"debug",{"type":48,"tag":969,"props":4484,"children":4485},{},[4486],{"type":48,"tag":113,"props":4487,"children":4489},{"className":4488},[],[4490],{"type":62,"value":4229},{"type":48,"tag":969,"props":4492,"children":4493},{},[4494,4499],{"type":48,"tag":113,"props":4495,"children":4497},{"className":4496},[],[4498],{"type":62,"value":4342},{"type":62,"value":4500}," in debug",{"type":48,"tag":969,"props":4502,"children":4503},{},[4504,4506],{"type":62,"value":4505},"Verbose SDK output. ",{"type":48,"tag":141,"props":4507,"children":4508},{},[4509,4511,4516],{"type":62,"value":4510},"Never force ",{"type":48,"tag":113,"props":4512,"children":4514},{"className":4513},[],[4515],{"type":62,"value":4342},{"type":62,"value":4517}," in production",{"type":48,"tag":947,"props":4519,"children":4520},{},[4521,4530,4534,4543],{"type":48,"tag":969,"props":4522,"children":4523},{},[4524],{"type":48,"tag":113,"props":4525,"children":4527},{"className":4526},[],[4528],{"type":62,"value":4529},"diagnosticLevel",{"type":48,"tag":969,"props":4531,"children":4532},{},[4533],{"type":62,"value":4397},{"type":48,"tag":969,"props":4535,"children":4536},{},[4537],{"type":48,"tag":113,"props":4538,"children":4540},{"className":4539},[],[4541],{"type":62,"value":4542},"warning",{"type":48,"tag":969,"props":4544,"children":4545},{},[4546,4548,4553,4554,4560,4561,4566,4567,4573,4574],{"type":62,"value":4547},"Log verbosity: ",{"type":48,"tag":113,"props":4549,"children":4551},{"className":4550},[],[4552],{"type":62,"value":4482},{"type":62,"value":120},{"type":48,"tag":113,"props":4555,"children":4557},{"className":4556},[],[4558],{"type":62,"value":4559},"info",{"type":62,"value":120},{"type":48,"tag":113,"props":4562,"children":4564},{"className":4563},[],[4565],{"type":62,"value":4542},{"type":62,"value":120},{"type":48,"tag":113,"props":4568,"children":4570},{"className":4569},[],[4571],{"type":62,"value":4572},"error",{"type":62,"value":120},{"type":48,"tag":113,"props":4575,"children":4577},{"className":4576},[],[4578],{"type":62,"value":4579},"fatal",{"type":48,"tag":947,"props":4581,"children":4582},{},[4583,4592,4600,4608],{"type":48,"tag":969,"props":4584,"children":4585},{},[4586],{"type":48,"tag":113,"props":4587,"children":4589},{"className":4588},[],[4590],{"type":62,"value":4591},"enabled",{"type":48,"tag":969,"props":4593,"children":4594},{},[4595],{"type":48,"tag":113,"props":4596,"children":4598},{"className":4597},[],[4599],{"type":62,"value":4229},{"type":48,"tag":969,"props":4601,"children":4602},{},[4603],{"type":48,"tag":113,"props":4604,"children":4606},{"className":4605},[],[4607],{"type":62,"value":4342},{"type":48,"tag":969,"props":4609,"children":4610},{},[4611],{"type":62,"value":4612},"Disable SDK entirely (e.g., for testing)",{"type":48,"tag":947,"props":4614,"children":4615},{},[4616,4625,4633,4642],{"type":48,"tag":969,"props":4617,"children":4618},{},[4619],{"type":48,"tag":113,"props":4620,"children":4622},{"className":4621},[],[4623],{"type":62,"value":4624},"maxCacheItems",{"type":48,"tag":969,"props":4626,"children":4627},{},[4628],{"type":48,"tag":113,"props":4629,"children":4631},{"className":4630},[],[4632],{"type":62,"value":4299},{"type":48,"tag":969,"props":4634,"children":4635},{},[4636],{"type":48,"tag":113,"props":4637,"children":4639},{"className":4638},[],[4640],{"type":62,"value":4641},"30",{"type":48,"tag":969,"props":4643,"children":4644},{},[4645],{"type":62,"value":4646},"Max offline-cached envelopes (not supported on Web)",{"type":48,"tag":947,"props":4648,"children":4649},{},[4650,4659,4667,4675],{"type":48,"tag":969,"props":4651,"children":4652},{},[4653],{"type":48,"tag":113,"props":4654,"children":4656},{"className":4655},[],[4657],{"type":62,"value":4658},"sendClientReports",{"type":48,"tag":969,"props":4660,"children":4661},{},[4662],{"type":48,"tag":113,"props":4663,"children":4665},{"className":4664},[],[4666],{"type":62,"value":4229},{"type":48,"tag":969,"props":4668,"children":4669},{},[4670],{"type":48,"tag":113,"props":4671,"children":4673},{"className":4672},[],[4674],{"type":62,"value":4342},{"type":48,"tag":969,"props":4676,"children":4677},{},[4678],{"type":62,"value":4679},"Send SDK health reports (dropped events, etc.)",{"type":48,"tag":947,"props":4681,"children":4682},{},[4683,4692,4700,4708],{"type":48,"tag":969,"props":4684,"children":4685},{},[4686],{"type":48,"tag":113,"props":4687,"children":4689},{"className":4688},[],[4690],{"type":62,"value":4691},"reportPackages",{"type":48,"tag":969,"props":4693,"children":4694},{},[4695],{"type":48,"tag":113,"props":4696,"children":4698},{"className":4697},[],[4699],{"type":62,"value":4229},{"type":48,"tag":969,"props":4701,"children":4702},{},[4703],{"type":48,"tag":113,"props":4704,"children":4706},{"className":4705},[],[4707],{"type":62,"value":4342},{"type":48,"tag":969,"props":4709,"children":4710},{},[4711,4713,4718],{"type":62,"value":4712},"Report ",{"type":48,"tag":113,"props":4714,"children":4716},{"className":4715},[],[4717],{"type":62,"value":984},{"type":62,"value":4719}," dependency list",{"type":48,"tag":947,"props":4721,"children":4722},{},[4723,4732,4740,4748],{"type":48,"tag":969,"props":4724,"children":4725},{},[4726],{"type":48,"tag":113,"props":4727,"children":4729},{"className":4728},[],[4730],{"type":62,"value":4731},"reportSilentFlutterErrors",{"type":48,"tag":969,"props":4733,"children":4734},{},[4735],{"type":48,"tag":113,"props":4736,"children":4738},{"className":4737},[],[4739],{"type":62,"value":4229},{"type":48,"tag":969,"props":4741,"children":4742},{},[4743],{"type":48,"tag":113,"props":4744,"children":4746},{"className":4745},[],[4747],{"type":62,"value":4238},{"type":48,"tag":969,"props":4749,"children":4750},{},[4751,4753,4759],{"type":62,"value":4752},"Capture ",{"type":48,"tag":113,"props":4754,"children":4756},{"className":4755},[],[4757],{"type":62,"value":4758},"FlutterErrorDetails.silent",{"type":62,"value":4760}," errors",{"type":48,"tag":947,"props":4762,"children":4763},{},[4764,4773,4782,4791],{"type":48,"tag":969,"props":4765,"children":4766},{},[4767],{"type":48,"tag":113,"props":4768,"children":4770},{"className":4769},[],[4771],{"type":62,"value":4772},"idleTimeout",{"type":48,"tag":969,"props":4774,"children":4775},{},[4776],{"type":48,"tag":113,"props":4777,"children":4779},{"className":4778},[],[4780],{"type":62,"value":4781},"Duration",{"type":48,"tag":969,"props":4783,"children":4784},{},[4785],{"type":48,"tag":113,"props":4786,"children":4788},{"className":4787},[],[4789],{"type":62,"value":4790},"3000ms",{"type":48,"tag":969,"props":4792,"children":4793},{},[4794],{"type":62,"value":4795},"Auto-finish idle user interaction transactions",{"type":48,"tag":1492,"props":4797,"children":4799},{"id":4798},"tracing-options",[4800],{"type":62,"value":4801},"Tracing Options",{"type":48,"tag":939,"props":4803,"children":4804},{},[4805,4827],{"type":48,"tag":943,"props":4806,"children":4807},{},[4808],{"type":48,"tag":947,"props":4809,"children":4810},{},[4811,4815,4819,4823],{"type":48,"tag":951,"props":4812,"children":4813},{},[4814],{"type":62,"value":4015},{"type":48,"tag":951,"props":4816,"children":4817},{},[4818],{"type":62,"value":4020},{"type":48,"tag":951,"props":4820,"children":4821},{},[4822],{"type":62,"value":4025},{"type":48,"tag":951,"props":4824,"children":4825},{},[4826],{"type":62,"value":1703},{"type":48,"tag":962,"props":4828,"children":4829},{},[4830,4859,4894,4939,4980,5013,5046,5079],{"type":48,"tag":947,"props":4831,"children":4832},{},[4833,4842,4850,4854],{"type":48,"tag":969,"props":4834,"children":4835},{},[4836],{"type":48,"tag":113,"props":4837,"children":4839},{"className":4838},[],[4840],{"type":62,"value":4841},"tracesSampleRate",{"type":48,"tag":969,"props":4843,"children":4844},{},[4845],{"type":48,"tag":113,"props":4846,"children":4848},{"className":4847},[],[4849],{"type":62,"value":4264},{"type":48,"tag":969,"props":4851,"children":4852},{},[4853],{"type":62,"value":4058},{"type":48,"tag":969,"props":4855,"children":4856},{},[4857],{"type":62,"value":4858},"Transaction sample rate (0–1). Enable by setting >0",{"type":48,"tag":947,"props":4860,"children":4861},{},[4862,4871,4880,4884],{"type":48,"tag":969,"props":4863,"children":4864},{},[4865],{"type":48,"tag":113,"props":4866,"children":4868},{"className":4867},[],[4869],{"type":62,"value":4870},"tracesSampler",{"type":48,"tag":969,"props":4872,"children":4873},{},[4874],{"type":48,"tag":113,"props":4875,"children":4877},{"className":4876},[],[4878],{"type":62,"value":4879},"function",{"type":48,"tag":969,"props":4881,"children":4882},{},[4883],{"type":62,"value":4058},{"type":48,"tag":969,"props":4885,"children":4886},{},[4887,4889],{"type":62,"value":4888},"Per-transaction sampling; overrides ",{"type":48,"tag":113,"props":4890,"children":4892},{"className":4891},[],[4893],{"type":62,"value":4841},{"type":48,"tag":947,"props":4895,"children":4896},{},[4897,4906,4915,4919],{"type":48,"tag":969,"props":4898,"children":4899},{},[4900],{"type":48,"tag":113,"props":4901,"children":4903},{"className":4902},[],[4904],{"type":62,"value":4905},"tracePropagationTargets",{"type":48,"tag":969,"props":4907,"children":4908},{},[4909],{"type":48,"tag":113,"props":4910,"children":4912},{"className":4911},[],[4913],{"type":62,"value":4914},"List",{"type":48,"tag":969,"props":4916,"children":4917},{},[4918],{"type":62,"value":4058},{"type":48,"tag":969,"props":4920,"children":4921},{},[4922,4924,4930,4931,4937],{"type":62,"value":4923},"URLs to attach ",{"type":48,"tag":113,"props":4925,"children":4927},{"className":4926},[],[4928],{"type":62,"value":4929},"sentry-trace",{"type":62,"value":1552},{"type":48,"tag":113,"props":4932,"children":4934},{"className":4933},[],[4935],{"type":62,"value":4936},"baggage",{"type":62,"value":4938}," headers",{"type":48,"tag":947,"props":4940,"children":4941},{},[4942,4951,4959,4967],{"type":48,"tag":969,"props":4943,"children":4944},{},[4945],{"type":48,"tag":113,"props":4946,"children":4948},{"className":4947},[],[4949],{"type":62,"value":4950},"propagateTraceparent",{"type":48,"tag":969,"props":4952,"children":4953},{},[4954],{"type":48,"tag":113,"props":4955,"children":4957},{"className":4956},[],[4958],{"type":62,"value":4229},{"type":48,"tag":969,"props":4960,"children":4961},{},[4962],{"type":48,"tag":113,"props":4963,"children":4965},{"className":4964},[],[4966],{"type":62,"value":4238},{"type":48,"tag":969,"props":4968,"children":4969},{},[4970,4972,4978],{"type":62,"value":4971},"Also send W3C ",{"type":48,"tag":113,"props":4973,"children":4975},{"className":4974},[],[4976],{"type":62,"value":4977},"traceparent",{"type":62,"value":4979}," header (SDK ≥9.7.0)",{"type":48,"tag":947,"props":4981,"children":4982},{},[4983,4992,5000,5008],{"type":48,"tag":969,"props":4984,"children":4985},{},[4986],{"type":48,"tag":113,"props":4987,"children":4989},{"className":4988},[],[4990],{"type":62,"value":4991},"enableTimeToFullDisplayTracing",{"type":48,"tag":969,"props":4993,"children":4994},{},[4995],{"type":48,"tag":113,"props":4996,"children":4998},{"className":4997},[],[4999],{"type":62,"value":4229},{"type":48,"tag":969,"props":5001,"children":5002},{},[5003],{"type":48,"tag":113,"props":5004,"children":5006},{"className":5005},[],[5007],{"type":62,"value":4238},{"type":48,"tag":969,"props":5009,"children":5010},{},[5011],{"type":62,"value":5012},"Opt-in TTFD tracking per screen",{"type":48,"tag":947,"props":5014,"children":5015},{},[5016,5025,5033,5041],{"type":48,"tag":969,"props":5017,"children":5018},{},[5019],{"type":48,"tag":113,"props":5020,"children":5022},{"className":5021},[],[5023],{"type":62,"value":5024},"enableAutoPerformanceTracing",{"type":48,"tag":969,"props":5026,"children":5027},{},[5028],{"type":48,"tag":113,"props":5029,"children":5031},{"className":5030},[],[5032],{"type":62,"value":4229},{"type":48,"tag":969,"props":5034,"children":5035},{},[5036],{"type":48,"tag":113,"props":5037,"children":5039},{"className":5038},[],[5040],{"type":62,"value":4342},{"type":48,"tag":969,"props":5042,"children":5043},{},[5044],{"type":62,"value":5045},"Auto-enable performance monitoring",{"type":48,"tag":947,"props":5047,"children":5048},{},[5049,5058,5066,5074],{"type":48,"tag":969,"props":5050,"children":5051},{},[5052],{"type":48,"tag":113,"props":5053,"children":5055},{"className":5054},[],[5056],{"type":62,"value":5057},"enableUserInteractionTracing",{"type":48,"tag":969,"props":5059,"children":5060},{},[5061],{"type":48,"tag":113,"props":5062,"children":5064},{"className":5063},[],[5065],{"type":62,"value":4229},{"type":48,"tag":969,"props":5067,"children":5068},{},[5069],{"type":48,"tag":113,"props":5070,"children":5072},{"className":5071},[],[5073],{"type":62,"value":4342},{"type":48,"tag":969,"props":5075,"children":5076},{},[5077],{"type":62,"value":5078},"Create transactions for tap\u002Fclick\u002Flong-press events",{"type":48,"tag":947,"props":5080,"children":5081},{},[5082,5091,5099,5107],{"type":48,"tag":969,"props":5083,"children":5084},{},[5085],{"type":48,"tag":113,"props":5086,"children":5088},{"className":5087},[],[5089],{"type":62,"value":5090},"enableUserInteractionBreadcrumbs",{"type":48,"tag":969,"props":5092,"children":5093},{},[5094],{"type":48,"tag":113,"props":5095,"children":5097},{"className":5096},[],[5098],{"type":62,"value":4229},{"type":48,"tag":969,"props":5100,"children":5101},{},[5102],{"type":48,"tag":113,"props":5103,"children":5105},{"className":5104},[],[5106],{"type":62,"value":4342},{"type":48,"tag":969,"props":5108,"children":5109},{},[5110],{"type":62,"value":5111},"Breadcrumbs for every tracked user interaction",{"type":48,"tag":1492,"props":5113,"children":5115},{"id":5114},"profiling-options",[5116],{"type":62,"value":5117},"Profiling Options",{"type":48,"tag":939,"props":5119,"children":5120},{},[5121,5143],{"type":48,"tag":943,"props":5122,"children":5123},{},[5124],{"type":48,"tag":947,"props":5125,"children":5126},{},[5127,5131,5135,5139],{"type":48,"tag":951,"props":5128,"children":5129},{},[5130],{"type":62,"value":4015},{"type":48,"tag":951,"props":5132,"children":5133},{},[5134],{"type":62,"value":4020},{"type":48,"tag":951,"props":5136,"children":5137},{},[5138],{"type":62,"value":4025},{"type":48,"tag":951,"props":5140,"children":5141},{},[5142],{"type":62,"value":1703},{"type":48,"tag":962,"props":5144,"children":5145},{},[5146],{"type":48,"tag":947,"props":5147,"children":5148},{},[5149,5158,5166,5170],{"type":48,"tag":969,"props":5150,"children":5151},{},[5152],{"type":48,"tag":113,"props":5153,"children":5155},{"className":5154},[],[5156],{"type":62,"value":5157},"profilesSampleRate",{"type":48,"tag":969,"props":5159,"children":5160},{},[5161],{"type":48,"tag":113,"props":5162,"children":5164},{"className":5163},[],[5165],{"type":62,"value":4264},{"type":48,"tag":969,"props":5167,"children":5168},{},[5169],{"type":62,"value":4058},{"type":48,"tag":969,"props":5171,"children":5172},{},[5173,5175,5180,5182],{"type":62,"value":5174},"Profiling rate relative to ",{"type":48,"tag":113,"props":5176,"children":5178},{"className":5177},[],[5179],{"type":62,"value":4841},{"type":62,"value":5181},". ",{"type":48,"tag":141,"props":5183,"children":5184},{},[5185],{"type":62,"value":5186},"iOS\u002FmacOS only",{"type":48,"tag":1492,"props":5188,"children":5190},{"id":5189},"native-mobile-options",[5191],{"type":62,"value":5192},"Native \u002F Mobile Options",{"type":48,"tag":939,"props":5194,"children":5195},{},[5196,5218],{"type":48,"tag":943,"props":5197,"children":5198},{},[5199],{"type":48,"tag":947,"props":5200,"children":5201},{},[5202,5206,5210,5214],{"type":48,"tag":951,"props":5203,"children":5204},{},[5205],{"type":62,"value":4015},{"type":48,"tag":951,"props":5207,"children":5208},{},[5209],{"type":62,"value":4020},{"type":48,"tag":951,"props":5211,"children":5212},{},[5213],{"type":62,"value":4025},{"type":48,"tag":951,"props":5215,"children":5216},{},[5217],{"type":62,"value":1703},{"type":48,"tag":962,"props":5219,"children":5220},{},[5221,5254,5287,5320,5353,5386,5420,5453,5492,5525,5554,5587,5620],{"type":48,"tag":947,"props":5222,"children":5223},{},[5224,5233,5241,5249],{"type":48,"tag":969,"props":5225,"children":5226},{},[5227],{"type":48,"tag":113,"props":5228,"children":5230},{"className":5229},[],[5231],{"type":62,"value":5232},"autoInitializeNativeSdk",{"type":48,"tag":969,"props":5234,"children":5235},{},[5236],{"type":48,"tag":113,"props":5237,"children":5239},{"className":5238},[],[5240],{"type":62,"value":4229},{"type":48,"tag":969,"props":5242,"children":5243},{},[5244],{"type":48,"tag":113,"props":5245,"children":5247},{"className":5246},[],[5248],{"type":62,"value":4342},{"type":48,"tag":969,"props":5250,"children":5251},{},[5252],{"type":62,"value":5253},"Auto-initialize native Android\u002FiOS SDK layer",{"type":48,"tag":947,"props":5255,"children":5256},{},[5257,5266,5274,5282],{"type":48,"tag":969,"props":5258,"children":5259},{},[5260],{"type":48,"tag":113,"props":5261,"children":5263},{"className":5262},[],[5264],{"type":62,"value":5265},"enableNativeCrashHandling",{"type":48,"tag":969,"props":5267,"children":5268},{},[5269],{"type":48,"tag":113,"props":5270,"children":5272},{"className":5271},[],[5273],{"type":62,"value":4229},{"type":48,"tag":969,"props":5275,"children":5276},{},[5277],{"type":48,"tag":113,"props":5278,"children":5280},{"className":5279},[],[5281],{"type":62,"value":4342},{"type":48,"tag":969,"props":5283,"children":5284},{},[5285],{"type":62,"value":5286},"Capture native crashes (NDK, signal, Mach exception)",{"type":48,"tag":947,"props":5288,"children":5289},{},[5290,5299,5307,5315],{"type":48,"tag":969,"props":5291,"children":5292},{},[5293],{"type":48,"tag":113,"props":5294,"children":5296},{"className":5295},[],[5297],{"type":62,"value":5298},"enableNdkScopeSync",{"type":48,"tag":969,"props":5300,"children":5301},{},[5302],{"type":48,"tag":113,"props":5303,"children":5305},{"className":5304},[],[5306],{"type":62,"value":4229},{"type":48,"tag":969,"props":5308,"children":5309},{},[5310],{"type":48,"tag":113,"props":5311,"children":5313},{"className":5312},[],[5314],{"type":62,"value":4342},{"type":48,"tag":969,"props":5316,"children":5317},{},[5318],{"type":62,"value":5319},"Sync Dart scope to Android NDK",{"type":48,"tag":947,"props":5321,"children":5322},{},[5323,5332,5340,5348],{"type":48,"tag":969,"props":5324,"children":5325},{},[5326],{"type":48,"tag":113,"props":5327,"children":5329},{"className":5328},[],[5330],{"type":62,"value":5331},"enableScopeSync",{"type":48,"tag":969,"props":5333,"children":5334},{},[5335],{"type":48,"tag":113,"props":5336,"children":5338},{"className":5337},[],[5339],{"type":62,"value":4229},{"type":48,"tag":969,"props":5341,"children":5342},{},[5343],{"type":48,"tag":113,"props":5344,"children":5346},{"className":5345},[],[5347],{"type":62,"value":4342},{"type":48,"tag":969,"props":5349,"children":5350},{},[5351],{"type":62,"value":5352},"Sync scope data to native SDKs",{"type":48,"tag":947,"props":5354,"children":5355},{},[5356,5365,5373,5381],{"type":48,"tag":969,"props":5357,"children":5358},{},[5359],{"type":48,"tag":113,"props":5360,"children":5362},{"className":5361},[],[5363],{"type":62,"value":5364},"anrEnabled",{"type":48,"tag":969,"props":5366,"children":5367},{},[5368],{"type":48,"tag":113,"props":5369,"children":5371},{"className":5370},[],[5372],{"type":62,"value":4229},{"type":48,"tag":969,"props":5374,"children":5375},{},[5376],{"type":48,"tag":113,"props":5377,"children":5379},{"className":5378},[],[5380],{"type":62,"value":4342},{"type":48,"tag":969,"props":5382,"children":5383},{},[5384],{"type":62,"value":5385},"ANR detection (Android)",{"type":48,"tag":947,"props":5387,"children":5388},{},[5389,5398,5406,5415],{"type":48,"tag":969,"props":5390,"children":5391},{},[5392],{"type":48,"tag":113,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":62,"value":5397},"anrTimeoutInterval",{"type":48,"tag":969,"props":5399,"children":5400},{},[5401],{"type":48,"tag":113,"props":5402,"children":5404},{"className":5403},[],[5405],{"type":62,"value":4299},{"type":48,"tag":969,"props":5407,"children":5408},{},[5409],{"type":48,"tag":113,"props":5410,"children":5412},{"className":5411},[],[5413],{"type":62,"value":5414},"5000",{"type":48,"tag":969,"props":5416,"children":5417},{},[5418],{"type":62,"value":5419},"ANR timeout in milliseconds (Android)",{"type":48,"tag":947,"props":5421,"children":5422},{},[5423,5432,5440,5448],{"type":48,"tag":969,"props":5424,"children":5425},{},[5426],{"type":48,"tag":113,"props":5427,"children":5429},{"className":5428},[],[5430],{"type":62,"value":5431},"enableWatchdogTerminationTracking",{"type":48,"tag":969,"props":5433,"children":5434},{},[5435],{"type":48,"tag":113,"props":5436,"children":5438},{"className":5437},[],[5439],{"type":62,"value":4229},{"type":48,"tag":969,"props":5441,"children":5442},{},[5443],{"type":48,"tag":113,"props":5444,"children":5446},{"className":5445},[],[5447],{"type":62,"value":4342},{"type":48,"tag":969,"props":5449,"children":5450},{},[5451],{"type":62,"value":5452},"OOM kill tracking (iOS)",{"type":48,"tag":947,"props":5454,"children":5455},{},[5456,5465,5473,5481],{"type":48,"tag":969,"props":5457,"children":5458},{},[5459],{"type":48,"tag":113,"props":5460,"children":5462},{"className":5461},[],[5463],{"type":62,"value":5464},"enableTombstone",{"type":48,"tag":969,"props":5466,"children":5467},{},[5468],{"type":48,"tag":113,"props":5469,"children":5471},{"className":5470},[],[5472],{"type":62,"value":4229},{"type":48,"tag":969,"props":5474,"children":5475},{},[5476],{"type":48,"tag":113,"props":5477,"children":5479},{"className":5478},[],[5480],{"type":62,"value":4238},{"type":48,"tag":969,"props":5482,"children":5483},{},[5484,5486],{"type":62,"value":5485},"Android 12+ native crash info via ",{"type":48,"tag":113,"props":5487,"children":5489},{"className":5488},[],[5490],{"type":62,"value":5491},"ApplicationExitInfo",{"type":48,"tag":947,"props":5493,"children":5494},{},[5495,5504,5512,5520],{"type":48,"tag":969,"props":5496,"children":5497},{},[5498],{"type":48,"tag":113,"props":5499,"children":5501},{"className":5500},[],[5502],{"type":62,"value":5503},"attachThreads",{"type":48,"tag":969,"props":5505,"children":5506},{},[5507],{"type":48,"tag":113,"props":5508,"children":5510},{"className":5509},[],[5511],{"type":62,"value":4229},{"type":48,"tag":969,"props":5513,"children":5514},{},[5515],{"type":48,"tag":113,"props":5516,"children":5518},{"className":5517},[],[5519],{"type":62,"value":4238},{"type":48,"tag":969,"props":5521,"children":5522},{},[5523],{"type":62,"value":5524},"Attach all threads on crash (Android)",{"type":48,"tag":947,"props":5526,"children":5527},{},[5528,5537,5545,5549],{"type":48,"tag":969,"props":5529,"children":5530},{},[5531],{"type":48,"tag":113,"props":5532,"children":5534},{"className":5533},[],[5535],{"type":62,"value":5536},"captureNativeFailedRequests",{"type":48,"tag":969,"props":5538,"children":5539},{},[5540],{"type":48,"tag":113,"props":5541,"children":5543},{"className":5542},[],[5544],{"type":62,"value":4229},{"type":48,"tag":969,"props":5546,"children":5547},{},[5548],{"type":62,"value":4058},{"type":48,"tag":969,"props":5550,"children":5551},{},[5552],{"type":62,"value":5553},"Native HTTP error capture, independent of Dart client (iOS\u002FmacOS, v9.11.0+)",{"type":48,"tag":947,"props":5555,"children":5556},{},[5557,5566,5574,5582],{"type":48,"tag":969,"props":5558,"children":5559},{},[5560],{"type":48,"tag":113,"props":5561,"children":5563},{"className":5562},[],[5564],{"type":62,"value":5565},"enableAutoNativeAppStart",{"type":48,"tag":969,"props":5567,"children":5568},{},[5569],{"type":48,"tag":113,"props":5570,"children":5572},{"className":5571},[],[5573],{"type":62,"value":4229},{"type":48,"tag":969,"props":5575,"children":5576},{},[5577],{"type":48,"tag":113,"props":5578,"children":5580},{"className":5579},[],[5581],{"type":62,"value":4342},{"type":48,"tag":969,"props":5583,"children":5584},{},[5585],{"type":62,"value":5586},"App start timing instrumentation (iOS\u002FAndroid)",{"type":48,"tag":947,"props":5588,"children":5589},{},[5590,5599,5607,5615],{"type":48,"tag":969,"props":5591,"children":5592},{},[5593],{"type":48,"tag":113,"props":5594,"children":5596},{"className":5595},[],[5597],{"type":62,"value":5598},"enableFramesTracking",{"type":48,"tag":969,"props":5600,"children":5601},{},[5602],{"type":48,"tag":113,"props":5603,"children":5605},{"className":5604},[],[5606],{"type":62,"value":4229},{"type":48,"tag":969,"props":5608,"children":5609},{},[5610],{"type":48,"tag":113,"props":5611,"children":5613},{"className":5612},[],[5614],{"type":62,"value":4342},{"type":48,"tag":969,"props":5616,"children":5617},{},[5618],{"type":62,"value":5619},"Slow\u002Ffrozen frame monitoring (iOS\u002FAndroid\u002FmacOS)",{"type":48,"tag":947,"props":5621,"children":5622},{},[5623,5632,5640,5644],{"type":48,"tag":969,"props":5624,"children":5625},{},[5626],{"type":48,"tag":113,"props":5627,"children":5629},{"className":5628},[],[5630],{"type":62,"value":5631},"proguardUuid",{"type":48,"tag":969,"props":5633,"children":5634},{},[5635],{"type":48,"tag":113,"props":5636,"children":5638},{"className":5637},[],[5639],{"type":62,"value":4053},{"type":48,"tag":969,"props":5641,"children":5642},{},[5643],{"type":62,"value":4058},{"type":48,"tag":969,"props":5645,"children":5646},{},[5647],{"type":62,"value":5648},"Proguard UUID for Android obfuscation mapping",{"type":48,"tag":1492,"props":5650,"children":5652},{"id":5651},"session-release-health-options",[5653],{"type":62,"value":5654},"Session & Release Health Options",{"type":48,"tag":939,"props":5656,"children":5657},{},[5658,5680],{"type":48,"tag":943,"props":5659,"children":5660},{},[5661],{"type":48,"tag":947,"props":5662,"children":5663},{},[5664,5668,5672,5676],{"type":48,"tag":951,"props":5665,"children":5666},{},[5667],{"type":62,"value":4015},{"type":48,"tag":951,"props":5669,"children":5670},{},[5671],{"type":62,"value":4020},{"type":48,"tag":951,"props":5673,"children":5674},{},[5675],{"type":62,"value":4025},{"type":48,"tag":951,"props":5677,"children":5678},{},[5679],{"type":62,"value":1703},{"type":48,"tag":962,"props":5681,"children":5682},{},[5683,5716],{"type":48,"tag":947,"props":5684,"children":5685},{},[5686,5695,5703,5711],{"type":48,"tag":969,"props":5687,"children":5688},{},[5689],{"type":48,"tag":113,"props":5690,"children":5692},{"className":5691},[],[5693],{"type":62,"value":5694},"enableAutoSessionTracking",{"type":48,"tag":969,"props":5696,"children":5697},{},[5698],{"type":48,"tag":113,"props":5699,"children":5701},{"className":5700},[],[5702],{"type":62,"value":4229},{"type":48,"tag":969,"props":5704,"children":5705},{},[5706],{"type":48,"tag":113,"props":5707,"children":5709},{"className":5708},[],[5710],{"type":62,"value":4342},{"type":48,"tag":969,"props":5712,"children":5713},{},[5714],{"type":62,"value":5715},"Session tracking for crash-free user\u002Fsession metrics",{"type":48,"tag":947,"props":5717,"children":5718},{},[5719,5728,5736,5745],{"type":48,"tag":969,"props":5720,"children":5721},{},[5722],{"type":48,"tag":113,"props":5723,"children":5725},{"className":5724},[],[5726],{"type":62,"value":5727},"autoSessionTrackingInterval",{"type":48,"tag":969,"props":5729,"children":5730},{},[5731],{"type":48,"tag":113,"props":5732,"children":5734},{"className":5733},[],[5735],{"type":62,"value":4781},{"type":48,"tag":969,"props":5737,"children":5738},{},[5739],{"type":48,"tag":113,"props":5740,"children":5742},{"className":5741},[],[5743],{"type":62,"value":5744},"30s",{"type":48,"tag":969,"props":5746,"children":5747},{},[5748],{"type":62,"value":5749},"Background inactivity before session ends",{"type":48,"tag":1492,"props":5751,"children":5753},{"id":5752},"replay-options-optionsreplay",[5754,5756,5762],{"type":62,"value":5755},"Replay Options (",{"type":48,"tag":113,"props":5757,"children":5759},{"className":5758},[],[5760],{"type":62,"value":5761},"options.replay",{"type":62,"value":5763},")",{"type":48,"tag":939,"props":5765,"children":5766},{},[5767,5789],{"type":48,"tag":943,"props":5768,"children":5769},{},[5770],{"type":48,"tag":947,"props":5771,"children":5772},{},[5773,5777,5781,5785],{"type":48,"tag":951,"props":5774,"children":5775},{},[5776],{"type":62,"value":4015},{"type":48,"tag":951,"props":5778,"children":5779},{},[5780],{"type":62,"value":4020},{"type":48,"tag":951,"props":5782,"children":5783},{},[5784],{"type":62,"value":4025},{"type":48,"tag":951,"props":5786,"children":5787},{},[5788],{"type":62,"value":1703},{"type":48,"tag":962,"props":5790,"children":5791},{},[5792,5826],{"type":48,"tag":947,"props":5793,"children":5794},{},[5795,5804,5812,5821],{"type":48,"tag":969,"props":5796,"children":5797},{},[5798],{"type":48,"tag":113,"props":5799,"children":5801},{"className":5800},[],[5802],{"type":62,"value":5803},"replay.sessionSampleRate",{"type":48,"tag":969,"props":5805,"children":5806},{},[5807],{"type":48,"tag":113,"props":5808,"children":5810},{"className":5809},[],[5811],{"type":62,"value":4264},{"type":48,"tag":969,"props":5813,"children":5814},{},[5815],{"type":48,"tag":113,"props":5816,"children":5818},{"className":5817},[],[5819],{"type":62,"value":5820},"0.0",{"type":48,"tag":969,"props":5822,"children":5823},{},[5824],{"type":62,"value":5825},"Fraction of all sessions recorded",{"type":48,"tag":947,"props":5827,"children":5828},{},[5829,5838,5846,5854],{"type":48,"tag":969,"props":5830,"children":5831},{},[5832],{"type":48,"tag":113,"props":5833,"children":5835},{"className":5834},[],[5836],{"type":62,"value":5837},"replay.onErrorSampleRate",{"type":48,"tag":969,"props":5839,"children":5840},{},[5841],{"type":48,"tag":113,"props":5842,"children":5844},{"className":5843},[],[5845],{"type":62,"value":4264},{"type":48,"tag":969,"props":5847,"children":5848},{},[5849],{"type":48,"tag":113,"props":5850,"children":5852},{"className":5851},[],[5853],{"type":62,"value":5820},{"type":48,"tag":969,"props":5855,"children":5856},{},[5857],{"type":62,"value":5858},"Fraction of error sessions recorded",{"type":48,"tag":1492,"props":5860,"children":5862},{"id":5861},"replay-privacy-options-optionsprivacy",[5863,5865,5871],{"type":62,"value":5864},"Replay Privacy Options (",{"type":48,"tag":113,"props":5866,"children":5868},{"className":5867},[],[5869],{"type":62,"value":5870},"options.privacy",{"type":62,"value":5763},{"type":48,"tag":939,"props":5873,"children":5874},{},[5875,5894],{"type":48,"tag":943,"props":5876,"children":5877},{},[5878],{"type":48,"tag":947,"props":5879,"children":5880},{},[5881,5886,5890],{"type":48,"tag":951,"props":5882,"children":5883},{},[5884],{"type":62,"value":5885},"Option \u002F Method",{"type":48,"tag":951,"props":5887,"children":5888},{},[5889],{"type":62,"value":4025},{"type":48,"tag":951,"props":5891,"children":5892},{},[5893],{"type":62,"value":1703},{"type":48,"tag":962,"props":5895,"children":5896},{},[5897,5922,5947,5972,5993,6014],{"type":48,"tag":947,"props":5898,"children":5899},{},[5900,5909,5917],{"type":48,"tag":969,"props":5901,"children":5902},{},[5903],{"type":48,"tag":113,"props":5904,"children":5906},{"className":5905},[],[5907],{"type":62,"value":5908},"privacy.maskAllText",{"type":48,"tag":969,"props":5910,"children":5911},{},[5912],{"type":48,"tag":113,"props":5913,"children":5915},{"className":5914},[],[5916],{"type":62,"value":4342},{"type":48,"tag":969,"props":5918,"children":5919},{},[5920],{"type":62,"value":5921},"Mask all text widget content",{"type":48,"tag":947,"props":5923,"children":5924},{},[5925,5934,5942],{"type":48,"tag":969,"props":5926,"children":5927},{},[5928],{"type":48,"tag":113,"props":5929,"children":5931},{"className":5930},[],[5932],{"type":62,"value":5933},"privacy.maskAllImages",{"type":48,"tag":969,"props":5935,"children":5936},{},[5937],{"type":48,"tag":113,"props":5938,"children":5940},{"className":5939},[],[5941],{"type":62,"value":4342},{"type":48,"tag":969,"props":5943,"children":5944},{},[5945],{"type":62,"value":5946},"Mask all image widgets",{"type":48,"tag":947,"props":5948,"children":5949},{},[5950,5959,5967],{"type":48,"tag":969,"props":5951,"children":5952},{},[5953],{"type":48,"tag":113,"props":5954,"children":5956},{"className":5955},[],[5957],{"type":62,"value":5958},"privacy.maskAssetImages",{"type":48,"tag":969,"props":5960,"children":5961},{},[5962],{"type":48,"tag":113,"props":5963,"children":5965},{"className":5964},[],[5966],{"type":62,"value":4342},{"type":48,"tag":969,"props":5968,"children":5969},{},[5970],{"type":62,"value":5971},"Mask images from root asset bundle",{"type":48,"tag":947,"props":5973,"children":5974},{},[5975,5984,5988],{"type":48,"tag":969,"props":5976,"children":5977},{},[5978],{"type":48,"tag":113,"props":5979,"children":5981},{"className":5980},[],[5982],{"type":62,"value":5983},"privacy.mask\u003CT>()",{"type":48,"tag":969,"props":5985,"children":5986},{},[5987],{"type":62,"value":4058},{"type":48,"tag":969,"props":5989,"children":5990},{},[5991],{"type":62,"value":5992},"Mask a specific widget type and all subclasses",{"type":48,"tag":947,"props":5994,"children":5995},{},[5996,6005,6009],{"type":48,"tag":969,"props":5997,"children":5998},{},[5999],{"type":48,"tag":113,"props":6000,"children":6002},{"className":6001},[],[6003],{"type":62,"value":6004},"privacy.unmask\u003CT>()",{"type":48,"tag":969,"props":6006,"children":6007},{},[6008],{"type":62,"value":4058},{"type":48,"tag":969,"props":6010,"children":6011},{},[6012],{"type":62,"value":6013},"Unmask a specific widget type",{"type":48,"tag":947,"props":6015,"children":6016},{},[6017,6026,6030],{"type":48,"tag":969,"props":6018,"children":6019},{},[6020],{"type":48,"tag":113,"props":6021,"children":6023},{"className":6022},[],[6024],{"type":62,"value":6025},"privacy.maskCallback\u003CT>()",{"type":48,"tag":969,"props":6027,"children":6028},{},[6029],{"type":62,"value":4058},{"type":48,"tag":969,"props":6031,"children":6032},{},[6033],{"type":62,"value":6034},"Custom masking decision per widget instance",{"type":48,"tag":1492,"props":6036,"children":6038},{"id":6037},"http-options",[6039],{"type":62,"value":6040},"HTTP Options",{"type":48,"tag":939,"props":6042,"children":6043},{},[6044,6066],{"type":48,"tag":943,"props":6045,"children":6046},{},[6047],{"type":48,"tag":947,"props":6048,"children":6049},{},[6050,6054,6058,6062],{"type":48,"tag":951,"props":6051,"children":6052},{},[6053],{"type":62,"value":4015},{"type":48,"tag":951,"props":6055,"children":6056},{},[6057],{"type":62,"value":4020},{"type":48,"tag":951,"props":6059,"children":6060},{},[6061],{"type":62,"value":4025},{"type":48,"tag":951,"props":6063,"children":6064},{},[6065],{"type":62,"value":1703},{"type":48,"tag":962,"props":6067,"children":6068},{},[6069,6104,6159,6193],{"type":48,"tag":947,"props":6070,"children":6071},{},[6072,6081,6089,6099],{"type":48,"tag":969,"props":6073,"children":6074},{},[6075],{"type":48,"tag":113,"props":6076,"children":6078},{"className":6077},[],[6079],{"type":62,"value":6080},"captureFailedRequests",{"type":48,"tag":969,"props":6082,"children":6083},{},[6084],{"type":48,"tag":113,"props":6085,"children":6087},{"className":6086},[],[6088],{"type":62,"value":4229},{"type":48,"tag":969,"props":6090,"children":6091},{},[6092,6097],{"type":48,"tag":113,"props":6093,"children":6095},{"className":6094},[],[6096],{"type":62,"value":4342},{"type":62,"value":6098}," (Flutter)",{"type":48,"tag":969,"props":6100,"children":6101},{},[6102],{"type":62,"value":6103},"Auto-capture HTTP errors",{"type":48,"tag":947,"props":6105,"children":6106},{},[6107,6116,6120,6129],{"type":48,"tag":969,"props":6108,"children":6109},{},[6110],{"type":48,"tag":113,"props":6111,"children":6113},{"className":6112},[],[6114],{"type":62,"value":6115},"maxRequestBodySize",{"type":48,"tag":969,"props":6117,"children":6118},{},[6119],{"type":62,"value":4397},{"type":48,"tag":969,"props":6121,"children":6122},{},[6123],{"type":48,"tag":113,"props":6124,"children":6126},{"className":6125},[],[6127],{"type":62,"value":6128},"never",{"type":48,"tag":969,"props":6130,"children":6131},{},[6132,6134,6139,6140,6146,6147,6152,6153],{"type":62,"value":6133},"Body capture: ",{"type":48,"tag":113,"props":6135,"children":6137},{"className":6136},[],[6138],{"type":62,"value":6128},{"type":62,"value":120},{"type":48,"tag":113,"props":6141,"children":6143},{"className":6142},[],[6144],{"type":62,"value":6145},"small",{"type":62,"value":120},{"type":48,"tag":113,"props":6148,"children":6150},{"className":6149},[],[6151],{"type":62,"value":4430},{"type":62,"value":120},{"type":48,"tag":113,"props":6154,"children":6156},{"className":6155},[],[6157],{"type":62,"value":6158},"always",{"type":48,"tag":947,"props":6160,"children":6161},{},[6162,6171,6179,6188],{"type":48,"tag":969,"props":6163,"children":6164},{},[6165],{"type":48,"tag":113,"props":6166,"children":6168},{"className":6167},[],[6169],{"type":62,"value":6170},"failedRequestStatusCodes",{"type":48,"tag":969,"props":6172,"children":6173},{},[6174],{"type":48,"tag":113,"props":6175,"children":6177},{"className":6176},[],[6178],{"type":62,"value":4914},{"type":48,"tag":969,"props":6180,"children":6181},{},[6182],{"type":48,"tag":113,"props":6183,"children":6185},{"className":6184},[],[6186],{"type":62,"value":6187},"[500–599]",{"type":48,"tag":969,"props":6189,"children":6190},{},[6191],{"type":62,"value":6192},"Status codes treated as failures",{"type":48,"tag":947,"props":6194,"children":6195},{},[6196,6205,6213,6222],{"type":48,"tag":969,"props":6197,"children":6198},{},[6199],{"type":48,"tag":113,"props":6200,"children":6202},{"className":6201},[],[6203],{"type":62,"value":6204},"failedRequestTargets",{"type":48,"tag":969,"props":6206,"children":6207},{},[6208],{"type":48,"tag":113,"props":6209,"children":6211},{"className":6210},[],[6212],{"type":62,"value":4914},{"type":48,"tag":969,"props":6214,"children":6215},{},[6216],{"type":48,"tag":113,"props":6217,"children":6219},{"className":6218},[],[6220],{"type":62,"value":6221},"['.*']",{"type":48,"tag":969,"props":6223,"children":6224},{},[6225],{"type":62,"value":6226},"URL patterns to monitor",{"type":48,"tag":1492,"props":6228,"children":6230},{"id":6229},"hook-options",[6231],{"type":62,"value":6232},"Hook Options",{"type":48,"tag":939,"props":6234,"children":6235},{},[6236,6254],{"type":48,"tag":943,"props":6237,"children":6238},{},[6239],{"type":48,"tag":947,"props":6240,"children":6241},{},[6242,6246,6250],{"type":48,"tag":951,"props":6243,"children":6244},{},[6245],{"type":62,"value":4015},{"type":48,"tag":951,"props":6247,"children":6248},{},[6249],{"type":62,"value":4020},{"type":48,"tag":951,"props":6251,"children":6252},{},[6253],{"type":62,"value":1703},{"type":48,"tag":962,"props":6255,"children":6256},{},[6257,6291,6317,6343],{"type":48,"tag":947,"props":6258,"children":6259},{},[6260,6269,6278],{"type":48,"tag":969,"props":6261,"children":6262},{},[6263],{"type":48,"tag":113,"props":6264,"children":6266},{"className":6265},[],[6267],{"type":62,"value":6268},"beforeSend",{"type":48,"tag":969,"props":6270,"children":6271},{},[6272],{"type":48,"tag":113,"props":6273,"children":6275},{"className":6274},[],[6276],{"type":62,"value":6277},"(SentryEvent, Hint) → SentryEvent?",{"type":48,"tag":969,"props":6279,"children":6280},{},[6281,6283,6289],{"type":62,"value":6282},"Modify or drop error events. Return ",{"type":48,"tag":113,"props":6284,"children":6286},{"className":6285},[],[6287],{"type":62,"value":6288},"null",{"type":62,"value":6290}," to drop",{"type":48,"tag":947,"props":6292,"children":6293},{},[6294,6303,6312],{"type":48,"tag":969,"props":6295,"children":6296},{},[6297],{"type":48,"tag":113,"props":6298,"children":6300},{"className":6299},[],[6301],{"type":62,"value":6302},"beforeSendTransaction",{"type":48,"tag":969,"props":6304,"children":6305},{},[6306],{"type":48,"tag":113,"props":6307,"children":6309},{"className":6308},[],[6310],{"type":62,"value":6311},"(SentryEvent) → SentryEvent?",{"type":48,"tag":969,"props":6313,"children":6314},{},[6315],{"type":62,"value":6316},"Modify or drop transaction events",{"type":48,"tag":947,"props":6318,"children":6319},{},[6320,6329,6338],{"type":48,"tag":969,"props":6321,"children":6322},{},[6323],{"type":48,"tag":113,"props":6324,"children":6326},{"className":6325},[],[6327],{"type":62,"value":6328},"beforeBreadcrumb",{"type":48,"tag":969,"props":6330,"children":6331},{},[6332],{"type":48,"tag":113,"props":6333,"children":6335},{"className":6334},[],[6336],{"type":62,"value":6337},"(Breadcrumb, Hint) → Breadcrumb?",{"type":48,"tag":969,"props":6339,"children":6340},{},[6341],{"type":62,"value":6342},"Process breadcrumbs before storage",{"type":48,"tag":947,"props":6344,"children":6345},{},[6346,6355,6364],{"type":48,"tag":969,"props":6347,"children":6348},{},[6349],{"type":48,"tag":113,"props":6350,"children":6352},{"className":6351},[],[6353],{"type":62,"value":6354},"beforeSendLog",{"type":48,"tag":969,"props":6356,"children":6357},{},[6358],{"type":48,"tag":113,"props":6359,"children":6361},{"className":6360},[],[6362],{"type":62,"value":6363},"(SentryLog) → SentryLog?",{"type":48,"tag":969,"props":6365,"children":6366},{},[6367],{"type":62,"value":6368},"Filter structured logs before sending",{"type":48,"tag":1492,"props":6370,"children":6372},{"id":6371},"environment-variables",[6373],{"type":62,"value":6374},"Environment Variables",{"type":48,"tag":53,"props":6376,"children":6377},{},[6378,6380,6385],{"type":62,"value":6379},"Pass via ",{"type":48,"tag":113,"props":6381,"children":6383},{"className":6382},[],[6384],{"type":62,"value":4082},{"type":62,"value":6386}," at build time:",{"type":48,"tag":939,"props":6388,"children":6389},{},[6390,6409],{"type":48,"tag":943,"props":6391,"children":6392},{},[6393],{"type":48,"tag":947,"props":6394,"children":6395},{},[6396,6401,6405],{"type":48,"tag":951,"props":6397,"children":6398},{},[6399],{"type":62,"value":6400},"Variable",{"type":48,"tag":951,"props":6402,"children":6403},{},[6404],{"type":62,"value":1703},{"type":48,"tag":951,"props":6406,"children":6407},{},[6408],{"type":62,"value":1358},{"type":48,"tag":962,"props":6410,"children":6411},{},[6412,6439,6465,6491,6517,6542,6569],{"type":48,"tag":947,"props":6413,"children":6414},{},[6415,6423,6428],{"type":48,"tag":969,"props":6416,"children":6417},{},[6418],{"type":48,"tag":113,"props":6419,"children":6421},{"className":6420},[],[6422],{"type":62,"value":4074},{"type":48,"tag":969,"props":6424,"children":6425},{},[6426],{"type":62,"value":6427},"Data Source Name",{"type":48,"tag":969,"props":6429,"children":6430},{},[6431,6433],{"type":62,"value":6432},"Falls back from ",{"type":48,"tag":113,"props":6434,"children":6436},{"className":6435},[],[6437],{"type":62,"value":6438},"options.dsn",{"type":48,"tag":947,"props":6440,"children":6441},{},[6442,6450,6455],{"type":48,"tag":969,"props":6443,"children":6444},{},[6445],{"type":48,"tag":113,"props":6446,"children":6448},{"className":6447},[],[6449],{"type":62,"value":4132},{"type":48,"tag":969,"props":6451,"children":6452},{},[6453],{"type":62,"value":6454},"Deployment environment",{"type":48,"tag":969,"props":6456,"children":6457},{},[6458,6459],{"type":62,"value":6432},{"type":48,"tag":113,"props":6460,"children":6462},{"className":6461},[],[6463],{"type":62,"value":6464},"options.environment",{"type":48,"tag":947,"props":6466,"children":6467},{},[6468,6476,6481],{"type":48,"tag":969,"props":6469,"children":6470},{},[6471],{"type":48,"tag":113,"props":6472,"children":6474},{"className":6473},[],[6475],{"type":62,"value":4173},{"type":48,"tag":969,"props":6477,"children":6478},{},[6479],{"type":62,"value":6480},"Release identifier",{"type":48,"tag":969,"props":6482,"children":6483},{},[6484,6485],{"type":62,"value":6432},{"type":48,"tag":113,"props":6486,"children":6488},{"className":6487},[],[6489],{"type":62,"value":6490},"options.release",{"type":48,"tag":947,"props":6492,"children":6493},{},[6494,6502,6507],{"type":48,"tag":969,"props":6495,"children":6496},{},[6497],{"type":48,"tag":113,"props":6498,"children":6500},{"className":6499},[],[6501],{"type":62,"value":4208},{"type":48,"tag":969,"props":6503,"children":6504},{},[6505],{"type":62,"value":6506},"Build distribution",{"type":48,"tag":969,"props":6508,"children":6509},{},[6510,6511],{"type":62,"value":6432},{"type":48,"tag":113,"props":6512,"children":6514},{"className":6513},[],[6515],{"type":62,"value":6516},"options.dist",{"type":48,"tag":947,"props":6518,"children":6519},{},[6520,6529,6534],{"type":48,"tag":969,"props":6521,"children":6522},{},[6523],{"type":48,"tag":113,"props":6524,"children":6526},{"className":6525},[],[6527],{"type":62,"value":6528},"SENTRY_AUTH_TOKEN",{"type":48,"tag":969,"props":6530,"children":6531},{},[6532],{"type":62,"value":6533},"Upload debug symbols",{"type":48,"tag":969,"props":6535,"children":6536},{},[6537],{"type":48,"tag":141,"props":6538,"children":6539},{},[6540],{"type":62,"value":6541},"Never embed in app — build tool only",{"type":48,"tag":947,"props":6543,"children":6544},{},[6545,6554,6559],{"type":48,"tag":969,"props":6546,"children":6547},{},[6548],{"type":48,"tag":113,"props":6549,"children":6551},{"className":6550},[],[6552],{"type":62,"value":6553},"SENTRY_ORG",{"type":48,"tag":969,"props":6555,"children":6556},{},[6557],{"type":62,"value":6558},"Organization slug",{"type":48,"tag":969,"props":6560,"children":6561},{},[6562,6564],{"type":62,"value":6563},"Used by ",{"type":48,"tag":113,"props":6565,"children":6567},{"className":6566},[],[6568],{"type":62,"value":1677},{"type":48,"tag":947,"props":6570,"children":6571},{},[6572,6581,6586],{"type":48,"tag":969,"props":6573,"children":6574},{},[6575],{"type":48,"tag":113,"props":6576,"children":6578},{"className":6577},[],[6579],{"type":62,"value":6580},"SENTRY_PROJECT",{"type":48,"tag":969,"props":6582,"children":6583},{},[6584],{"type":62,"value":6585},"Project slug",{"type":48,"tag":969,"props":6587,"children":6588},{},[6589,6590],{"type":62,"value":6563},{"type":48,"tag":113,"props":6591,"children":6593},{"className":6592},[],[6594],{"type":62,"value":1677},{"type":48,"tag":53,"props":6596,"children":6597},{},[6598],{"type":62,"value":6599},"Usage:",{"type":48,"tag":181,"props":6601,"children":6603},{"className":183,"code":6602,"language":185,"meta":186,"style":186},"flutter build apk --release \\\n  --dart-define=SENTRY_DSN=https:\u002F\u002Fxxx@sentry.io\u002F123 \\\n  --dart-define=SENTRY_ENVIRONMENT=production\n",[6604],{"type":48,"tag":113,"props":6605,"children":6606},{"__ignoreMap":186},[6607,6630,6642],{"type":48,"tag":192,"props":6608,"children":6609},{"class":194,"line":195},[6610,6614,6618,6622,6626],{"type":48,"tag":192,"props":6611,"children":6612},{"style":209},[6613],{"type":62,"value":19},{"type":48,"tag":192,"props":6615,"children":6616},{"style":215},[6617],{"type":62,"value":2855},{"type":48,"tag":192,"props":6619,"children":6620},{"style":215},[6621],{"type":62,"value":2860},{"type":48,"tag":192,"props":6623,"children":6624},{"style":215},[6625],{"type":62,"value":3052},{"type":48,"tag":192,"props":6627,"children":6628},{"style":735},[6629],{"type":62,"value":2865},{"type":48,"tag":192,"props":6631,"children":6632},{"class":194,"line":205},[6633,6638],{"type":48,"tag":192,"props":6634,"children":6635},{"style":215},[6636],{"type":62,"value":6637},"  --dart-define=SENTRY_DSN=https:\u002F\u002Fxxx@sentry.io\u002F123",{"type":48,"tag":192,"props":6639,"children":6640},{"style":735},[6641],{"type":62,"value":2865},{"type":48,"tag":192,"props":6643,"children":6644},{"class":194,"line":252},[6645],{"type":48,"tag":192,"props":6646,"children":6647},{"style":215},[6648],{"type":62,"value":6649},"  --dart-define=SENTRY_ENVIRONMENT=production\n",{"type":48,"tag":53,"props":6651,"children":6652},{},[6653],{"type":62,"value":6654},"Then in code:",{"type":48,"tag":181,"props":6656,"children":6658},{"className":2014,"code":6657,"language":25,"meta":186,"style":186},"options.dsn = const String.fromEnvironment('SENTRY_DSN');\noptions.environment = const String.fromEnvironment('SENTRY_ENVIRONMENT', defaultValue: 'development');\n",[6659],{"type":48,"tag":113,"props":6660,"children":6661},{"__ignoreMap":186},[6662,6670],{"type":48,"tag":192,"props":6663,"children":6664},{"class":194,"line":195},[6665],{"type":48,"tag":192,"props":6666,"children":6667},{},[6668],{"type":62,"value":6669},"options.dsn = const String.fromEnvironment('SENTRY_DSN');\n",{"type":48,"tag":192,"props":6671,"children":6672},{"class":194,"line":205},[6673],{"type":48,"tag":192,"props":6674,"children":6675},{},[6676],{"type":62,"value":6677},"options.environment = const String.fromEnvironment('SENTRY_ENVIRONMENT', defaultValue: 'development');\n",{"type":48,"tag":1492,"props":6679,"children":6681},{"id":6680},"production-settings",[6682],{"type":62,"value":6683},"Production Settings",{"type":48,"tag":53,"props":6685,"children":6686},{},[6687],{"type":62,"value":6688},"Lower sample rates and harden config before shipping:",{"type":48,"tag":181,"props":6690,"children":6692},{"className":2014,"code":6691,"language":25,"meta":186,"style":186},"Future\u003Cvoid> main() async {\n  final isProduction = const bool.fromEnvironment('dart.vm.product');\n\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = const String.fromEnvironment('SENTRY_DSN');\n      options.environment = isProduction ? 'production' : 'development';\n\n      \u002F\u002F Trace 10% of transactions in high-traffic production\n      options.tracesSampleRate = isProduction ? 0.1 : 1.0;\n\n      \u002F\u002F Profile 100% of traced transactions (profiling is always a subset)\n      options.profilesSampleRate = 1.0;\n\n      \u002F\u002F Replay all error sessions, sample 5% of normal sessions\n      options.replay.onErrorSampleRate = 1.0;\n      options.replay.sessionSampleRate = isProduction ? 0.05 : 1.0;\n\n      \u002F\u002F Disable debug logging in production\n      options.debug = !isProduction;\n    },\n    appRunner: () => runApp(SentryWidget(child: MyApp())),\n  );\n}\n",[6693],{"type":48,"tag":113,"props":6694,"children":6695},{"__ignoreMap":186},[6696,6703,6711,6718,6725,6732,6740,6748,6755,6763,6771,6778,6786,6793,6800,6808,6815,6823,6830,6838,6846,6853,6860,6867],{"type":48,"tag":192,"props":6697,"children":6698},{"class":194,"line":195},[6699],{"type":48,"tag":192,"props":6700,"children":6701},{},[6702],{"type":62,"value":2050},{"type":48,"tag":192,"props":6704,"children":6705},{"class":194,"line":205},[6706],{"type":48,"tag":192,"props":6707,"children":6708},{},[6709],{"type":62,"value":6710},"  final isProduction = const bool.fromEnvironment('dart.vm.product');\n",{"type":48,"tag":192,"props":6712,"children":6713},{"class":194,"line":252},[6714],{"type":48,"tag":192,"props":6715,"children":6716},{"emptyLinePlaceholder":43},[6717],{"type":62,"value":258},{"type":48,"tag":192,"props":6719,"children":6720},{"class":194,"line":261},[6721],{"type":48,"tag":192,"props":6722,"children":6723},{},[6724],{"type":62,"value":2058},{"type":48,"tag":192,"props":6726,"children":6727},{"class":194,"line":270},[6728],{"type":48,"tag":192,"props":6729,"children":6730},{},[6731],{"type":62,"value":2066},{"type":48,"tag":192,"props":6733,"children":6734},{"class":194,"line":308},[6735],{"type":48,"tag":192,"props":6736,"children":6737},{},[6738],{"type":62,"value":6739},"      options.dsn = const String.fromEnvironment('SENTRY_DSN');\n",{"type":48,"tag":192,"props":6741,"children":6742},{"class":194,"line":316},[6743],{"type":48,"tag":192,"props":6744,"children":6745},{},[6746],{"type":62,"value":6747},"      options.environment = isProduction ? 'production' : 'development';\n",{"type":48,"tag":192,"props":6749,"children":6750},{"class":194,"line":325},[6751],{"type":48,"tag":192,"props":6752,"children":6753},{"emptyLinePlaceholder":43},[6754],{"type":62,"value":258},{"type":48,"tag":192,"props":6756,"children":6757},{"class":194,"line":383},[6758],{"type":48,"tag":192,"props":6759,"children":6760},{},[6761],{"type":62,"value":6762},"      \u002F\u002F Trace 10% of transactions in high-traffic production\n",{"type":48,"tag":192,"props":6764,"children":6765},{"class":194,"line":391},[6766],{"type":48,"tag":192,"props":6767,"children":6768},{},[6769],{"type":62,"value":6770},"      options.tracesSampleRate = isProduction ? 0.1 : 1.0;\n",{"type":48,"tag":192,"props":6772,"children":6773},{"class":194,"line":400},[6774],{"type":48,"tag":192,"props":6775,"children":6776},{"emptyLinePlaceholder":43},[6777],{"type":62,"value":258},{"type":48,"tag":192,"props":6779,"children":6780},{"class":194,"line":431},[6781],{"type":48,"tag":192,"props":6782,"children":6783},{},[6784],{"type":62,"value":6785},"      \u002F\u002F Profile 100% of traced transactions (profiling is always a subset)\n",{"type":48,"tag":192,"props":6787,"children":6788},{"class":194,"line":439},[6789],{"type":48,"tag":192,"props":6790,"children":6791},{},[6792],{"type":62,"value":2128},{"type":48,"tag":192,"props":6794,"children":6795},{"class":194,"line":448},[6796],{"type":48,"tag":192,"props":6797,"children":6798},{"emptyLinePlaceholder":43},[6799],{"type":62,"value":258},{"type":48,"tag":192,"props":6801,"children":6802},{"class":194,"line":477},[6803],{"type":48,"tag":192,"props":6804,"children":6805},{},[6806],{"type":62,"value":6807},"      \u002F\u002F Replay all error sessions, sample 5% of normal sessions\n",{"type":48,"tag":192,"props":6809,"children":6810},{"class":194,"line":485},[6811],{"type":48,"tag":192,"props":6812,"children":6813},{},[6814],{"type":62,"value":2159},{"type":48,"tag":192,"props":6816,"children":6817},{"class":194,"line":494},[6818],{"type":48,"tag":192,"props":6819,"children":6820},{},[6821],{"type":62,"value":6822},"      options.replay.sessionSampleRate = isProduction ? 0.05 : 1.0;\n",{"type":48,"tag":192,"props":6824,"children":6825},{"class":194,"line":523},[6826],{"type":48,"tag":192,"props":6827,"children":6828},{"emptyLinePlaceholder":43},[6829],{"type":62,"value":258},{"type":48,"tag":192,"props":6831,"children":6832},{"class":194,"line":531},[6833],{"type":48,"tag":192,"props":6834,"children":6835},{},[6836],{"type":62,"value":6837},"      \u002F\u002F Disable debug logging in production\n",{"type":48,"tag":192,"props":6839,"children":6840},{"class":194,"line":540},[6841],{"type":48,"tag":192,"props":6842,"children":6843},{},[6844],{"type":62,"value":6845},"      options.debug = !isProduction;\n",{"type":48,"tag":192,"props":6847,"children":6848},{"class":194,"line":569},[6849],{"type":48,"tag":192,"props":6850,"children":6851},{},[6852],{"type":62,"value":2221},{"type":48,"tag":192,"props":6854,"children":6855},{"class":194,"line":577},[6856],{"type":48,"tag":192,"props":6857,"children":6858},{},[6859],{"type":62,"value":2237},{"type":48,"tag":192,"props":6861,"children":6862},{"class":194,"line":586},[6863],{"type":48,"tag":192,"props":6864,"children":6865},{},[6866],{"type":62,"value":2245},{"type":48,"tag":192,"props":6868,"children":6869},{"class":194,"line":615},[6870],{"type":48,"tag":192,"props":6871,"children":6872},{},[6873],{"type":62,"value":2253},{"type":48,"tag":1492,"props":6875,"children":6877},{"id":6876},"default-auto-enabled-integrations",[6878],{"type":62,"value":6879},"Default Auto-Enabled Integrations",{"type":48,"tag":53,"props":6881,"children":6882},{},[6883,6885,6890],{"type":62,"value":6884},"These are active with no extra config when you call ",{"type":48,"tag":113,"props":6886,"children":6888},{"className":6887},[],[6889],{"type":62,"value":1773},{"type":62,"value":1949},{"type":48,"tag":939,"props":6892,"children":6893},{},[6894,6910],{"type":48,"tag":943,"props":6895,"children":6896},{},[6897],{"type":48,"tag":947,"props":6898,"children":6899},{},[6900,6905],{"type":48,"tag":951,"props":6901,"children":6902},{},[6903],{"type":62,"value":6904},"Integration",{"type":48,"tag":951,"props":6906,"children":6907},{},[6908],{"type":62,"value":6909},"What it does",{"type":48,"tag":962,"props":6911,"children":6912},{},[6913,6938,6955,6972,6989,7006,7030,7047,7064,7081,7106,7123],{"type":48,"tag":947,"props":6914,"children":6915},{},[6916,6925],{"type":48,"tag":969,"props":6917,"children":6918},{},[6919],{"type":48,"tag":113,"props":6920,"children":6922},{"className":6921},[],[6923],{"type":62,"value":6924},"FlutterErrorIntegration",{"type":48,"tag":969,"props":6926,"children":6927},{},[6928,6930,6936],{"type":62,"value":6929},"Captures ",{"type":48,"tag":113,"props":6931,"children":6933},{"className":6932},[],[6934],{"type":62,"value":6935},"FlutterError.onError",{"type":62,"value":6937}," framework errors",{"type":48,"tag":947,"props":6939,"children":6940},{},[6941,6950],{"type":48,"tag":969,"props":6942,"children":6943},{},[6944],{"type":48,"tag":113,"props":6945,"children":6947},{"className":6946},[],[6948],{"type":62,"value":6949},"RunZonedGuardedIntegration",{"type":48,"tag":969,"props":6951,"children":6952},{},[6953],{"type":62,"value":6954},"Catches unhandled Dart exceptions in runZonedGuarded",{"type":48,"tag":947,"props":6956,"children":6957},{},[6958,6967],{"type":48,"tag":969,"props":6959,"children":6960},{},[6961],{"type":48,"tag":113,"props":6962,"children":6964},{"className":6963},[],[6965],{"type":62,"value":6966},"NativeAppStartIntegration",{"type":48,"tag":969,"props":6968,"children":6969},{},[6970],{"type":62,"value":6971},"App start timing (iOS\u002FAndroid)",{"type":48,"tag":947,"props":6973,"children":6974},{},[6975,6984],{"type":48,"tag":969,"props":6976,"children":6977},{},[6978],{"type":48,"tag":113,"props":6979,"children":6981},{"className":6980},[],[6982],{"type":62,"value":6983},"FramesTrackingIntegration",{"type":48,"tag":969,"props":6985,"children":6986},{},[6987],{"type":62,"value":6988},"Slow\u002Ffrozen frames (iOS\u002FAndroid\u002FmacOS)",{"type":48,"tag":947,"props":6990,"children":6991},{},[6992,7001],{"type":48,"tag":969,"props":6993,"children":6994},{},[6995],{"type":48,"tag":113,"props":6996,"children":6998},{"className":6997},[],[6999],{"type":62,"value":7000},"NativeUserInteractionIntegration",{"type":48,"tag":969,"props":7002,"children":7003},{},[7004],{"type":62,"value":7005},"User interaction breadcrumbs from native layer",{"type":48,"tag":947,"props":7007,"children":7008},{},[7009,7018],{"type":48,"tag":969,"props":7010,"children":7011},{},[7012],{"type":48,"tag":113,"props":7013,"children":7015},{"className":7014},[],[7016],{"type":62,"value":7017},"UserInteractionIntegration",{"type":48,"tag":969,"props":7019,"children":7020},{},[7021,7023,7029],{"type":62,"value":7022},"Dart-layer tap\u002Fclick transactions (requires ",{"type":48,"tag":113,"props":7024,"children":7026},{"className":7025},[],[7027],{"type":62,"value":7028},"SentryWidget",{"type":62,"value":5763},{"type":48,"tag":947,"props":7031,"children":7032},{},[7033,7042],{"type":48,"tag":969,"props":7034,"children":7035},{},[7036],{"type":48,"tag":113,"props":7037,"children":7039},{"className":7038},[],[7040],{"type":62,"value":7041},"DeviceContextIntegration",{"type":48,"tag":969,"props":7043,"children":7044},{},[7045],{"type":62,"value":7046},"Device model, OS version, screen resolution",{"type":48,"tag":947,"props":7048,"children":7049},{},[7050,7059],{"type":48,"tag":969,"props":7051,"children":7052},{},[7053],{"type":48,"tag":113,"props":7054,"children":7056},{"className":7055},[],[7057],{"type":62,"value":7058},"AppContextIntegration",{"type":48,"tag":969,"props":7060,"children":7061},{},[7062],{"type":62,"value":7063},"App version, build number, bundle ID",{"type":48,"tag":947,"props":7065,"children":7066},{},[7067,7076],{"type":48,"tag":969,"props":7068,"children":7069},{},[7070],{"type":48,"tag":113,"props":7071,"children":7073},{"className":7072},[],[7074],{"type":62,"value":7075},"ConnectivityIntegration",{"type":48,"tag":969,"props":7077,"children":7078},{},[7079],{"type":62,"value":7080},"Network connectivity change breadcrumbs",{"type":48,"tag":947,"props":7082,"children":7083},{},[7084,7093],{"type":48,"tag":969,"props":7085,"children":7086},{},[7087],{"type":48,"tag":113,"props":7088,"children":7090},{"className":7089},[],[7091],{"type":62,"value":7092},"HttpClientIntegration",{"type":48,"tag":969,"props":7094,"children":7095},{},[7096,7098,7104],{"type":62,"value":7097},"Auto-instrument Dart ",{"type":48,"tag":113,"props":7099,"children":7101},{"className":7100},[],[7102],{"type":62,"value":7103},"http",{"type":62,"value":7105}," requests",{"type":48,"tag":947,"props":7107,"children":7108},{},[7109,7118],{"type":48,"tag":969,"props":7110,"children":7111},{},[7112],{"type":48,"tag":113,"props":7113,"children":7115},{"className":7114},[],[7116],{"type":62,"value":7117},"SdkIntegration",{"type":48,"tag":969,"props":7119,"children":7120},{},[7121],{"type":62,"value":7122},"SDK metadata tagging",{"type":48,"tag":947,"props":7124,"children":7125},{},[7126,7135],{"type":48,"tag":969,"props":7127,"children":7128},{},[7129],{"type":48,"tag":113,"props":7130,"children":7132},{"className":7131},[],[7133],{"type":62,"value":7134},"ReleaseIntegration",{"type":48,"tag":969,"props":7136,"children":7137},{},[7138],{"type":62,"value":7139},"Auto-set release on iOS\u002FAndroid from package info",{"type":48,"tag":166,"props":7141,"children":7142},{},[],{"type":48,"tag":86,"props":7144,"children":7146},{"id":7145},"verification",[7147],{"type":62,"value":1836},{"type":48,"tag":53,"props":7149,"children":7150},{},[7151],{"type":62,"value":7152},"After setup, test that Sentry is receiving events:",{"type":48,"tag":181,"props":7154,"children":7156},{"className":2014,"code":7155,"language":25,"meta":186,"style":186},"\u002F\u002F Add a test button somewhere visible during development:\nElevatedButton(\n  onPressed: () {\n    throw Exception('Sentry test error!');\n  },\n  child: const Text('Test Sentry Error'),\n)\n\n\u002F\u002F Or capture manually:\nElevatedButton(\n  onPressed: () {\n    Sentry.captureMessage('Sentry test message', level: SentryLevel.info);\n  },\n  child: const Text('Test Sentry Message'),\n)\n\n\u002F\u002F Test structured logging:\nElevatedButton(\n  onPressed: () {\n    Sentry.logger.info('Test log from Flutter app');\n  },\n  child: const Text('Test Sentry Log'),\n)\n",[7157],{"type":48,"tag":113,"props":7158,"children":7159},{"__ignoreMap":186},[7160,7168,7176,7184,7192,7200,7208,7216,7223,7231,7238,7245,7253,7260,7268,7275,7282,7290,7297,7304,7312,7319,7327],{"type":48,"tag":192,"props":7161,"children":7162},{"class":194,"line":195},[7163],{"type":48,"tag":192,"props":7164,"children":7165},{},[7166],{"type":62,"value":7167},"\u002F\u002F Add a test button somewhere visible during development:\n",{"type":48,"tag":192,"props":7169,"children":7170},{"class":194,"line":205},[7171],{"type":48,"tag":192,"props":7172,"children":7173},{},[7174],{"type":62,"value":7175},"ElevatedButton(\n",{"type":48,"tag":192,"props":7177,"children":7178},{"class":194,"line":252},[7179],{"type":48,"tag":192,"props":7180,"children":7181},{},[7182],{"type":62,"value":7183},"  onPressed: () {\n",{"type":48,"tag":192,"props":7185,"children":7186},{"class":194,"line":261},[7187],{"type":48,"tag":192,"props":7188,"children":7189},{},[7190],{"type":62,"value":7191},"    throw Exception('Sentry test error!');\n",{"type":48,"tag":192,"props":7193,"children":7194},{"class":194,"line":270},[7195],{"type":48,"tag":192,"props":7196,"children":7197},{},[7198],{"type":62,"value":7199},"  },\n",{"type":48,"tag":192,"props":7201,"children":7202},{"class":194,"line":308},[7203],{"type":48,"tag":192,"props":7204,"children":7205},{},[7206],{"type":62,"value":7207},"  child: const Text('Test Sentry Error'),\n",{"type":48,"tag":192,"props":7209,"children":7210},{"class":194,"line":316},[7211],{"type":48,"tag":192,"props":7212,"children":7213},{},[7214],{"type":62,"value":7215},")\n",{"type":48,"tag":192,"props":7217,"children":7218},{"class":194,"line":325},[7219],{"type":48,"tag":192,"props":7220,"children":7221},{"emptyLinePlaceholder":43},[7222],{"type":62,"value":258},{"type":48,"tag":192,"props":7224,"children":7225},{"class":194,"line":383},[7226],{"type":48,"tag":192,"props":7227,"children":7228},{},[7229],{"type":62,"value":7230},"\u002F\u002F Or capture manually:\n",{"type":48,"tag":192,"props":7232,"children":7233},{"class":194,"line":391},[7234],{"type":48,"tag":192,"props":7235,"children":7236},{},[7237],{"type":62,"value":7175},{"type":48,"tag":192,"props":7239,"children":7240},{"class":194,"line":400},[7241],{"type":48,"tag":192,"props":7242,"children":7243},{},[7244],{"type":62,"value":7183},{"type":48,"tag":192,"props":7246,"children":7247},{"class":194,"line":431},[7248],{"type":48,"tag":192,"props":7249,"children":7250},{},[7251],{"type":62,"value":7252},"    Sentry.captureMessage('Sentry test message', level: SentryLevel.info);\n",{"type":48,"tag":192,"props":7254,"children":7255},{"class":194,"line":439},[7256],{"type":48,"tag":192,"props":7257,"children":7258},{},[7259],{"type":62,"value":7199},{"type":48,"tag":192,"props":7261,"children":7262},{"class":194,"line":448},[7263],{"type":48,"tag":192,"props":7264,"children":7265},{},[7266],{"type":62,"value":7267},"  child: const Text('Test Sentry Message'),\n",{"type":48,"tag":192,"props":7269,"children":7270},{"class":194,"line":477},[7271],{"type":48,"tag":192,"props":7272,"children":7273},{},[7274],{"type":62,"value":7215},{"type":48,"tag":192,"props":7276,"children":7277},{"class":194,"line":485},[7278],{"type":48,"tag":192,"props":7279,"children":7280},{"emptyLinePlaceholder":43},[7281],{"type":62,"value":258},{"type":48,"tag":192,"props":7283,"children":7284},{"class":194,"line":494},[7285],{"type":48,"tag":192,"props":7286,"children":7287},{},[7288],{"type":62,"value":7289},"\u002F\u002F Test structured logging:\n",{"type":48,"tag":192,"props":7291,"children":7292},{"class":194,"line":523},[7293],{"type":48,"tag":192,"props":7294,"children":7295},{},[7296],{"type":62,"value":7175},{"type":48,"tag":192,"props":7298,"children":7299},{"class":194,"line":531},[7300],{"type":48,"tag":192,"props":7301,"children":7302},{},[7303],{"type":62,"value":7183},{"type":48,"tag":192,"props":7305,"children":7306},{"class":194,"line":540},[7307],{"type":48,"tag":192,"props":7308,"children":7309},{},[7310],{"type":62,"value":7311},"    Sentry.logger.info('Test log from Flutter app');\n",{"type":48,"tag":192,"props":7313,"children":7314},{"class":194,"line":569},[7315],{"type":48,"tag":192,"props":7316,"children":7317},{},[7318],{"type":62,"value":7199},{"type":48,"tag":192,"props":7320,"children":7321},{"class":194,"line":577},[7322],{"type":48,"tag":192,"props":7323,"children":7324},{},[7325],{"type":62,"value":7326},"  child: const Text('Test Sentry Log'),\n",{"type":48,"tag":192,"props":7328,"children":7329},{"class":194,"line":586},[7330],{"type":48,"tag":192,"props":7331,"children":7332},{},[7333],{"type":62,"value":7215},{"type":48,"tag":53,"props":7335,"children":7336},{},[7337],{"type":48,"tag":141,"props":7338,"children":7339},{},[7340],{"type":62,"value":7341},"Check the Sentry dashboard:",{"type":48,"tag":93,"props":7343,"children":7344},{},[7345,7355,7365,7375],{"type":48,"tag":97,"props":7346,"children":7347},{},[7348,7353],{"type":48,"tag":141,"props":7349,"children":7350},{},[7351],{"type":62,"value":7352},"Issues",{"type":62,"value":7354}," → test error should appear within seconds",{"type":48,"tag":97,"props":7356,"children":7357},{},[7358,7363],{"type":48,"tag":141,"props":7359,"children":7360},{},[7361],{"type":62,"value":7362},"Traces",{"type":62,"value":7364}," → look for a navigation transaction with child spans",{"type":48,"tag":97,"props":7366,"children":7367},{},[7368,7373],{"type":48,"tag":141,"props":7369,"children":7370},{},[7371],{"type":62,"value":7372},"Replays",{"type":62,"value":7374}," → session recording visible after app interaction (iOS\u002FAndroid only)",{"type":48,"tag":97,"props":7376,"children":7377},{},[7378,7383,7385],{"type":48,"tag":141,"props":7379,"children":7380},{},[7381],{"type":62,"value":7382},"Logs",{"type":62,"value":7384}," → structured log entries if ",{"type":48,"tag":113,"props":7386,"children":7388},{"className":7387},[],[7389],{"type":62,"value":7390},"enableLogs: true",{"type":48,"tag":49,"props":7392,"children":7393},{},[7394,7404],{"type":48,"tag":53,"props":7395,"children":7396},{},[7397,7399],{"type":62,"value":7398},"⚠️ ",{"type":48,"tag":141,"props":7400,"children":7401},{},[7402],{"type":62,"value":7403},"Platform limitations in debug mode:",{"type":48,"tag":93,"props":7405,"children":7406},{},[7407,7412,7425],{"type":48,"tag":97,"props":7408,"children":7409},{},[7410],{"type":62,"value":7411},"Native crashes, session replay, slow\u002Ffrozen frames, and app start metrics only fully work in release builds on iOS\u002FAndroid",{"type":48,"tag":97,"props":7413,"children":7414},{},[7415,7417,7423],{"type":62,"value":7416},"Run ",{"type":48,"tag":113,"props":7418,"children":7420},{"className":7419},[],[7421],{"type":62,"value":7422},"flutter run --release",{"type":62,"value":7424}," or use a real device\u002Femulator to test native features",{"type":48,"tag":97,"props":7426,"children":7427},{},[7428],{"type":62,"value":7429},"Debug mode uses the Dart VM with JIT compilation — some native integrations behave differently",{"type":48,"tag":166,"props":7431,"children":7432},{},[],{"type":48,"tag":86,"props":7434,"children":7436},{"id":7435},"phase-4-cross-link",[7437],{"type":62,"value":7438},"Phase 4: Cross-Link",{"type":48,"tag":53,"props":7440,"children":7441},{},[7442],{"type":62,"value":7443},"After completing Flutter setup, check for a backend missing Sentry coverage:",{"type":48,"tag":181,"props":7445,"children":7447},{"className":183,"code":7446,"language":185,"meta":186,"style":186},"# Adjacent backend directories\nls ..\u002Fbackend ..\u002Fserver ..\u002Fapi 2>\u002Fdev\u002Fnull\ncat ..\u002Fgo.mod 2>\u002Fdev\u002Fnull | head -3\ncat ..\u002Frequirements.txt ..\u002Fpyproject.toml 2>\u002Fdev\u002Fnull | head -3\ncat ..\u002FGemfile 2>\u002Fdev\u002Fnull | head -3\nls ..\u002Fbackend\u002Fpackage.json ..\u002Fserver\u002Fpackage.json 2>\u002Fdev\u002Fnull\n",[7448],{"type":48,"tag":113,"props":7449,"children":7450},{"__ignoreMap":186},[7451,7459,7489,7522,7559,7591],{"type":48,"tag":192,"props":7452,"children":7453},{"class":194,"line":195},[7454],{"type":48,"tag":192,"props":7455,"children":7456},{"style":199},[7457],{"type":62,"value":7458},"# Adjacent backend directories\n",{"type":48,"tag":192,"props":7460,"children":7461},{"class":194,"line":205},[7462,7466,7471,7476,7481,7485],{"type":48,"tag":192,"props":7463,"children":7464},{"style":209},[7465],{"type":62,"value":684},{"type":48,"tag":192,"props":7467,"children":7468},{"style":215},[7469],{"type":62,"value":7470}," ..\u002Fbackend",{"type":48,"tag":192,"props":7472,"children":7473},{"style":215},[7474],{"type":62,"value":7475}," ..\u002Fserver",{"type":48,"tag":192,"props":7477,"children":7478},{"style":215},[7479],{"type":62,"value":7480}," ..\u002Fapi",{"type":48,"tag":192,"props":7482,"children":7483},{"style":221},[7484],{"type":62,"value":361},{"type":48,"tag":192,"props":7486,"children":7487},{"style":215},[7488],{"type":62,"value":708},{"type":48,"tag":192,"props":7490,"children":7491},{"class":194,"line":252},[7492,7496,7501,7505,7509,7513,7517],{"type":48,"tag":192,"props":7493,"children":7494},{"style":209},[7495],{"type":62,"value":212},{"type":48,"tag":192,"props":7497,"children":7498},{"style":215},[7499],{"type":62,"value":7500}," ..\u002Fgo.mod",{"type":48,"tag":192,"props":7502,"children":7503},{"style":221},[7504],{"type":62,"value":361},{"type":48,"tag":192,"props":7506,"children":7507},{"style":215},[7508],{"type":62,"value":366},{"type":48,"tag":192,"props":7510,"children":7511},{"style":221},[7512],{"type":62,"value":224},{"type":48,"tag":192,"props":7514,"children":7515},{"style":209},[7516],{"type":62,"value":375},{"type":48,"tag":192,"props":7518,"children":7519},{"style":215},[7520],{"type":62,"value":7521}," -3\n",{"type":48,"tag":192,"props":7523,"children":7524},{"class":194,"line":261},[7525,7529,7534,7539,7543,7547,7551,7555],{"type":48,"tag":192,"props":7526,"children":7527},{"style":209},[7528],{"type":62,"value":212},{"type":48,"tag":192,"props":7530,"children":7531},{"style":215},[7532],{"type":62,"value":7533}," ..\u002Frequirements.txt",{"type":48,"tag":192,"props":7535,"children":7536},{"style":215},[7537],{"type":62,"value":7538}," ..\u002Fpyproject.toml",{"type":48,"tag":192,"props":7540,"children":7541},{"style":221},[7542],{"type":62,"value":361},{"type":48,"tag":192,"props":7544,"children":7545},{"style":215},[7546],{"type":62,"value":366},{"type":48,"tag":192,"props":7548,"children":7549},{"style":221},[7550],{"type":62,"value":224},{"type":48,"tag":192,"props":7552,"children":7553},{"style":209},[7554],{"type":62,"value":375},{"type":48,"tag":192,"props":7556,"children":7557},{"style":215},[7558],{"type":62,"value":7521},{"type":48,"tag":192,"props":7560,"children":7561},{"class":194,"line":270},[7562,7566,7571,7575,7579,7583,7587],{"type":48,"tag":192,"props":7563,"children":7564},{"style":209},[7565],{"type":62,"value":212},{"type":48,"tag":192,"props":7567,"children":7568},{"style":215},[7569],{"type":62,"value":7570}," ..\u002FGemfile",{"type":48,"tag":192,"props":7572,"children":7573},{"style":221},[7574],{"type":62,"value":361},{"type":48,"tag":192,"props":7576,"children":7577},{"style":215},[7578],{"type":62,"value":366},{"type":48,"tag":192,"props":7580,"children":7581},{"style":221},[7582],{"type":62,"value":224},{"type":48,"tag":192,"props":7584,"children":7585},{"style":209},[7586],{"type":62,"value":375},{"type":48,"tag":192,"props":7588,"children":7589},{"style":215},[7590],{"type":62,"value":7521},{"type":48,"tag":192,"props":7592,"children":7593},{"class":194,"line":308},[7594,7598,7603,7608,7612],{"type":48,"tag":192,"props":7595,"children":7596},{"style":209},[7597],{"type":62,"value":684},{"type":48,"tag":192,"props":7599,"children":7600},{"style":215},[7601],{"type":62,"value":7602}," ..\u002Fbackend\u002Fpackage.json",{"type":48,"tag":192,"props":7604,"children":7605},{"style":215},[7606],{"type":62,"value":7607}," ..\u002Fserver\u002Fpackage.json",{"type":48,"tag":192,"props":7609,"children":7610},{"style":221},[7611],{"type":62,"value":361},{"type":48,"tag":192,"props":7613,"children":7614},{"style":215},[7615],{"type":62,"value":708},{"type":48,"tag":53,"props":7617,"children":7618},{},[7619],{"type":62,"value":7620},"If a backend exists without Sentry, suggest the matching skill:",{"type":48,"tag":939,"props":7622,"children":7623},{},[7624,7640],{"type":48,"tag":943,"props":7625,"children":7626},{},[7627],{"type":48,"tag":947,"props":7628,"children":7629},{},[7630,7635],{"type":48,"tag":951,"props":7631,"children":7632},{},[7633],{"type":62,"value":7634},"Detected",{"type":48,"tag":951,"props":7636,"children":7637},{},[7638],{"type":62,"value":7639},"Suggest skill",{"type":48,"tag":962,"props":7641,"children":7642},{},[7643,7666,7696,7719,7736,7759],{"type":48,"tag":947,"props":7644,"children":7645},{},[7646,7657],{"type":48,"tag":969,"props":7647,"children":7648},{},[7649,7651,7656],{"type":62,"value":7650},"Go backend (",{"type":48,"tag":113,"props":7652,"children":7654},{"className":7653},[],[7655],{"type":62,"value":752},{"type":62,"value":5763},{"type":48,"tag":969,"props":7658,"children":7659},{},[7660],{"type":48,"tag":113,"props":7661,"children":7663},{"className":7662},[],[7664],{"type":62,"value":7665},"sentry-go-sdk",{"type":48,"tag":947,"props":7667,"children":7668},{},[7669,7687],{"type":48,"tag":969,"props":7670,"children":7671},{},[7672,7674,7679,7680,7686],{"type":62,"value":7673},"Python backend (",{"type":48,"tag":113,"props":7675,"children":7677},{"className":7676},[],[7678],{"type":62,"value":775},{"type":62,"value":120},{"type":48,"tag":113,"props":7681,"children":7683},{"className":7682},[],[7684],{"type":62,"value":7685},"pyproject.toml",{"type":62,"value":5763},{"type":48,"tag":969,"props":7688,"children":7689},{},[7690],{"type":48,"tag":113,"props":7691,"children":7693},{"className":7692},[],[7694],{"type":62,"value":7695},"sentry-python-sdk",{"type":48,"tag":947,"props":7697,"children":7698},{},[7699,7710],{"type":48,"tag":969,"props":7700,"children":7701},{},[7702,7704,7709],{"type":62,"value":7703},"Ruby backend (",{"type":48,"tag":113,"props":7705,"children":7707},{"className":7706},[],[7708],{"type":62,"value":796},{"type":62,"value":5763},{"type":48,"tag":969,"props":7711,"children":7712},{},[7713],{"type":48,"tag":113,"props":7714,"children":7716},{"className":7715},[],[7717],{"type":62,"value":7718},"sentry-ruby-sdk",{"type":48,"tag":947,"props":7720,"children":7721},{},[7722,7727],{"type":48,"tag":969,"props":7723,"children":7724},{},[7725],{"type":62,"value":7726},"Node.js backend",{"type":48,"tag":969,"props":7728,"children":7729},{},[7730],{"type":48,"tag":113,"props":7731,"children":7733},{"className":7732},[],[7734],{"type":62,"value":7735},"sentry-node-sdk",{"type":48,"tag":947,"props":7737,"children":7738},{},[7739,7750],{"type":48,"tag":969,"props":7740,"children":7741},{},[7742,7744,7749],{"type":62,"value":7743},".NET backend (",{"type":48,"tag":113,"props":7745,"children":7747},{"className":7746},[],[7748],{"type":62,"value":817},{"type":62,"value":5763},{"type":48,"tag":969,"props":7751,"children":7752},{},[7753],{"type":48,"tag":113,"props":7754,"children":7756},{"className":7755},[],[7757],{"type":62,"value":7758},"sentry-dotnet-sdk",{"type":48,"tag":947,"props":7760,"children":7761},{},[7762,7767],{"type":48,"tag":969,"props":7763,"children":7764},{},[7765],{"type":62,"value":7766},"React \u002F Next.js web",{"type":48,"tag":969,"props":7768,"children":7769},{},[7770,7776,7778],{"type":48,"tag":113,"props":7771,"children":7773},{"className":7772},[],[7774],{"type":62,"value":7775},"sentry-react-sdk",{"type":62,"value":7777}," \u002F ",{"type":48,"tag":113,"props":7779,"children":7781},{"className":7780},[],[7782],{"type":62,"value":7783},"sentry-nextjs-sdk",{"type":48,"tag":53,"props":7785,"children":7786},{},[7787,7792,7794,7799],{"type":48,"tag":141,"props":7788,"children":7789},{},[7790],{"type":62,"value":7791},"Distributed tracing",{"type":62,"value":7793}," — if a backend skill is added, configure ",{"type":48,"tag":113,"props":7795,"children":7797},{"className":7796},[],[7798],{"type":62,"value":4905},{"type":62,"value":7800}," in Flutter to propagate trace context to your API:",{"type":48,"tag":181,"props":7802,"children":7804},{"className":2014,"code":7803,"language":25,"meta":186,"style":186},"options.tracePropagationTargets = ['api.myapp.com', 'localhost'];\noptions.propagateTraceparent = true; \u002F\u002F also send W3C traceparent header\n",[7805],{"type":48,"tag":113,"props":7806,"children":7807},{"__ignoreMap":186},[7808,7816],{"type":48,"tag":192,"props":7809,"children":7810},{"class":194,"line":195},[7811],{"type":48,"tag":192,"props":7812,"children":7813},{},[7814],{"type":62,"value":7815},"options.tracePropagationTargets = ['api.myapp.com', 'localhost'];\n",{"type":48,"tag":192,"props":7817,"children":7818},{"class":194,"line":205},[7819],{"type":48,"tag":192,"props":7820,"children":7821},{},[7822],{"type":62,"value":7823},"options.propagateTraceparent = true; \u002F\u002F also send W3C traceparent header\n",{"type":48,"tag":53,"props":7825,"children":7826},{},[7827],{"type":62,"value":7828},"This links mobile transactions to backend traces in the Sentry waterfall view.",{"type":48,"tag":166,"props":7830,"children":7831},{},[],{"type":48,"tag":86,"props":7833,"children":7835},{"id":7834},"troubleshooting",[7836],{"type":62,"value":7837},"Troubleshooting",{"type":48,"tag":939,"props":7839,"children":7840},{},[7841,7857],{"type":48,"tag":943,"props":7842,"children":7843},{},[7844],{"type":48,"tag":947,"props":7845,"children":7846},{},[7847,7852],{"type":48,"tag":951,"props":7848,"children":7849},{},[7850],{"type":62,"value":7851},"Issue",{"type":48,"tag":951,"props":7853,"children":7854},{},[7855],{"type":62,"value":7856},"Solution",{"type":48,"tag":962,"props":7858,"children":7859},{},[7860,7881,7921,7947,7976,7997,8022,8042,8063,8090,8123,8150,8179,8199,8239,8269,8282,8302,8336,8361,8374,8412,8431],{"type":48,"tag":947,"props":7861,"children":7862},{},[7863,7868],{"type":48,"tag":969,"props":7864,"children":7865},{},[7866],{"type":62,"value":7867},"Events not appearing in Sentry",{"type":48,"tag":969,"props":7869,"children":7870},{},[7871,7873,7879],{"type":62,"value":7872},"Set ",{"type":48,"tag":113,"props":7874,"children":7876},{"className":7875},[],[7877],{"type":62,"value":7878},"options.debug = true",{"type":62,"value":7880}," — SDK logs to Flutter console; verify DSN is correct",{"type":48,"tag":947,"props":7882,"children":7883},{},[7884,7895],{"type":48,"tag":969,"props":7885,"children":7886},{},[7887,7893],{"type":48,"tag":113,"props":7888,"children":7890},{"className":7889},[],[7891],{"type":62,"value":7892},"SentryFlutter.init",{"type":62,"value":7894}," throws",{"type":48,"tag":969,"props":7896,"children":7897},{},[7898,7900,7905,7907,7913,7915],{"type":62,"value":7899},"Ensure ",{"type":48,"tag":113,"props":7901,"children":7903},{"className":7902},[],[7904],{"type":62,"value":1765},{"type":62,"value":7906}," is ",{"type":48,"tag":113,"props":7908,"children":7910},{"className":7909},[],[7911],{"type":62,"value":7912},"async",{"type":62,"value":7914}," and you ",{"type":48,"tag":113,"props":7916,"children":7918},{"className":7917},[],[7919],{"type":62,"value":7920},"await SentryFlutter.init(...)",{"type":48,"tag":947,"props":7922,"children":7923},{},[7924,7929],{"type":48,"tag":969,"props":7925,"children":7926},{},[7927],{"type":62,"value":7928},"Stack traces unreadable in Sentry",{"type":48,"tag":969,"props":7930,"children":7931},{},[7932,7934,7939,7941],{"type":62,"value":7933},"Upload debug symbols with ",{"type":48,"tag":113,"props":7935,"children":7937},{"className":7936},[],[7938],{"type":62,"value":1677},{"type":62,"value":7940},"; build with ",{"type":48,"tag":113,"props":7942,"children":7944},{"className":7943},[],[7945],{"type":62,"value":7946},"--obfuscate --split-debug-info",{"type":48,"tag":947,"props":7948,"children":7949},{},[7950,7955],{"type":48,"tag":969,"props":7951,"children":7952},{},[7953],{"type":62,"value":7954},"Stack traces missing on Web",{"type":48,"tag":969,"props":7956,"children":7957},{},[7958,7960,7966,7968,7974],{"type":62,"value":7959},"Build with ",{"type":48,"tag":113,"props":7961,"children":7963},{"className":7962},[],[7964],{"type":62,"value":7965},"--source-maps",{"type":62,"value":7967}," and run ",{"type":48,"tag":113,"props":7969,"children":7971},{"className":7970},[],[7972],{"type":62,"value":7973},"dart run sentry_dart_plugin",{"type":62,"value":7975}," to upload",{"type":48,"tag":947,"props":7977,"children":7978},{},[7979,7984],{"type":48,"tag":969,"props":7980,"children":7981},{},[7982],{"type":62,"value":7983},"Native crashes not captured",{"type":48,"tag":969,"props":7985,"children":7986},{},[7987,7989,7995],{"type":62,"value":7988},"Confirm ",{"type":48,"tag":113,"props":7990,"children":7992},{"className":7991},[],[7993],{"type":62,"value":7994},"enableNativeCrashHandling: true",{"type":62,"value":7996},"; test in release mode, not debug",{"type":48,"tag":947,"props":7998,"children":7999},{},[8000,8005],{"type":48,"tag":969,"props":8001,"children":8002},{},[8003],{"type":62,"value":8004},"Session replay not recording",{"type":48,"tag":969,"props":8006,"children":8007},{},[8008,8010,8015,8017],{"type":62,"value":8009},"iOS\u002FAndroid only; confirm ",{"type":48,"tag":113,"props":8011,"children":8013},{"className":8012},[],[8014],{"type":62,"value":7028},{"type":62,"value":8016}," wraps root; check ",{"type":48,"tag":113,"props":8018,"children":8020},{"className":8019},[],[8021],{"type":62,"value":5837},{"type":48,"tag":947,"props":8023,"children":8024},{},[8025,8030],{"type":48,"tag":969,"props":8026,"children":8027},{},[8028],{"type":62,"value":8029},"Replay shows blank screens",{"type":48,"tag":969,"props":8031,"children":8032},{},[8033,8034,8040],{"type":62,"value":7988},{"type":48,"tag":113,"props":8035,"children":8037},{"className":8036},[],[8038],{"type":62,"value":8039},"SentryWidget(child: MyApp())",{"type":62,"value":8041}," is outermost widget; not inside navigator",{"type":48,"tag":947,"props":8043,"children":8044},{},[8045,8050],{"type":48,"tag":969,"props":8046,"children":8047},{},[8048],{"type":62,"value":8049},"Profiling not working",{"type":48,"tag":969,"props":8051,"children":8052},{},[8053,8055,8061],{"type":62,"value":8054},"iOS and macOS only (alpha); confirm ",{"type":48,"tag":113,"props":8056,"children":8058},{"className":8057},[],[8059],{"type":62,"value":8060},"tracesSampleRate > 0",{"type":62,"value":8062}," is set first",{"type":48,"tag":947,"props":8064,"children":8065},{},[8066,8071],{"type":48,"tag":969,"props":8067,"children":8068},{},[8069],{"type":62,"value":8070},"Navigation not tracked",{"type":48,"tag":969,"props":8072,"children":8073},{},[8074,8075,8081,8082,8088],{"type":62,"value":2266},{"type":48,"tag":113,"props":8076,"children":8078},{"className":8077},[],[8079],{"type":62,"value":8080},"SentryNavigatorObserver()",{"type":62,"value":1657},{"type":48,"tag":113,"props":8083,"children":8085},{"className":8084},[],[8086],{"type":62,"value":8087},"navigatorObservers",{"type":62,"value":8089},"; name all routes",{"type":48,"tag":947,"props":8091,"children":8092},{},[8093,8098],{"type":48,"tag":969,"props":8094,"children":8095},{},[8096],{"type":62,"value":8097},"GoRouter routes unnamed",{"type":48,"tag":969,"props":8099,"children":8100},{},[8101,8102,8108,8110,8116,8118],{"type":62,"value":2266},{"type":48,"tag":113,"props":8103,"children":8105},{"className":8104},[],[8106],{"type":62,"value":8107},"name:",{"type":62,"value":8109}," to all ",{"type":48,"tag":113,"props":8111,"children":8113},{"className":8112},[],[8114],{"type":62,"value":8115},"GoRoute",{"type":62,"value":8117}," entries — unnamed routes are tracked as ",{"type":48,"tag":113,"props":8119,"children":8121},{"className":8120},[],[8122],{"type":62,"value":6288},{"type":48,"tag":947,"props":8124,"children":8125},{},[8126,8131],{"type":48,"tag":969,"props":8127,"children":8128},{},[8129],{"type":62,"value":8130},"TTFD never reports",{"type":48,"tag":969,"props":8132,"children":8133},{},[8134,8136,8142,8144],{"type":62,"value":8135},"Call ",{"type":48,"tag":113,"props":8137,"children":8139},{"className":8138},[],[8140],{"type":62,"value":8141},"SentryFlutter.currentDisplay()?.reportFullyDisplayed()",{"type":62,"value":8143}," after data loads, or wrap with ",{"type":48,"tag":113,"props":8145,"children":8147},{"className":8146},[],[8148],{"type":62,"value":8149},"SentryDisplayWidget",{"type":48,"tag":947,"props":8151,"children":8152},{},[8153,8163],{"type":48,"tag":969,"props":8154,"children":8155},{},[8156,8161],{"type":48,"tag":113,"props":8157,"children":8159},{"className":8158},[],[8160],{"type":62,"value":1677},{"type":62,"value":8162}," auth error",{"type":48,"tag":969,"props":8164,"children":8165},{},[8166,8167,8172,8174],{"type":62,"value":7872},{"type":48,"tag":113,"props":8168,"children":8170},{"className":8169},[],[8171],{"type":62,"value":6528},{"type":62,"value":8173}," env var instead of hardcoding in ",{"type":48,"tag":113,"props":8175,"children":8177},{"className":8176},[],[8178],{"type":62,"value":984},{"type":48,"tag":947,"props":8180,"children":8181},{},[8182,8187],{"type":48,"tag":969,"props":8183,"children":8184},{},[8185],{"type":62,"value":8186},"Android ProGuard mapping missing",{"type":48,"tag":969,"props":8188,"children":8189},{},[8190,8191,8197],{"type":62,"value":7899},{"type":48,"tag":113,"props":8192,"children":8194},{"className":8193},[],[8195],{"type":62,"value":8196},"--extra-gen-snapshot-options=--save-obfuscation-map=...",{"type":62,"value":8198}," flag is set",{"type":48,"tag":947,"props":8200,"children":8201},{},[8202,8207],{"type":48,"tag":969,"props":8203,"children":8204},{},[8205],{"type":62,"value":8206},"iOS dSYM not uploaded",{"type":48,"tag":969,"props":8208,"children":8209},{},[8210,8215,8217,8223,8225,8230,8232,8237],{"type":48,"tag":113,"props":8211,"children":8213},{"className":8212},[],[8214],{"type":62,"value":1677},{"type":62,"value":8216}," handles this; check ",{"type":48,"tag":113,"props":8218,"children":8220},{"className":8219},[],[8221],{"type":62,"value":8222},"upload_debug_symbols: true",{"type":62,"value":8224}," in ",{"type":48,"tag":113,"props":8226,"children":8228},{"className":8227},[],[8229],{"type":62,"value":984},{"type":62,"value":8231}," ",{"type":48,"tag":113,"props":8233,"children":8235},{"className":8234},[],[8236],{"type":62,"value":1735},{"type":62,"value":8238}," block",{"type":48,"tag":947,"props":8240,"children":8241},{},[8242,8253],{"type":48,"tag":969,"props":8243,"children":8244},{},[8245,8251],{"type":48,"tag":113,"props":8246,"children":8248},{"className":8247},[],[8249],{"type":62,"value":8250},"pub get",{"type":62,"value":8252}," fails: Dart SDK too old",{"type":48,"tag":969,"props":8254,"children":8255},{},[8256,8261,8263],{"type":48,"tag":113,"props":8257,"children":8259},{"className":8258},[],[8260],{"type":62,"value":118},{"type":62,"value":8262}," ≥9.0.0 requires Dart ≥3.5.0; run ",{"type":48,"tag":113,"props":8264,"children":8266},{"className":8265},[],[8267],{"type":62,"value":8268},"flutter upgrade",{"type":48,"tag":947,"props":8270,"children":8271},{},[8272,8277],{"type":48,"tag":969,"props":8273,"children":8274},{},[8275],{"type":62,"value":8276},"Hot restart crashes on Android debug",{"type":48,"tag":969,"props":8278,"children":8279},{},[8280],{"type":62,"value":8281},"Known issue (fixed in SDK ≥9.9.0); upgrade if on older version",{"type":48,"tag":947,"props":8283,"children":8284},{},[8285,8290],{"type":48,"tag":969,"props":8286,"children":8287},{},[8288],{"type":62,"value":8289},"ANR detection too aggressive",{"type":48,"tag":969,"props":8291,"children":8292},{},[8293,8295,8300],{"type":62,"value":8294},"Increase ",{"type":48,"tag":113,"props":8296,"children":8298},{"className":8297},[],[8299],{"type":62,"value":5397},{"type":62,"value":8301}," (default: 5000ms)",{"type":48,"tag":947,"props":8303,"children":8304},{},[8305,8310],{"type":48,"tag":969,"props":8306,"children":8307},{},[8308],{"type":62,"value":8309},"Too many transactions in dashboard",{"type":48,"tag":969,"props":8311,"children":8312},{},[8313,8315,8320,8321,8327,8329,8334],{"type":62,"value":8314},"Lower ",{"type":48,"tag":113,"props":8316,"children":8318},{"className":8317},[],[8319],{"type":62,"value":4841},{"type":62,"value":1657},{"type":48,"tag":113,"props":8322,"children":8324},{"className":8323},[],[8325],{"type":62,"value":8326},"0.1",{"type":62,"value":8328}," or use ",{"type":48,"tag":113,"props":8330,"children":8332},{"className":8331},[],[8333],{"type":62,"value":4870},{"type":62,"value":8335}," to drop health checks",{"type":48,"tag":947,"props":8337,"children":8338},{},[8339,8349],{"type":48,"tag":969,"props":8340,"children":8341},{},[8342,8347],{"type":48,"tag":113,"props":8343,"children":8345},{"className":8344},[],[8346],{"type":62,"value":6268},{"type":62,"value":8348}," not firing for native crashes",{"type":48,"tag":969,"props":8350,"children":8351},{},[8352,8354,8359],{"type":62,"value":8353},"Expected — ",{"type":48,"tag":113,"props":8355,"children":8357},{"className":8356},[],[8358],{"type":62,"value":6268},{"type":62,"value":8360}," intercepts only Dart-layer events; native crashes bypass it",{"type":48,"tag":947,"props":8362,"children":8363},{},[8364,8369],{"type":48,"tag":969,"props":8365,"children":8366},{},[8367],{"type":62,"value":8368},"Crons not available",{"type":48,"tag":969,"props":8370,"children":8371},{},[8372],{"type":62,"value":8373},"The Flutter\u002FDart SDK does not support Sentry Crons; use a server-side SDK instead",{"type":48,"tag":947,"props":8375,"children":8376},{},[8377,8387],{"type":48,"tag":969,"props":8378,"children":8379},{},[8380,8385],{"type":48,"tag":113,"props":8381,"children":8383},{"className":8382},[],[8384],{"type":62,"value":7028},{"type":62,"value":8386}," warning in tests",{"type":48,"tag":969,"props":8388,"children":8389},{},[8390,8392,8397,8398,8404,8406],{"type":62,"value":8391},"Wrap test widget with ",{"type":48,"tag":113,"props":8393,"children":8395},{"className":8394},[],[8396],{"type":62,"value":1773},{"type":62,"value":8224},{"type":48,"tag":113,"props":8399,"children":8401},{"className":8400},[],[8402],{"type":62,"value":8403},"setUpAll",{"type":62,"value":8405},", or use ",{"type":48,"tag":113,"props":8407,"children":8409},{"className":8408},[],[8410],{"type":62,"value":8411},"enabled: false",{"type":48,"tag":947,"props":8413,"children":8414},{},[8415,8420],{"type":48,"tag":969,"props":8416,"children":8417},{},[8418],{"type":62,"value":8419},"Firebase Remote Config: Linux\u002FWindows",{"type":48,"tag":969,"props":8421,"children":8422},{},[8423,8429],{"type":48,"tag":113,"props":8424,"children":8426},{"className":8425},[],[8427],{"type":62,"value":8428},"sentry_firebase_remote_config",{"type":62,"value":8430}," not supported on Linux\u002FWindows (Firebase limitation)",{"type":48,"tag":947,"props":8432,"children":8433},{},[8434,8439],{"type":48,"tag":969,"props":8435,"children":8436},{},[8437],{"type":62,"value":8438},"Isar tracing on Web",{"type":48,"tag":969,"props":8440,"children":8441},{},[8442,8448],{"type":48,"tag":113,"props":8443,"children":8445},{"className":8444},[],[8446],{"type":62,"value":8447},"sentry_isar",{"type":62,"value":8449}," does NOT support Web (Isar does not support Web)",{"type":48,"tag":8451,"props":8452,"children":8453},"style",{},[8454],{"type":62,"value":8455},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":8457,"total":8635},[8458,8483,8497,8512,8526,8543,8559,8573,8583,8594,8604,8622],{"slug":8459,"name":8459,"fn":8460,"description":8461,"org":8462,"tags":8463,"stars":8480,"repoUrl":8481,"updatedAt":8482},"xcodebuildmcp","build and test Apple apps with XcodeBuildMCP","Official skill for XcodeBuildMCP. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8464,8467,8470,8473,8474,8477],{"name":8465,"slug":8466,"type":16},"Debugging","debugging",{"name":8468,"slug":8469,"type":16},"iOS","ios",{"name":8471,"slug":8472,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":8475,"slug":8476,"type":16},"Testing","testing",{"name":8478,"slug":8479,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":8484,"name":8484,"fn":8485,"description":8486,"org":8487,"tags":8488,"stars":8480,"repoUrl":8481,"updatedAt":8496},"xcodebuildmcp-cli","build and test Apple apps via CLI","Official skill for the XcodeBuildMCP CLI. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8489,8492,8493,8494,8495],{"name":8490,"slug":8491,"type":16},"CLI","cli",{"name":8468,"slug":8469,"type":16},{"name":8471,"slug":8472,"type":16},{"name":8475,"slug":8476,"type":16},{"name":8478,"slug":8479,"type":16},"2026-04-06T18:13:36.13414",{"slug":8498,"name":8498,"fn":8499,"description":8500,"org":8501,"tags":8502,"stars":8509,"repoUrl":8510,"updatedAt":8511},"agents-md","maintain project instruction files","Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update AGENTS.md, maintain agent docs, set up CLAUDE.md, document repository agent conventions, or keep coding-agent instructions minimal and reference-backed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8503,8506],{"name":8504,"slug":8505,"type":16},"Documentation","documentation",{"name":8507,"slug":8508,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":8513,"name":8513,"fn":8514,"description":8515,"org":8516,"tags":8517,"stars":8509,"repoUrl":8510,"updatedAt":8525},"blog-writing-guide","write and review engineering blog posts","Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a product announcement, create an engineering deep-dive, or produce any written content destined for the Sentry blog or developer audience. Also trigger when the user mentions \"blog post,\" \"blog draft,\" \"write-up,\" \"announcement post,\" \"engineering post,\" \"deep dive,\" \"postmortem,\" or asks for help with technical writing for Sentry. Even if the user just says \"help me write about [feature\u002Ftopic]\" — if it sounds like it could become a Sentry blog post, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8518,8521,8522],{"name":8519,"slug":8520,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":8523,"slug":8524,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":8527,"name":8527,"fn":8528,"description":8529,"org":8530,"tags":8531,"stars":8509,"repoUrl":8510,"updatedAt":8542},"brand-guidelines","write copy following Sentry brand guidelines","Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404 pages, documentation, marketing copy, or any user-facing content. Covers both Plain Speech (default) and Sentry Voice tones.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8532,8535,8538,8539],{"name":8533,"slug":8534,"type":16},"Branding","branding",{"name":8536,"slug":8537,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":8540,"slug":8541,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":8544,"name":8544,"fn":8545,"description":8546,"org":8547,"tags":8548,"stars":8509,"repoUrl":8510,"updatedAt":8558},"claude-settings-audit","generate Claude Code settings permissions","Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8549,8552,8555],{"name":8550,"slug":8551,"type":16},"Claude Code","claude-code",{"name":8553,"slug":8554,"type":16},"Configuration","configuration",{"name":8556,"slug":8557,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":8560,"name":8560,"fn":8561,"description":8562,"org":8563,"tags":8564,"stars":8509,"repoUrl":8510,"updatedAt":8572},"code-review","perform code reviews for Sentry projects","Perform code reviews following Sentry engineering practices. Use when reviewing pull requests, examining code changes, or providing feedback on code quality. Covers security, performance, testing, and design review.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8565,8567,8568,8571],{"name":8566,"slug":8560,"type":16},"Code Review",{"name":8507,"slug":8508,"type":16},{"name":8569,"slug":8570,"type":16},"Performance","performance",{"name":8556,"slug":8557,"type":16},"2026-05-15T06:16:35.824864",{"slug":8574,"name":8574,"fn":8575,"description":8576,"org":8577,"tags":8578,"stars":8509,"repoUrl":8510,"updatedAt":8582},"code-simplifier","simplify and refine source code","Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to \"simplify code\", \"clean up code\", \"refactor for clarity\", \"improve readability\", or review recently modified code for elegance. Focuses on project-specific best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8579],{"name":8580,"slug":8581,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":8584,"name":8584,"fn":8585,"description":8586,"org":8587,"tags":8588,"stars":8509,"repoUrl":8510,"updatedAt":8593},"commit","create commits with Sentry conventions","Use for every request to commit changes or draft a commit message. Creates Sentry-style conventional commits with issue references.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8589,8592],{"name":8590,"slug":8591,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":8595,"name":8595,"fn":8596,"description":8597,"org":8598,"tags":8599,"stars":8509,"repoUrl":8510,"updatedAt":8603},"create-branch","create git branches for Sentry workflows","Create a git branch following Sentry naming conventions. Use when asked to \"create a branch\", \"new branch\", \"start a branch\", \"make a branch\", \"switch to a new branch\", or when starting new work on the default branch.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8600,8601,8602],{"name":8507,"slug":8508,"type":16},{"name":8590,"slug":8591,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":8605,"name":8605,"fn":8606,"description":8607,"org":8608,"tags":8609,"stars":8509,"repoUrl":8510,"updatedAt":8621},"django-access-review","review Django access control and IDOR","Django access control and IDOR security review. Use when reviewing Django views, DRF viewsets, ORM queries, or any Python\u002FDjango code handling user authorization. Trigger keywords: \"IDOR\", \"access control\", \"authorization\", \"Django permissions\", \"object permissions\", \"tenant isolation\", \"broken access\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8610,8613,8614,8617,8620],{"name":8611,"slug":8612,"type":16},"Access Control","access-control",{"name":8580,"slug":8581,"type":16},{"name":8615,"slug":8616,"type":16},"Django","django",{"name":8618,"slug":8619,"type":16},"Python","python",{"name":8556,"slug":8557,"type":16},"2026-05-15T06:16:43.098698",{"slug":8623,"name":8623,"fn":8624,"description":8625,"org":8626,"tags":8627,"stars":8509,"repoUrl":8510,"updatedAt":8634},"django-perf-review","review and optimize Django performance","Django performance code review. Use when asked to \"review Django performance\", \"find N+1 queries\", \"optimize Django\", \"check queryset performance\", \"database performance\", \"Django ORM issues\", or audit Django code for performance problems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8628,8629,8632,8633],{"name":8566,"slug":8560,"type":16},{"name":8630,"slug":8631,"type":16},"Database","database",{"name":8615,"slug":8616,"type":16},{"name":8569,"slug":8570,"type":16},"2026-05-15T06:16:24.832813",88,{"items":8637,"total":661},[8638,8654,8667,8683,8695,8708,8723],{"slug":8639,"name":8639,"fn":8640,"description":8641,"org":8642,"tags":8643,"stars":27,"repoUrl":28,"updatedAt":8653},"sentry-android-sdk","setup Sentry SDK for Android","Full Sentry SDK setup for Android. Use when asked to \"add Sentry to Android\", \"install sentry-android\", \"setup Sentry in Android\", or configure error monitoring, tracing, profiling, session replay, or logging for Android applications. Supports Kotlin and Java codebases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8644,8647,8648,8649,8652],{"name":8645,"slug":8646,"type":16},"Android","android",{"name":8465,"slug":8466,"type":16},{"name":14,"slug":15,"type":16},{"name":8650,"slug":8651,"type":16},"SDK","sdk",{"name":9,"slug":8,"type":16},"2026-07-12T06:08:32.396344",{"slug":8655,"name":8655,"fn":8656,"description":8657,"org":8658,"tags":8659,"stars":27,"repoUrl":28,"updatedAt":8666},"sentry-browser-sdk","setup Sentry error monitoring for browser applications","Full Sentry SDK setup for browser JavaScript. Use when asked to \"add Sentry to a website\", \"install @sentry\u002Fbrowser\", or configure error monitoring, tracing, session replay, or logging for vanilla JavaScript, jQuery, static sites, or WordPress.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8660,8661,8664,8665],{"name":8465,"slug":8466,"type":16},{"name":8662,"slug":8663,"type":16},"JavaScript","javascript",{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},"2026-07-18T05:47:44.437436",{"slug":8668,"name":8668,"fn":8669,"description":8670,"org":8671,"tags":8672,"stars":27,"repoUrl":28,"updatedAt":8682},"sentry-cloudflare-sdk","setup Sentry monitoring for Cloudflare","Full Sentry SDK setup for Cloudflare Workers and Pages. Use when asked to \"add Sentry to Cloudflare Workers\", \"install @sentry\u002Fcloudflare\", or configure error monitoring, tracing, logging, crons, or AI monitoring for Cloudflare Workers, Pages, Durable Objects, Queues, Workflows, or Hono on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8673,8676,8679,8680,8681],{"name":8674,"slug":8675,"type":16},"Cloudflare","cloudflare",{"name":8677,"slug":8678,"type":16},"Edge Functions","edge-functions",{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:25.361175",{"slug":8684,"name":8684,"fn":8685,"description":8686,"org":8687,"tags":8688,"stars":27,"repoUrl":28,"updatedAt":8694},"sentry-cocoa-sdk","integrate Sentry SDK into Apple applications","Full Sentry SDK setup for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). Use when asked to \"add Sentry to iOS\", \"add Sentry to Swift\", \"install sentry-cocoa\", or configure error monitoring, tracing, profiling, session replay, logging, or metrics for Apple applications. Supports SwiftUI and UIKit.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8689,8690,8691,8692,8693],{"name":8468,"slug":8469,"type":16},{"name":8471,"slug":8472,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:52:57.042493",{"slug":7758,"name":7758,"fn":8696,"description":8697,"org":8698,"tags":8699,"stars":27,"repoUrl":28,"updatedAt":8707},"setup Sentry SDK for .NET","Full Sentry SDK setup for .NET. Use when asked to \"add Sentry to .NET\", \"install Sentry for C#\", or configure error monitoring, tracing, profiling, logging, or crons for ASP.NET Core, MAUI, WPF, WinForms, Blazor, Azure Functions, or any other .NET application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8700,8703,8704,8705,8706],{"name":8701,"slug":8702,"type":16},".NET","net",{"name":8465,"slug":8466,"type":16},{"name":14,"slug":15,"type":16},{"name":8650,"slug":8651,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:33.793148",{"slug":8709,"name":8709,"fn":8710,"description":8711,"org":8712,"tags":8713,"stars":27,"repoUrl":28,"updatedAt":8722},"sentry-elixir-sdk","setup Sentry SDK for Elixir","Full Sentry SDK setup for Elixir. Use when asked to \"add Sentry to Elixir\", \"install sentry for Elixir\", or configure error monitoring, tracing, logging, or crons for Elixir, Phoenix, or Plug applications. Supports Phoenix, Plug, LiveView, Oban, and Quantum.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8714,8717,8720,8721],{"name":8715,"slug":8716,"type":16},"Backend","backend",{"name":8718,"slug":8719,"type":16},"Elixir","elixir",{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:11.69581",{"slug":8724,"name":8724,"fn":8725,"description":8726,"org":8727,"tags":8728,"stars":27,"repoUrl":28,"updatedAt":8735},"sentry-fix-issues","fix production issues with Sentry","Find and fix issues from Sentry using MCP. Use when asked to fix Sentry errors, debug production issues, investigate exceptions, or resolve bugs reported in Sentry. Methodically analyzes stack traces, breadcrumbs, traces, and context to identify root causes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[8729,8730,8733,8734],{"name":8465,"slug":8466,"type":16},{"name":8731,"slug":8732,"type":16},"Incident Response","incident-response",{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:35.550824"]