- Replace capture(message:) with addBreadcrumb(level: .warning) in NotificationService for non-error diagnostic checkpoints
- Add addBreadcrumb method to SentryManager with category/level support
- Include error details in KeychainController SentryConfig decode failure log
- Split combined guard into two separate guards to distinguish nil state vs unchanged state
- Remove dead do-catch block in onComplete closure; use errors.forEach to capture real errors
- Translate Vietnamese doc comment to English in SentryManager
Use --dart-define=SENTRY_RELEASE=<full-tag> in Fastlane so the app
reports the same version string to Sentry as CI uses when uploading
symbols, bypassing iOS CFBundleShortVersionString stripping.
- Android Fastfile: add --dart-define=SENTRY_RELEASE (build-name unchanged)
- iOS Fastfile: pass DART_DEFINES via xcargs (increment_version_number unchanged)
- Dart: read SENTRY_RELEASE dart-define first, fall back to PackageInfo.version
- NSE/Web unaffected: NSE reads from Keychain, Web falls back to PackageInfo
release version: keep full version including -rc suffix
Use full pubspec version (e.g. 0.28.3-rc08) as SENTRY_RELEASE for both
Android and iOS, matching the version the app reports at runtime.
Validation still compares base versions only (strips -rc suffix) to
allow rc tags to match the base version in pubspec.
receive_sharing_intent requires iOS 14.0+. Flutter 3.38.9 upgrade
raised minimum deployment target, so all targets must be consistent
with Podfile's platform :ios, '14.0'.
Wrap CreateNewLabelModal with PopScope(canPop: false) while the
creation request is in flight so that tapping the barrier
(barrierDismissible: true) cannot dispose the modal and cancel
the stream subscription before the result is delivered.
- Make LabelModalMixin interactor getters non-nullable; remove force-unwraps at call sites
- Show positiveLabel and add semanticLabel in progressing button for accessibility
- Use timestamp-based label name in E2E scenario to prevent flakiness on reused accounts
- Guard labelAs action with isLabelAvailable check in SingleEmailController
- Don't pop back on label creation failure so users can retry without losing context
- Block modal dismissal while label creation request is in flight
- Null-guard email.id before toggling label in ThreadView::onCreateANewLabelAction
- Log stackTrace and rethrow in DialogRouter to distinguish errors from user cancel
* Add folder info when open mail list from Label
(cherry picked from commit de0bb4ee02030ca90126766a8713a6826d791acd)
* Add unit test for `hasMailboxLabel` function in BaseEmailItemTile mixin
(cherry picked from commit 18f8d1847acccd6f95006b93903f0caa6c0408df)
* TF-4292 Add E2E test for test case `Add folder info when open mail list from Label` on mobile
(cherry picked from commit 1c209e333510db161522e4449ad7fb2e5d28399f)