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
a23d15a9ca
TF-4136 refactor(logging): replace logError with logWarning for non-critical cases
2026-01-06 13:53:22 +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
Théo Poizat
2c364ea08a
Use endpoint from AI capability instead of direct call to LLM
2025-12-19 19:03:39 +07:00
Théo Poizat
2325df616f
Create an isAIScribeAvailable method
...
Check JMAP capability AND if AI is enabled in env.file and use this method everywhere where we checked env.file
2025-12-19 19:03:39 +07:00
Théo Poizat
8c16bd1fad
Add AI capability
2025-12-19 19:03:39 +07:00
Théo Poizat
77a56ae9b7
Export AI Scribe code from controller to a mixin
...
Avoid adding too much code in the controller
2025-12-19 19:03:39 +07:00