stanig2106
3fda5649c3
rebrand: Workavia Mail (tier 1+2+3+4)
...
Build Docker images with Sentry / Build release image with Sentry (push) Failing after 1m59s
Release / Release (android, ubuntu-latest) (push) Failing after 38m31s
Release / Release (ios, macos-14) (push) Has been cancelled
Integration tests / Run integration tests for mobile apps (push) Failing after 15s
Build dev binaries / Build app (ios, macos-14) (push) Waiting to run
Build dev binaries / Build app (android, ubuntu-latest) (push) Failing after 34m13s
Tier 1+2 - web/UI user-facing:
- Replace all visible "Twake Mail" / "Linagora" with "Workavia Mail"
- Swap 3 logo SVGs (icon kept, wordmark replaced via SVG <text>)
- Splash: replace icon_twp.png with HTML <div>Workavia</div>
- Remove power_by_linagora.svg, replace with AGPL SourceLinkWidget
- Patch web/index.html, manifest.json, login/logout-callback HTMLs
- Patch all 16 ARB locales + scribe ARB + app_localizations.dart
- Patch 4 web/i18n/*.json (FR/EN/DE/VI smart banner titles)
- App grid reduced to "Mail" + "Calendar"
- User-Agent: Twake-Mail -> Workavia-Mail
Tier 3+4 - mobile native:
- Bundle ID: com.linagora.{android,ios}.teammail -> com.workavia.mail
- URL schemes consolidated: teammail.mobile/twakemail.mobile -> workaviamail.mobile
- Android: applicationId, namespace, AndroidManifest, strings.xml
- Android: move Kotlin sources com.linagora.android.tmail -> com.workavia.mail
- Android: empty branding.xml + android12branding.xml (vector text not patchable)
- iOS: Info.plist (CFBundleDisplayName/Name, schemes), Runner.entitlements
- iOS: TwakeMailNSE + TeamMailShareExtension entitlements + Info.plist
- iOS: Runner.xcodeproj (12x PRODUCT_BUNDLE_IDENTIFIER, 9x APP_GROUP_ID)
- iOS: TokenRefreshManager.swift redirect URLs
- iOS: fastlane Appfile + Matchfile
- Dart: oidc_constant, app_config keychain, notification MethodChannel
Known follow-ups (require user action):
- Apple Team ID KUT463DS29 (still Linagora) -> needs Workavia team for App Store
- Android branding.xml emptied: need PNG/path-converted wordmark for splash
- iOS sub-bundle paths (TwakeMailNSE/, TeamMailShareExtension/) on disk unchanged
- iOS App Store URL emptied; Play Store ID points to com.workavia.mail
2026-04-29 18:12:55 +02: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
Dang Dat
77c2ef745f
TF-4308 add domain state, interactor, model extensions, and localization
2026-04-14 17:16:10 +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
c5401561ca
Add Keyboard shortcuts dictionary for close email detail view in Setting
2026-04-06 15:29:16 +07: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
Dat H. Pham
fb0553bd9c
Update lib/l10n/intl_ru.arb
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-04-01 18:58:07 +07:00
Dat H. Pham
aaed3b9407
Fix translation for Label
2026-04-01 18:58:07 +07:00
Dat H. Pham
2f4445c4ba
Add translation for Label
2026-04-01 18:58:07 +07:00
Dat H. Pham
8c502451b5
Fix translation wrong in Fr
2026-04-01 18:58:07 +07:00
Zoé Bellot
d41ebf594b
Translated using Weblate (French)
...
Currently translated at 98.8% (848 of 858 strings)
Translation: Linagora/TeamMail
Translate-URL: https://hosted.weblate.org/projects/linagora/teammail/fr/
2026-04-01 18:58:07 +07:00
Florian DANIEL aka Facyla
7f078f8cae
Translated using Weblate (French)
...
Currently translated at 100.0% (812 of 812 strings)
Translation: Linagora/TeamMail
Translate-URL: https://hosted.weblate.org/projects/linagora/teammail/fr/
2026-04-01 18:58:07 +07:00
dab246
4c837ed9cf
TF-4370 Add Description field to Create new Label modal
2026-03-25 19:45:46 +07:00
dab246
4a94f088d5
TF-4367 Fix duplicated Re: prefix when reply email with French locale
2026-03-11 13:33:28 +07:00
dab246
777b47159d
TF-4354 Remove all logic related to Label Visibility in Settings
2026-03-05 10:32:56 +07:00
dab246
b98fa17f69
TF-4337 Fix translate properly in french sending failed modal
2026-02-23 13:44:51 +07:00
Théo Poizat
7a4d0dbf46
Add missing languages in Scribe
...
To fit languages supported in tmail settings
2026-02-03 14:26:28 +07:00
Théo Poizat
8b71b1e995
Fix some Scribe translations
...
- Added missing translations
- Removed missing translations
- Some small translations updates
2026-02-03 14:26:28 +07:00
Dat H. Pham
7a3ed14131
Translate vi, ru, fr
2026-01-28 06:48:11 +07:00
dab246
9760b6f077
TF-4243 Implement delete a label in presentation layer
2026-01-27 15:08:02 +07:00
dab246
5914877b1b
TF-4243 Add Delete label action to context menu
2026-01-27 15:08:02 +07:00
dab246
879b18bc45
TF-4236 Fix guard delete UI when no handler is provided.
2026-01-27 12:04:11 +07:00
dab246
1058b94363
TF-4236 Implement remove a label from an thread
2026-01-27 12:04:11 +07:00
dab246
3ef66bbbda
TF-4236 Implement remove a label from an email when unselect in context menu Label as
2026-01-27 12:04:11 +07:00
dab246
bac101021e
TF-4233 Implement edit label action
2026-01-26 09:13:54 +07:00
dab246
0302e09981
TF-4233 Show popup menu when click three dot on label item
2026-01-26 09:13:54 +07:00
dab246
7839e6b339
TF-4229 Add widget for label search field
2026-01-22 10:54:04 +07:00
dab246
f9675556cb
TF-4227 Update the correct message for the Tag when there are no emails.
2026-01-19 11:34:43 +07:00
dab246
94fd6f8071
TF-4195 Add Label to Thread
2026-01-19 11:34:43 +07:00
dab246
0076a7af57
TF-4195 Implement add a Label to an email on mobile
2026-01-19 11:34:43 +07:00
dab246
78de7de3a6
TF-4195 Implement add a Label to an email
2026-01-19 11:34:43 +07:00
dab246
03b3d1181f
TF-4195 Add Label as to email context menu
2026-01-19 11:34:43 +07:00
dab246
10038a3836
TF-4193 Handle multi click to enable Label visibility feature
2026-01-19 11:34:43 +07:00
dab246
d1cd9efbab
TF-4193 Add Label to Preferences in Setting
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
75f55e6507
TF-4179 Add Label bar in sidebar
2026-01-19 11:34:43 +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
09f0ba854a
TF-4141 Remove counter of 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
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
Dat H. Pham
25ea472688
Display AI toggle in Composer
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
96c95866c6
Open AI Scribe from bottom bar button
2025-12-19 19:03:39 +07:00
Théo Poizat
dced5b5dc7
Add AI scribe widgets
...
- Button : the button with sparkle icon to display AI scribe
- Menu : the menu where you can select the action (eg: translate)
- Bar : the input where you can write a custom action
- Suggestion : the wrapper of the result of the LLM
2025-12-19 19:03:39 +07:00
Théo Poizat
c858ac40f5
Add translations for scribe module
...
Added a separated ScribeLocalizations to keep it separated from main app.
2025-12-19 19:03:39 +07:00
Théo Poizat
7e0c98b080
Add scribe module
2025-12-19 19:03:39 +07:00