Skip to content

User Feedback followup #4494

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 53 commits into from
Jun 17, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
62e71ff
added Feedback class and extended Contexts with it
stefanosiano Mar 14, 2025
c9b4850
Added Sentry.captureFeedback API
stefanosiano Mar 25, 2025
813ff1d
updated changelog
stefanosiano Mar 25, 2025
dd2d6a8
added tests
stefanosiano Mar 27, 2025
6428dfa
added scope replay id and screen as url
stefanosiano Mar 31, 2025
144bcca
added feedback as DataCategory for rate limit and client report
stefanosiano Apr 16, 2025
509f992
Merge branch 'refs/heads/main' into feat/new-user-feedback-logic
stefanosiano Apr 16, 2025
3c0a6fb
merged main
stefanosiano Apr 16, 2025
9e1066e
added tests
stefanosiano Apr 17, 2025
eadb567
Merge branch 'refs/heads/main' into feat/new-user-feedback-logic
stefanosiano Apr 17, 2025
8feeadc
fixed tests
stefanosiano Apr 17, 2025
986772d
started adding resources for UF widget
stefanosiano Apr 29, 2025
e19d122
started SentryFeedbackOptions
stefanosiano Apr 30, 2025
79052ad
Merge branch 'feat/new-user-feedback-logic' into feat/user-feedback-w…
stefanosiano May 7, 2025
5a83bb8
added all form options
stefanosiano May 9, 2025
ee44b18
Merge branch 'main' into feat/new-user-feedback-logic
stefanosiano May 9, 2025
212ffbf
merged main
stefanosiano May 9, 2025
2bf99b5
Merge branch 'feat/new-user-feedback-logic' into feat/user-feedback-w…
stefanosiano May 9, 2025
6eb876c
user feedback dialog now uses dialogTheme
stefanosiano May 14, 2025
a33ae00
Merge branch 'main' into feat/user-feedback-widget
stefanosiano May 14, 2025
d47f374
merged main
stefanosiano May 14, 2025
1a758a2
removed java options for send button colors. Replaced with theme sett…
stefanosiano May 14, 2025
9315f7b
added tests and UI tests
stefanosiano May 16, 2025
62cea5e
added comments
stefanosiano May 16, 2025
794bd66
added comments
stefanosiano May 16, 2025
f16ac66
added replay capturing on feedback dialog open
stefanosiano May 16, 2025
5388b42
added cancel button ui test
stefanosiano May 19, 2025
8aacd36
added cancel button ui test
stefanosiano May 19, 2025
8750c8d
Merge branch 'refs/heads/main' into feat/user-feedback-widget
stefanosiano May 19, 2025
6d14499
added Feedback.toString() and default values in javadoc of SentryFeed…
stefanosiano May 19, 2025
fb88c1f
merged main
stefanosiano May 19, 2025
b5eb64d
skipping replay in test when running on gh
stefanosiano May 20, 2025
d0ba126
skipping replay in test when running on gh
stefanosiano May 20, 2025
202759f
Merge branch 'main' into feat/user-feedback-widget
markushi May 22, 2025
6253aca
added SentryUserFeedbackWidget, with styles and icon
stefanosiano May 26, 2025
c6d1919
updated changelog
stefanosiano May 26, 2025
7bc01eb
Merge branch 'main' into feat/user-feedback-widget
stefanosiano May 29, 2025
ce10336
Merge branch 'feat/user-feedback-widget' into feat/user-feedback-button
stefanosiano May 29, 2025
933371d
Update CHANGELOG.md
stefanosiano May 29, 2025
eebaaf3
removed rtl properties and supportsRtl flag
stefanosiano Jun 6, 2025
3fef7c4
updated changelog
stefanosiano Jun 6, 2025
536d522
Merge branch 'main' into feat/user-feedback-widget
stefanosiano Jun 6, 2025
6d9cee3
Merge branch 'feat/user-feedback-widget' into feat/user-feedback-button
stefanosiano Jun 6, 2025
1bb3095
merged main
stefanosiano Jun 6, 2025
67cbc0d
Merge branch 'main' into feat/user-feedback-button
stefanosiano Jun 13, 2025
4e5ad3a
merged main
stefanosiano Jun 13, 2025
5cdbaca
fixed ui tests
stefanosiano Jun 16, 2025
5d84125
Changed logo with vector drawable
stefanosiano Jun 17, 2025
8a1ef90
Renamed SentryUserFeedbackWidget to SentryUserFeedbackButton
stefanosiano Jun 17, 2025
b504f79
Merge branch 'main' into feat/user-feedback-button
stefanosiano Jun 17, 2025
d7cf58d
Merge branch 'feat/user-feedback-button' into feat/user-feedback-foll…
stefanosiano Jun 17, 2025
2af7422
Merge branch 'main' into feat/user-feedback-followup
stefanosiano Jun 17, 2025
cdf2e3f
updated changelog and tests
stefanosiano Jun 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'refs/heads/main' into feat/new-user-feedback-logic
# Conflicts:
#	CHANGELOG.md
#	sentry/api/sentry.api
#	sentry/src/main/java/io/sentry/SentryClient.java
  • Loading branch information
stefanosiano committed Apr 16, 2025
commit 509f9922fecc1d3c06bb1f42d91c12c4b7c99165
174 changes: 174 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,180 @@

- Add new User Feedback API ([#4286](https://github.com/getsentry/sentry-java/pull/4286))
- We now introduced Sentry.captureFeedback, which supersedes Sentry.captureUserFeedback
- Add `SentryWrapper.wrapRunnable` to wrap `Runnable` for use with Sentry ([#4332](https://github.com/getsentry/sentry-java/pull/4332))

### Fixes

- Fix TTFD measurement when API called too early ([#4297](https://github.com/getsentry/sentry-java/pull/4297))

## 8.8.0

### Features

- Add `CoroutineExceptionHandler` for reporting uncaught exceptions in coroutines to Sentry ([#4259](https://github.com/getsentry/sentry-java/pull/4259))
- This is now part of `sentry-kotlin-extensions` and can be used together with `SentryContext` when launching a coroutine
- Any exceptions thrown in a coroutine when using the handler will be captured (not rethrown!) and reported to Sentry
- It's also possible to extend `CoroutineExceptionHandler` to implement custom behavior in addition to the one we provide by default

### Fixes

- Use thread context classloader when available ([#4320](https://github.com/getsentry/sentry-java/pull/4320))
- This ensures correct resource loading in environments like Spring Boot where the thread context classloader is used for resource loading.
- Improve low memory breadcrumb capturing ([#4325](https://github.com/getsentry/sentry-java/pull/4325))
- Fix do not initialize SDK for Jetpack Compose Preview builds ([#4324](https://github.com/getsentry/sentry-java/pull/4324))
- Fix Synchronize Baggage values ([#4327](https://github.com/getsentry/sentry-java/pull/4327))

### Improvements

- Make `SystemEventsBreadcrumbsIntegration` faster ([#4330](https://github.com/getsentry/sentry-java/pull/4330))

## 8.7.0

### Features

- UI Profiling GA

Continuous Profiling is now GA, named UI Profiling. To enable it you can use one of the following options. More info can be found at https://docs.sentry.io/platforms/android/profiling/.
Note: Both `options.profilesSampler` and `options.profilesSampleRate` must **not** be set to enable UI Profiling.
To keep the same transaction-based behaviour, without the 30 seconds limitation, you can use the `trace` lifecycle mode.

```xml
<application>
<!-- Enable UI profiling, adjust in production env. This is evaluated only once per session -->
<meta-data android:name="io.sentry.traces.profiling.session-sample-rate" android:value="1.0" />
<!-- Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes) -->
<meta-data android:name="io.sentry.traces.profiling.lifecycle" android:value="trace" />
<!-- Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes -->
<meta-data android:name="io.sentry.traces.profiling.start-on-app-start" android:value="true" />
</application>
```
```java
import io.sentry.ProfileLifecycle;
import io.sentry.android.core.SentryAndroid;

SentryAndroid.init(context, options -> {
// Enable UI profiling, adjust in production env. This is evaluated only once per session
options.setProfileSessionSampleRate(1.0);
// Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes)
options.setProfileLifecycle(ProfileLifecycle.TRACE);
// Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes
options.setStartProfilerOnAppStart(true);
});
```
```kotlin
import io.sentry.ProfileLifecycle
import io.sentry.android.core.SentryAndroid

SentryAndroid.init(context, { options ->
// Enable UI profiling, adjust in production env. This is evaluated only once per session
options.profileSessionSampleRate = 1.0
// Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes)
options.profileLifecycle = ProfileLifecycle.TRACE
// Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes
options.isStartProfilerOnAppStart = true
})
```

- Continuous Profiling - Stop when app goes in background ([#4311](https://github.com/getsentry/sentry-java/pull/4311))
- Continuous Profiling - Add delayed stop ([#4293](https://github.com/getsentry/sentry-java/pull/4293))
- Continuous Profiling - Out of Experimental ([#4310](https://github.com/getsentry/sentry-java/pull/4310))

### Fixes

- Compress Screenshots on a background thread ([#4295](https://github.com/getsentry/sentry-java/pull/4295))

## 8.6.0

### Behavioral Changes

- The Sentry SDK will now crash on startup if mixed versions have been detected ([#4277](https://github.com/getsentry/sentry-java/pull/4277))
- On `Sentry.init` / `SentryAndroid.init` the SDK now checks if all Sentry Java / Android SDK dependencies have the same version.
- While this may seem like a bad idea at first glance, mixing versions of dependencies has a very high chance of causing a crash later. We opted for a controlled crash that's hard to miss.
- Note: This detection only works for new versions of the SDK, so please take this as a reminder to check your SDK version alignment manually when upgrading the SDK to this version and then you should be good.
- The SDK will also print log messages if mixed versions have been detected at a later point. ([#4270](https://github.com/getsentry/sentry-java/pull/4270))
- This takes care of cases missed by the startup check above due to older versions.

### Features

- Increase http timeouts from 5s to 30s to have a better chance of events being delivered without retry ([#4276](https://github.com/getsentry/sentry-java/pull/4276))
- Add `MANIFEST.MF` to Sentry JARs ([#4272](https://github.com/getsentry/sentry-java/pull/4272))
- Retain baggage sample rate/rand values as doubles ([#4279](https://github.com/getsentry/sentry-java/pull/4279))
- Introduce fatal SDK logger ([#4288](https://github.com/getsentry/sentry-java/pull/4288))
- We use this to print out messages when there is a problem that prevents the SDK from working correctly.
- One example for this is when the SDK has been configured with mixed dependency versions where we print out details, which module and version are affected.

### Fixes

- Do not override user-defined `SentryOptions` ([#4262](https://github.com/getsentry/sentry-java/pull/4262))
- Session Replay: Change bitmap config to `ARGB_8888` for screenshots ([#4282](https://github.com/getsentry/sentry-java/pull/4282))
- The `MANIFEST.MF` of `sentry-opentelemetry-agent` now has `Implementation-Version` set to the raw version ([#4291](https://github.com/getsentry/sentry-java/pull/4291))
- An example value would be `8.6.0`
- The value of the `Sentry-Version-Name` attribute looks like `sentry-8.5.0-otel-2.10.0`
- Fix tags missing for compose view hierarchies ([#4275](https://github.com/getsentry/sentry-java/pull/4275))
- Do not leak SentryFileInputStream/SentryFileOutputStream descriptors and channels ([#4296](https://github.com/getsentry/sentry-java/pull/4296))
- Remove "not yet implemented" from `Sentry.flush` comment ([#4305](https://github.com/getsentry/sentry-java/pull/4305))

### Internal

- Added `platform` to SentryEnvelopeItemHeader ([#4287](https://github.com/getsentry/sentry-java/pull/4287))
- Set `android` platform to ProfileChunk envelope item header

### Dependencies

- Bump Native SDK from v0.8.1 to v0.8.3 ([#4267](https://github.com/getsentry/sentry-java/pull/4267), [#4298](https://github.com/getsentry/sentry-java/pull/4298))
- [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#083)
- [diff](https://github.com/getsentry/sentry-native/compare/0.8.1...0.8.3)
- Bump Spring Boot from 2.7.5 to 2.7.18 ([#3496](https://github.com/getsentry/sentry-java/pull/3496))

## 8.5.0

### Features

- Add native stack frame address information and debug image metadata to ANR events ([#4061](https://github.com/getsentry/sentry-java/pull/4061))
- This enables symbolication for stripped native code in ANRs
- Add Continuous Profiling Support ([#3710](https://github.com/getsentry/sentry-java/pull/3710))

To enable Continuous Profiling use the `Sentry.startProfiler` and `Sentry.stopProfiler` experimental APIs. Sampling rate can be set through `options.profileSessionSampleRate`, which defaults to null (disabled).
Note: Both `options.profilesSampler` and `options.profilesSampleRate` must **not** be set to enable Continuous Profiling.

```java
import io.sentry.ProfileLifecycle;
import io.sentry.android.core.SentryAndroid;

SentryAndroid.init(context) { options ->

// Currently under experimental options:
options.getExperimental().setProfileSessionSampleRate(1.0);
// In manual mode, you need to start and stop the profiler manually using Sentry.startProfiler and Sentry.stopProfiler
// In trace mode, the profiler will start and stop automatically whenever a sampled trace starts and finishes
options.getExperimental().setProfileLifecycle(ProfileLifecycle.MANUAL);
}
// Start profiling
Sentry.startProfiler();

// After all profiling is done, stop the profiler. Profiles can last indefinitely if not stopped.
Sentry.stopProfiler();
```
```kotlin
import io.sentry.ProfileLifecycle
import io.sentry.android.core.SentryAndroid

SentryAndroid.init(context) { options ->

// Currently under experimental options:
options.experimental.profileSessionSampleRate = 1.0
// In manual mode, you need to start and stop the profiler manually using Sentry.startProfiler and Sentry.stopProfiler
// In trace mode, the profiler will start and stop automatically whenever a sampled trace starts and finishes
options.experimental.profileLifecycle = ProfileLifecycle.MANUAL
}
// Start profiling
Sentry.startProfiler()

// After all profiling is done, stop the profiler. Profiles can last indefinitely if not stopped.
Sentry.stopProfiler()
```

To learn more visit [Sentry's Continuous Profiling](https://docs.sentry.io/product/explore/profiling/transaction-vs-continuous-profiling/#continuous-profiling-mode) documentation page.

### Fixes

Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy