Features
- Add feature flags API (#4812) and (#4831)
- You may now keep track of your feature flag evaluations and have them show up in Sentry.
- Top level API (
Sentry.addFeatureFlag("my-feature-flag", true);) writes to scopes and the current span (if there is one) - It is also possible to use API on
IScope,IScopes,ISpanandITransactiondirectly - Feature flag evaluations tracked on scope(s) will be added to any errors reported to Sentry.
- The SDK keeps the latest 100 evaluations from scope(s), replacing old entries as new evaluations are added.
- For feature flag evaluations tracked on spans:
- Only 10 evaluations are tracked per span, existing flags are updated but new ones exceeding the limit are ignored
- Spans do not inherit evaluations from their parent
- Drop log events once buffer hits hard limit (#4889)
- If we have 1000 log events queued up, we drop any new logs coming in to prevent OOM
- Remove vendored code and upgrade to async profiler 4.2 (#4856)
- This adds support for JDK 23+
Fixes
- Removed SentryExecutorService limit for delayed scheduled tasks (#4846)
- Fix visual artifacts for the Canvas strategy on some devices (#4861)
- [Config] Trim whitespace on properties path (#4880)
- Only set
DefaultReplayBreadcrumbConverterif replay is available (#4888) - Session Replay: Cache connection status instead of using blocking calls (#4891)
- Fix log count in client reports (#4869)
- Fix profilerId propagation (#4833)
- Fix profiling init for Spring and Spring Boot w Agent auto-init (#4815)
- Copy active span on scope clone (#4878)
Improvements
- Fallback to distinct-id as user.id logging attribute when user is not set (#4847)
- Report Timber.tag() as
timber.taglog attribute (#4845) - Session Replay: Add screenshot strategy serialization to RRWeb events (#4851)
- Report discarded log bytes (#4871)
- Log why a properties file was not loaded (#4879)