Dang Dat
a8f90ec700
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
Dat H. Pham
91aacf39b7
Bump version to v0.23.1
2025-12-29 12:55:44 +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
2b70b660f0
hotfix(ai-scribe): With a lot of content and selecting all content, do not see the AI selection button
2025-12-23 17:26:28 +07:00
Dat H. Pham
3a571ea01b
Bump version to v0.23.0
2025-12-19 19:06:55 +07:00
Dat H. Pham
0a8ec3fbc0
fix: add console error to log text selection failed
2025-12-19 19:03:39 +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
256234b3d8
Update environment configuration for composer_controller_test.dart
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
Théo Poizat
68e55a0e22
Improve AI Scribe prompts
...
- Mutualize some commands
- Avoid unexpected behavior
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
dab246
b3dd6a9e85
feat(ai-scribe): Fix missing HTML entity escaping creates correctness and potential security issues
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
088b922b0e
feat(ai-scribe): Fix alignment of prompt when AI button at very right of composer or response have long result but at the bottom of composer
2025-12-19 19:03:39 +07:00
dab246
89eb1ecc71
feat(ai-scribe): Fix click on response text of AI, dialog to be disappeared
2025-12-19 19:03:39 +07:00
Théo Poizat
2b6504f8be
Unpixelize gradient sparkle
2025-12-19 19:03:39 +07:00
Théo Poizat
9a8989a310
Make the AI Scribe suggestion success selectable text
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
fd33ccf5e4
feat(ai-scribe): Auto hide Replace action when perform prompt in new email without content
2025-12-19 19:03:39 +07:00
dab246
d62b3db985
feat(ai-scribe): Add Enter to send prompt directly and Shift + Enter to add new line
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
863bc115bb
feat(ai-scribe): Fix click outside during scribe generating response, scribe be closed
2025-12-19 19:03:39 +07:00
dab246
96b73aa971
feat(ai-scribe): Avoid the prompt being obscured when there is a lot of content.
2025-12-19 19:03:39 +07:00
dab246
3e337d7f3d
feat(ai-scribe): Allow scroll the prompt's response is long
2025-12-19 19:03:39 +07:00
dab246
ea8dedda46
feat(ai-scribe): Fix generate ai text is failed
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
3fe54e1847
Add Intl for Replace text
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
af5f316e31
feat(ai-scribe): Optimize imports to avoid having too many lines of code in a single file
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
63d9a5d740
Strong typing AI exceptions
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
253f22c600
Remove value now unused
...
No more API key and url needed because everything is managed by the backend.
Also backend does not accept a model parameter for the moment.
2025-12-19 19:03:39 +07:00