Commit Graph

3611 Commits

Author SHA1 Message Date
dab246 ec75bb3cab TF-4136 Add config Sentry 2026-01-15 09:46:51 +07:00
dab246 6f455cc728 fix(mu): email content not displayed due to sanitize html
(cherry picked from commit 2f06e52d81864a62d6e588bb24a6845e20371bf4)
2026-01-12 05:16:02 +07:00
dab246 4f5ff586b1 TF-4141 Fix missing inMailbox in filter 2026-01-11 22:55:49 +07:00
dab246 da67ba07ca TF-4141 Fix separator still not reactive to selection mode changes. 2026-01-11 22:55:49 +07:00
dab246 a30c84dd62 TF-4141 Remove dead code and fix separator reactivity 2026-01-11 22:55:49 +07:00
dab246 fcb7fcf3ba TF-4141 Add unit test for mailbox_filter_builder 2026-01-11 22:55:49 +07:00
dab246 df5ed118b3 TF-4141 should not show inkwell effect when user drag email into virtual folder 2026-01-11 22:55:49 +07:00
dab246 3e86f53862 TF-4141 Add some space between the need action and preview 2026-01-11 22:55:49 +07:00
dab246 2d1ecd4cc0 TF-4141 Fix nitpick comments from coderabbit 2026-01-11 22:55:49 +07:00
dab246 1661210e04 TF-4141 Add the AI needs-action option into the user settings. 2026-01-11 22:55:49 +07:00
dab246 cb0471ecb7 TF-4141 Fix cannot move when drag an email in Action required folder into other folder 2026-01-11 22:55:49 +07:00
Dat H. Pham ed9ca0a855 TF-4141 Update typo needs-action 2026-01-11 22:55:49 +07:00
dab246 09f0ba854a TF-4141 Remove counter of action required folder 2026-01-11 22:55:49 +07:00
dab246 8e2932658b TF-4141 Disable drag & drop email to Action required folder 2026-01-11 22:55:49 +07:00
dab246 e8a76542cf TF-4141 Auto refresh count emails in Action required folder when email changed 2026-01-11 22:55:49 +07:00
dab246 43cbd0d818 TF-4141 Perform load all unread action required emails when open Action required folder 2026-01-11 22:55:49 +07:00
dab246 0e49c18f9d TF-4141 Add Action required folder to left menu 2026-01-11 22:55:49 +07:00
dab246 61b8c95123 TF-4141 Show AI action tag in list emails 2026-01-11 22:55:49 +07:00
dab246 bbbb04a70e TF-4141 Add AI capability 2026-01-11 22:55:49 +07:00
dab246 fd630e9583 TF-4136 Add logError for send email exception thrower 2026-01-06 13:53:22 +07:00
dab246 a23d15a9ca TF-4136 refactor(logging): replace logError with logWarning for non-critical cases 2026-01-06 13:53:22 +07:00
Dang Dat 9f1373c7e5 fixup! TF-4224 Reduce ReDoS vulnerability 2026-01-06 10:16:26 +07:00
Dang Dat 86dec27d67 fixup! TF-4224 Reduce ReDoS vulnerability 2026-01-06 10:16:26 +07:00
Dang Dat 2b909aeb1c TF-4224 Reduce ReDoS vulnerability 2026-01-06 10:16:26 +07:00
Dang Dat a31898185e [Memory leak] Handle dispose in MobileEditorWidget 2025-12-29 10:11:56 +07:00
Dang Dat a286dd5dd8 [Memory leak] Remove listener and dispose 2025-12-29 10:11:56 +07:00
dab246 20b93cd8db hotfix(ai-scribe): Fix text selection handler correctly gated by AI Scribe availability. 2025-12-29 05:13:18 +07:00
dab246 f45f55751f hotfix(ai-scribe): Only implement OnTextSelectionChanged when isAIScribeAvailable is true 2025-12-29 05:13:18 +07:00
dab246 2b06dc65e3 hotfix(ai-scribe): Hide AI scribe option in user setting on mobile 2025-12-29 05:13:18 +07:00
dab246 29b54a76ee hotfix(ai-scribe): fix Safari keyboard input issue in AI Scribe search bar dialog 2025-12-23 17:27:26 +07:00
dab246 6e09d853fd feat(ai-scribe): Fix the English locale file `(intl_en.arb)` is missing all three AI Scribe keys
feat(ai-scribe): Fix async function declared without proper return type annotation.

feat(ai-scribe): Fix Async operations not properly awaited.

feat(ai-scribe): Fix inconsistent capitalization between button labels.

feat(ai-scribe): Fix GenerateAITextFailure check will never match.

feat(ai-scribe): Fix consider validating text input for predefined actions.

feat(ai-scribe): Using a subshell for directory isolation.

feat(ai-scribe): Fix verify the mock usage or document intent.

feat(ai-scribe): Using a more conventional import for Offset.

feat(ai-scribe): Adding error handling for consistency

feat(ai-scribe): Remove `fromJson` and `toJson` of AIResponse

feat(ai-scribe): Using constants for role values.

feat(ai-scribe): Using a more specific import.

feat(ai-scribe): Using Timer for cleaner lifecycle management

feat(ai-scribe): Adding error handling to fromMap() for consistency.

feat(ai-scribe): Disposing the ValueNotifier

feat(ai-scribe): Redundant null check after assignment

feat(ai-scribe): Fix calling `registerSelectionChangeListener` multiple times may be inefficient.

feat(ai-scribe): Safer type handling for JavaScript callback args

feat(ai-scribe): Fix async callbacks not awaited in switch statement.

feat(ai-scribe): Fix binding lifecycle mismatch for GetAIScribeConfigInteractor

feat(ai-scribe): Fix ai prompts

feat(ai-scribe): Fix unawaited async call to `_setupSelectionListener`

feat(ai-scribe): Fix switch cases use top-origin coordinates while `PositionedDirectional(bottom:)`` expects bottom-origin coordinates.

feat(ai-scribe): Adding error handling for selection listener setup.
2025-12-19 19:03:39 +07:00
dab246 6e56a50713 feat(ai-scribe): Load AI scribe config in dashboard 2025-12-19 19:03:39 +07:00
HuyNguyen 428d95c999 Enable AI Scribe modal based on configuration and availability 2025-12-19 19:03:39 +07:00
Dat H. Pham 25ea472688 Display AI toggle in Composer 2025-12-19 19:03:39 +07:00
Dat H. Pham 3c20c005f6 Display AI Scribe togge in Preference 2025-12-19 19:03:39 +07:00
Dat H. Pham 9a46f6c663 Interactor getAIScribeConfig 2025-12-19 19:03:39 +07:00
Dat H. Pham a915ec9881 AIConfig model 2025-12-19 19:03:39 +07:00
dab246 a686b5d334 feat(ai-scribe): Adding error handling for async operations 2025-12-19 19:03:39 +07:00
Théo Poizat c78f6b8a76 Improve text replace in Scribe
- Delete selection content before inserting
- Insert correct HTML
2025-12-19 19:03:39 +07:00
Théo Poizat 1a79445711 Add a method to delete selection content 2025-12-19 19:03:39 +07:00
dab246 57bfb4f88f feat(ai-scribe): Fix when using multiple composer, get multiple overlay icons 2025-12-19 19:03:39 +07:00
dab246 54ca4595ad feat(ai-scribe): Fix some comments of coderabbit 2025-12-19 19:03:39 +07:00
dab246 27393d4cc8 feat(ai-scribe): Add method to collapse selection and insert/replace callback 2025-12-19 19:03:39 +07:00
Théo Poizat 8ed8100e7e Add JS method to collapse selection in both composer
Collapsing a selection means removing it and keep the cursor at the
end. It will be needed by the scribe for "Insert" action where we
want to insert a text at the cursor even if the user selected text.
2025-12-19 19:03:39 +07:00
dab246 860393fc90 feat(ai-scribe): Improve data & domain layer for ai scribe 2025-12-19 19:03:39 +07:00
dab246 1a1b8f489f feat(ai-scribe): Improve UI for AI Scribe suggestion modal 2025-12-19 19:03:39 +07:00
dab246 582b1ebe97 feat(ai-scribe): reorganize abstractions and update dialog modal UI 2025-12-19 19:03:39 +07:00
dab246 7ddccf2e1c feat(ai-scribe): Fix cannot parsing AI capability from Session 2025-12-19 19:03:39 +07:00
Théo Poizat 755e24895d Disable AI Scribe if on mobile 2025-12-19 19:03:39 +07:00
Théo Poizat 0075fd64b6 feat: Remove .env file for AI Scribe
It was used at the beginning for configuration purpose but now we
have the JMAP capability, no need anymore.
2025-12-19 19:03:39 +07:00