Commit Graph

900 Commits

Author SHA1 Message Date
dab246 bab9d4f24c TF-4269 Integrate Sentry into iOS NSE and automate dSYM upload in CI 2026-04-21 11:51:36 +07:00
Dat Dang e3dfadce34 Upgrade Patrol to 4.5.0 (#4446) 2026-04-17 20:50:22 +07:00
Dat Dang 77e2381ca9 Upgrade Flutter to 3.38.9 (#4455) 2026-04-17 17:39:29 +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 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 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 Dang 6fc88f780c TW-4308 Add labels for several messages part 2 (#4431)
Add ChooseLabelModal, delegate, and update label UI components

Wire add-labels action across Thread, Search, and Dashboard
2026-04-15 14:25:37 +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 c9e2e5db80 TF-4358 Remove mail in trash by default in search result (#4361) 2026-04-10 15:15:53 +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 5e1d99125e TF-4265 Exclude our signature by add removeTMailSignature option to extractPlainText method 2026-04-07 13:20:25 +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
Théo Poizat 1e43ac510b Increase Scribe mobile inline button size 2026-03-25 11:52:35 +07:00
Théo Poizat 03a03b9088 Fix Scribe on responsive mobile
- Button was not added in MobileResponsiveAppBar
- Mobile behavior related scripts were not correctly added for web composer
- Mobile behavior related scripts return value was not properly handled for web composer
- In responsive web, bottomsheet modal clicks were intercepted by iframe behind
2026-03-25 11:52:35 +07:00
Théo Poizat 40030fe88e Properly escape HTML in every Scribe actions
In recent commits I separated how we could add text in the editor. So
we need to escape HTML in both method that add text:
insertTextInEditor and setTextInEditor.

I had to extract the HTML escape part of
convertTextContentToHtmlContent because when using setTextInEditor we
do not need to convert \n to <br>.
2026-03-25 11:52:35 +07:00
Théo Poizat b5606626f4 Fix more Scribe mobile issues
- Add getSavedSelection to check saved selection without consuming it
- Distinguish between setText (replace all) and insertText (at cursor) operations
- Fix replace callback to use setText when no selection exists
- Clean up saved selection state after restoration in HTML utils
- Move mobile editor focus and selection restore to appropriate callbacks
2026-03-25 11:52:35 +07:00
Théo Poizat be7f28f270 Fix Scribe mobile issues
- Fix Scribe replace on mobile when opened from menu bar (to be complete
this fix needs this PR https://github.com/Enough-Software/enough_html_editor/pull/37)
- Ensure all mobile editor call are awaited
- Do not clear text if a selection has been restored (which mean we replace a selection)
- Avoid collapseToEnd crash
2026-03-25 11:52:35 +07:00
Théo Poizat 84176cb113 Hide keyboard and selection icons when Scribe mobile modal opened
When opening Scribe mobile modal, we now unfocus the composer to hide the keyboard and the selection start and end icons from the OS.

Add new methods to save, restore, and clear text selection in HTML editor. These methods allow preserving and restoring user selection state when opening the Scribe mobile modal so that the "replace" action still works.
2026-03-25 11:52:35 +07:00
Théo Poizat 09fe002d3c Use proper icons and styles for bottomsheet icons in Scribe 2026-03-25 11:52:35 +07:00
Théo Poizat 03c70922a0 Fix selection coordinates in mobile
Because the HTML editor is different, we need a different selector to get the editable element.

We also need to add a small offset to the coordinates to avoid positionning the overlay icon above native selection UI in mobile. For example, Android adds a marker at the beginning and the end of the selection and we do not want to display the Scribe overlay icon above this marker.
2026-03-25 11:52:35 +07:00
Dat H. Pham 3e39f59f20 Fixup Constant some token exception 2026-03-10 11:06:16 +07:00
dab246 437c46f5ff fix(sentry): resolve minified exception types on web release 2026-03-10 11:06:16 +07:00
dab246 2e8a11e7eb refactor(sentry): standardize exceptions to prevent Sentry minification 2026-03-10 11:06:16 +07:00
dab246 296548a781 fix(sentry): sync dist parameter to resolve minified stack traces 2026-03-10 11:06:16 +07:00
Dat Vu 9cd75b2885 TF-4339 Fix CORS issue on openid-configuration call (#4342) 2026-02-23 17:18:20 +07:00
Dat H. Pham b14bb6acc0 Update ADR for OIDC token refresh 2026-02-10 16:58:58 +07:00
dab246 e55283abb8 fix: Add log trace to send log to Sentry and print to web console for validate refresh token 2026-02-10 16:58:58 +07:00
Théo Poizat b6959a5ab6 Add an animated AI icon for Scribe in desktop web
I moved the previous static icon in its own component and created a component that manage the loading of the appropriate icon: static or dynamic.
2026-02-09 23:29:43 +07:00
dab246 2001ed158f TF-4306 Update icon for Label in left menu 2026-02-05 22:59:55 +07:00
dab246 b3e5ab0df4 fix(cnb): skip local email cache and add safe email/state cache clearing
(cherry picked from commit 0e7f589df58240badc1d2340e9856882aa075b63)
2026-01-29 18:00:36 +07:00
dab246 69c3d32e3c TF-4233 Fix the response success check to use key presence instead of value nullness. 2026-01-26 09:13:54 +07:00
dab246 7b250f911b TF-4233 Correctly set current label color on edit dialog open 2026-01-26 09:13:54 +07:00
dab246 03b3d1181f TF-4195 Add Label as to email context menu 2026-01-19 11:34:43 +07:00
dab246 95831054b2 TF-4178 Fix Nitpick comments from coderabbit 2026-01-19 11:34:43 +07:00
dab246 6c959fcf81 TF-4178 Implement create new label 2026-01-19 11:34:43 +07:00
dab246 8f1da20e54 TF-4178 Add color picker modal 2026-01-19 11:34:43 +07:00
dab246 d3029ec4de TF-4178 Add create new label modal 2026-01-19 11:34:43 +07:00
dab246 e2fe0a0676 TF-4179 Display tag list in sidebar 2026-01-19 11:34:43 +07:00
dab246 31ed2feae4 TF-4171 Display tag in mailbox list 2026-01-19 11:34:43 +07:00
dab246 f1a86091e1 TF-4136 Fix cannot load app when init sentry is failed 2026-01-15 09:46:51 +07:00
dab246 abe42d6e22 TF-4136 Fix event reconstruction drops fields from the original event. 2026-01-15 09:46:51 +07:00
dab246 6601a48984 TF-4136 Fix DeviceInfoPlugin is instantiated on every access. 2026-01-15 09:46:51 +07:00
dab246 72e4343398 TF-4136 Remove check sentry dio interceptors duplicated 2026-01-15 09:46:51 +07:00
dab246 b6f7f7d846 TF-4136 Fix duplicate Executor instance creation. 2026-01-15 09:46:51 +07:00
dab246 944029d16c TF-4136 Move Sentry duplication guard, but keep interceptor ordering last (not first) 2026-01-15 09:46:51 +07:00
dab246 1514136f39 TF-4136 Replace logError to logWarning for some place 2026-01-15 09:46:51 +07:00
dab246 fedb8fed93 TF-4136 Apply early exit to prevent string operation in log 2026-01-15 09:46:51 +07:00
dab246 95534e28e0 TF-4136 security(sentry): scrub sensitive headers without mutating HTTP payloads 2026-01-15 09:46:51 +07:00
dab246 ec75bb3cab TF-4136 Add config Sentry 2026-01-15 09:46:51 +07:00