github getsentry/sentry-native 0.15.4

22 hours ago

Features:

  • Add reusable, user-owned scopes. sentry_scope_new creates a scope that sentry_capture_event_with_scope applies without consuming, so you can configure it once and reuse it across many captures instead of building a new local scope each time. sentry_scope_clone copies a scope, and sentry_scope_free releases it. (#1855)
  • Android: Expose setting the environment on the scope through the NDK bindings via NativeScope.setEnvironment(), so head SDKs can sync the environment at runtime. (#1874)
  • Embed the crash event's breadcrumbs into session replay recordings, so breadcrumbs from the replay window show up on the replay timeline. (#1875)
  • Add sentry_transaction_discard and sentry_span_discard for releasing unfinished transactions and spans without sending them. (#1858)
  • Add scope attributes. sentry_scope_set_attribute / _n set an attribute on a scope and sentry_scope_remove_attribute / _n remove one, while the new sentry_scope_capture_log and sentry_scope_capture_metric capture a log or metric against a given scope. Scope attributes and trace are applied to logs and metrics captured against it, resolving most-specific-first: per-call data, then the scope, then the global scope. (#1861)
  • Add sentry_scope_clear to reset a scope's data. (#1881)

Deprecations:

  • Deprecate sentry_capture_event_with_scope in favor of sentry_scope_capture_event (scope first), which matches sentry_scope_capture_log / sentry_scope_capture_metric. (#1882)

Fixes:

  • Apply the propagation context to events that already have contexts set, so that events captured with a local scope or with event-level contexts keep their trace. (#1843)
  • Crashpad: reject runtime control IPC from processes other than the one that started the handler. (#1853)
  • Native/macOS: resolve symbol names for crash stacktraces from Mach-O symbol tables and dSYM companions. (#1856)
  • Route libcurl debug output through the Sentry logger (SENTRY_TRACE) instead of writing to stderr. (#1854)
    • NOTE: sentry_options_set_debug(options, true) no longer displays verbose libcurl debug output by default. To restore it, call sentry_options_set_logger_level(options, SENTRY_LEVEL_TRACE).
  • Crashpad: route client logs through the Sentry logger to make actionable handler startup errors visible. (#1859)
  • Windows: fix symlink detection used to prevent database cleanup from following symlinks in run and cache directories. (#1857)
  • Linux: avoid unsafe copy_file_range at crash time. (#1868)
  • Increase the default telemetry batcher capacity from 2x100 to 3x100 items, and add SENTRY_BATCHER_BUFFER_COUNT to configure the number of rotating buffers used by log and metric batchers. (#1867)
  • Fix a lifetime issue when reading sample_rand from the scope propagation context. (#1869)
  • Linux: silence harmless compilation warnings in sentry_modulefinder_linux.c and sentry_backend_inproc.c. (#1871)
  • Fix per-call log and metric attributes to override same-named global attributes atomically, preventing fields such as unit from leaking from the global attribute when the per-call attribute does not define them. (#1879)
  • Prefix vendored mpack symbols to avoid symbol conflicts. (#1880)

Don't miss a new sentry-native release

NewReleases is sending notifications on new releases.