dab246
330c8cbaf5
TF-4269 Apply PR review: breadcrumbs, log error details, and code cleanup for NSE Sentry integration
...
- 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
2026-04-22 09:00:56 +07:00
dab246
f335871513
Bump version to v0.28.3-rc10
2026-04-21 15:15:55 +07:00
dab246
99b68d1fc5
TF-4269 Fix Sentry release version sync across platforms
...
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
2026-04-21 15:15:32 +07:00
dab246
be7c39018b
Bump version to v0.28.3-rc09
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-21 13:19:07 +07:00
dab246
b98c76e72a
TF-4269 Fix Sentry
...
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.
2026-04-21 13:18:36 +07:00
dab246
f81ba99c77
Bump version to v0.28.3-rc08
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-21 12:18:25 +07:00
dab246
37dc22af17
TF-4269 Fix Sentry dSYM upload: find xcarchive via find instead of gym_archive_path.txt
...
lane_context[XCODEBUILD_ARCHIVE] was unreliable — replace with find on
~/Library/Developer/Xcode/Archives to locate the Runner xcarchive directly.
2026-04-21 12:17:46 +07:00
dab246
149ce08f9b
Bump version to v0.28.3-rc07
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-21 11:52:20 +07:00
dab246
bab9d4f24c
TF-4269 Integrate Sentry into iOS NSE and automate dSYM upload in CI
2026-04-21 11:51:36 +07:00
dab246
4505c50302
Fix iOS build: bump IPHONEOS_DEPLOYMENT_TARGET to 14.0 for all targets
...
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'.
2026-04-21 11:44:37 +07:00
Dat Vu
bfe51749aa
docs: add ADRs for Patrol web integration test — setup, architecture, migration ( #4452 )
2026-04-17 17:38:35 +07:00
dab246
cb41b5690b
TF-4308 Add E2E tests for ChooseLabelModal and NoLabelYetWidget
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-17 17:09:24 +07:00
Dat Vu
a693ceb456
[Part 2] TF-4308 Add Create new label button in ChooseLabelModal ( #4457 )
2026-04-17 16:51:49 +07:00
dab246
a80de79537
TF-4301 Deduping before append label to list
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-17 11:58:53 +07:00
dab246
5938df395c
TF-4301 Ensure that CreateNewLabelInteractor and EditLabelInteractor are always non-null before using them.
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-17 11:58:53 +07:00
dab246
8ac68ed1a5
TF-4301 Replace LabelModalMixin with direct methods in LabelController
2026-04-17 11:58:53 +07:00
dab246
2fd890f488
TF-4301 Block barrier dismissal while label creation is in progress
...
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.
2026-04-17 11:58:53 +07:00
dab246
660c4f40e2
TF-4301 Address code review comments on label feature
...
- 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
2026-04-17 11:58:53 +07:00
dab246
232987ae0c
TF-4301 Extract onMoreActionClick callback into dedicated method in ThreadView
2026-04-17 11:58:53 +07:00
dab246
1b62990f28
TF-4301 Add E2E tests for label creation and tagging from email view
2026-04-17 11:58:53 +07:00
dab246
190ccc7bc3
TF-4301 Add "Create a new label" button in Label As menus and wire up tagging in email view
2026-04-17 11:58:53 +07:00
dab246
061793846e
fixup! TF-4308 Add NoLabelYetWidget for choose label modal
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-17 10:22:32 +07:00
dab246
35b46ff21b
TF-4308 Add NoLabelYetWidget for choose label modal
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-17 10:22:32 +07:00
Dat Vu
c5eb4a011d
Cherry pick commit fix issue #4292 to master ( #4454 )
...
* 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)
2026-04-16 15:45:45 +07:00
Dat Vu
1d594804b5
TF-4268 Automate Sentry symbol upload for Android release builds ( #4442 )
2026-04-14 12:32:03 +07:00
Dat Vu
16376fccb4
TF-4343 Fix load Sentry from Sentry CDN ( #4348 )
2026-04-14 11:59:27 +07:00
dab246
eeaab49e93
TF-4268 Cache Sentry config and user for FCM background re-initialization
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-10 16:05:02 +07:00
Dat Vu
cb5d43630a
TF-4284 Fix refreshing causes "virtual mailboxes" to be hidden ( #4290 )
2026-04-10 15:29:04 +07:00
Dat Vu
c9e2e5db80
TF-4358 Remove mail in trash by default in search result ( #4361 )
2026-04-10 15:15:53 +07:00
Dat Vu
bc707b2612
fix: Update pubspec.lock to resolve stale worker_manager git ref ( #4447 )
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-10 12:42:24 +07:00
dab246
dd77b2d53a
fixup! TF-4268 Initialize Sentry from Linagora Ecosystem configuration
...
Signed-off-by: dab246 <tdvu@linagora.com >
2026-04-09 14:16:41 +07:00
dab246
d2566dd9aa
TF-4268 Initialize Sentry from Linagora Ecosystem configuration
2026-04-09 14:16:41 +07:00
dab246
c9ec1c2820
TF-4268 Improve SentryConfig and SentryManager: sampling, frames tracking, non-blocking capture
2026-04-09 14:16:41 +07:00
dab246
2a666056c2
TF-4268 Refactor app runner: split web/mobile runners, add platform error handlers
2026-04-09 14:16:41 +07:00
Dat Vu
78e76b5aac
docs: ADR-0076 - Reduce Sentry Noise with Targeted Error Reporting ( #4433 )
2026-04-09 09:18:45 +07:00
Dat Vu
c6b83d7a09
ADR-0072: Prevent notification storm on Android ( #4381 )
2026-04-09 09:18:09 +07:00
Dat Vu
20f59da386
TF-4425 Fix load more not triggered on iOS 18 when fast scrolling to bottom ( #4428 )
2026-04-08 10:06:49 +07:00
dab246
2a3325ab7a
TF-4265 Add integration test for attachment reminder on mobile
2026-04-07 13:20:25 +07:00
dab246
74c0c75023
TF-4265 Refactor: Move Regex pattern generation to Main Thread to leverage static caching and reduce Isolate initialization overhead.
2026-04-07 13:20:25 +07:00
dab246
55e27c78ed
TF-4265 Additional config for include and exclude keywords
2026-04-07 13:20:25 +07:00
dab246
42fb24e6e5
TF-4265 Add include list to support custom keywords detection
2026-04-07 13:20:25 +07:00
dab246
1071bb49cf
TF-4265 Add exclude list support to AttachmentTextDetector
2026-04-07 13:20:25 +07:00
dab246
772a5e3219
TF-4265 Update logic matchedKeywordsUnique method and add some keywords file, files, file., file?, ....
2026-04-07 13:20:25 +07:00
dab246
5e1d99125e
TF-4265 Exclude our signature by add removeTMailSignature option to extractPlainText method
2026-04-07 13:20:25 +07:00
dab246
c5401561ca
Add Keyboard shortcuts dictionary for close email detail view in Setting
2026-04-06 15:29:16 +07:00
Dat Vu
7cf61ac2f0
Add docs setup chrome devtool MCP ( #4399 )
2026-04-03 07:34:32 +02:00
Dat Vu
bc0f6a4ac6
TF-4356 Add filter event mail in search ( #4357 )
...
* Add `Events` filter checkbox in Advanced Search form
* Perform search email by `Events` filter in Advanced Search form
* Add `Event` quick search button in Search view
* Use `keywords` replace to `headers` for search event filter
2026-04-03 07:16:03 +02:00
dab246
82eb6b7d06
fixup! TF-4392 [Team Mailbox] Hide Recover deleted messages and Archive message in team mailbox
2026-04-01 18:08:12 +07:00
dab246
7cc9cd82fa
TF-4392 [Team Mailbox] Hide Recover deleted messages and Archive message in team mailbox
2026-04-01 18:08:12 +07:00
dab246
beb323874b
TF-4392 [Team Mailbox] Auto save draft email team mailbox when edit
2026-04-01 18:08:12 +07:00
dab246
9feef8da99
TF-4392 [Team Mailbox] Edit email in Drafts folder as new in the composer
2026-04-01 18:08:12 +07:00
dab246
c4b091f396
TF-4392 [Team Mailbox] Edit email in Template folder as new in the composer
2026-04-01 18:08:12 +07:00
dab246
1c87c3178b
TF-4392 [Team Mailbox] Allow delete folder according to my rights.
2026-04-01 18:08:12 +07:00
dab246
afeec2ca17
TF-4392 [Team Mailbox] Allow rename folder according to my rights.
2026-04-01 18:08:12 +07:00
dab246
6eb62347f1
TF-4392 [Team Mailbox] Allow create subfolder according to my rights.
2026-04-01 18:08:12 +07:00
dab246
a702d44f96
TF-4392 [Team Mailbox] Move multiple emails to trash
2026-04-01 18:08:12 +07:00
dab246
c2772e7ab5
TF-4392 [Team Mailbox] Move email to trash on delete in Email Detailed View
2026-04-01 18:08:12 +07:00
dab246
db8ae35c9d
TF-4392 [Team Mailbox] Move email to trash on delete in Email List View
2026-04-01 18:08:12 +07:00
dab246
865940450e
TF-4392 [Team Mailbox] Empty the team mailbox trash
2026-04-01 18:08:12 +07:00
dab246
405501bd40
TF-4392 [Team Mailbox] Delete emails within the team mailbox trash
2026-04-01 18:08:12 +07:00
dab246
1c1b16ded1
fixup! fixup! fixup! TF-4385 Fix spam banner show it once per day
2026-03-30 13:39:46 +07:00
dab246
38fc79d8e5
fixup! fixup! TF-4385 Fix spam banner show it once per day
2026-03-30 13:39:46 +07:00
dab246
6f1bf82f02
fixup! TF-4385 Fix spam banner show it once per day
2026-03-30 13:39:46 +07:00
dab246
e4107c7363
TF-4385 Fix spam banner show it once per day
2026-03-30 13:39:46 +07:00
dab246
cee2dd9d14
feat: Separate in method: _syncLabelForOpenedEmail & add const for LabelKeywordIsNull
2026-03-27 14:07:21 +07:00
dab246
2a58247b2b
feat: Use the displayed email id here, not only _currentEmailId.
2026-03-27 14:07:21 +07:00
dab246
432c482155
feat: Re-use AddLabelToEmailMixin for logic add label to email in EmailView
2026-03-27 14:07:21 +07:00
dab246
f4ae94d47b
feat: Apply EmailMoreActionContextMenu mixin for ThreadView and SearchEmailView
2026-03-27 14:07:21 +07:00
dab246
0d0efdcf96
feat: Add EmailMoreActionContextMenu mixin to handle action email
2026-03-27 14:07:21 +07:00
dab246
ff4515c26a
feat: Add Label as to context menu for each email item in list
2026-03-27 14:07:21 +07:00
dab246
0a88a8f109
TF-4404 Keep automation keys stable across enum renames.
2026-03-27 10:36:23 +07:00
dab246
b97abfbf69
TF-4404 Add e2e test for Mail to attendees action on mobile
2026-03-27 10:36:23 +07:00
dab246
6a245f228a
TF-4404 Fix missing subject when perform Mail to attendees action in event email
2026-03-27 10:36:23 +07:00
dab246
6d0246de20
TF-4391 Fix last menu item inaccessible due to system navigation bar overlap
2026-03-26 17:25:55 +07:00
dab246
eb017b54b1
TF-4383 Handle read only labels
2026-03-26 17:06:13 +07:00
dab246
fdae057837
TF-4370 Fix selector/key wiring: modal instantiation does not pass the key the test expects
2026-03-25 19:45:46 +07:00
dab246
0f9ea3c778
TF-4370 Add E2E test for test case create new a tag
2026-03-25 19:45:46 +07:00
dab246
7df25c5f5a
TF-4370 Handle create new a label with description
2026-03-25 19:45:46 +07:00
dab246
90ddbf5824
TF-4370 Add description field to Label object
2026-03-25 19:45:46 +07:00
dab246
4c837ed9cf
TF-4370 Add Description field to Create new Label modal
2026-03-25 19:45:46 +07:00
dab246
28d5036667
TF-4378 Migrate scribe-mobile branch to master branch
2026-03-25 11:52:35 +07:00
dab246
b64aa4e4c7
feat(scribe-mobile):Fix sometimes the top part is cut off
2026-03-25 11:52:35 +07:00
dab246
5937055789
feat(scribe-mobile): Display the result prompt modal in the correct position relative to the inline scribe button on tablet
2026-03-25 11:52:35 +07:00
Dat Vu
8fff83a735
[HOT-FIX] Download attachment is failed on iOS ( #4405 )
2026-03-24 22:16:43 +07:00
Dat Vu
4899002b87
TF-4394 Fix TXT preview is broken ( #4396 )
2026-03-23 13:47:44 +07:00
Dat Vu
8a9901a0a4
TF-4384 Fix page not found 404 error when refreshing label views ( #4390 )
2026-03-21 17:23:18 +07:00
dab246
651115c304
TF-4368 Auto trigger load more when get all email return < 20 emails
2026-03-20 10:15:13 +07:00
dab246
2d19bc908d
TF-4368 Add more log trace for getAllEmail & forceQueryAllEmailsForWeb
2026-03-20 10:15:13 +07:00
dab246
9854592a4c
TF-4368 Add more log trace for load more email
2026-03-20 10:15:13 +07:00
dab246
cdc7d711f5
TF-4368 Add log to tracing refresh change emails on Sentry
2026-03-20 10:15:13 +07:00
dab246
80c368be62
TF-4368 Add verifying actual merged email IDs, not just count.
2026-03-20 10:15:13 +07:00
dab246
bf1bab478c
TF-4368 Add the delete/shrink regression case and assert the requested limit.
2026-03-20 10:15:13 +07:00
dab246
72aceff481
TF-4368 Add named parameters to mock setup for consistency.
2026-03-20 10:15:13 +07:00
dab246
2d45909ad1
TF-4368 Add tearDown for consistency with other test groups.
2026-03-20 10:15:13 +07:00
dab246
23a3e9243e
TF-4368 Add unit test for refreshChanges method
2026-03-20 10:15:13 +07:00
dab246
a28d5b3527
TF-4368 Fix cannot scroll in email list
2026-03-20 10:15:13 +07:00
Dat Vu
eecdf75f5e
TF-4384 Add ADR-0074 Resolve label refresh 404 by introducing explicit labelId ( #4387 )
2026-03-19 17:13:31 +07:00
dab246
e2c158d633
TF-4373 Add E2E test for test case delete thread to trash on mobile
2026-03-12 15:15:03 +07:00
dab246
bb9dca10de
TF-4373 Fix deletion is not working when thread is enabled
2026-03-12 15:15:03 +07:00
dab246
a838912f5c
TF-4367 Add test case for Emails with Re\u00A0: / Tr\u00A0:.
2026-03-11 13:33:28 +07:00