Commit graph

12396 commits

Author SHA1 Message Date
jenkins build server
c5ee61ee78 v315.251204.0 2025-12-04 14:37:55 +01:00
jenkins build server
0cb4cb4795 update translations 2025-12-04 14:36:35 +01:00
toj
52c86f1074 hotfix: prevent users from submitting signupform twice
Co-authored-by: nig <nig@tutao.de>
2025-12-04 14:22:03 +01:00
jhm
94708755e8
clear existing spam classifier retraining intervals on login
Before creating a new spam classifier retraining interval,
we need to clear any already existing retraining setInterval calls
in the SpamClassifier.ts.
2025-12-03 11:47:19 +01:00
jenkins build server
78c3c1b1c6 v315.251202.0 2025-12-02 14:02:08 +01:00
jenkins build server
9fb4273d04 update translations 2025-12-02 14:00:47 +01:00
abp
870df20f87
fix client spam classification metrics
All ProcessInboxData should have a valid classifierType, if classified
by our spam classification model. We always need to set
ClientClassifierType.CLIENT_CLASSIFICATION in this case.

Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
2025-12-02 13:44:37 +01:00
jhm
dc1b33f02e
remove chunk loading logging from SpamClassifierDataDealer.ts 2025-12-02 13:44:37 +01:00
das
600b279c5c
save spam classification model in IndexedDB on webApp
From now on, we save the trained SpamClassificationModel for each
mailGroup (mailbox) to the IndexedDB on the webApp. On devices where
OfflineStorage is available, we save it to the OfflineStorage. This
separation is handled by the SpamClassifierStorageFacade.

This commit furthermore fixes a bug, where the metadata, such
as lastTrainedFromScratchTime and lastTrainingDataIndexId were not saved
per mailGroup (mailbox), but instead only globally. We now bundle them
with the SpamClassificationModel as SpamClassificationModelMetaData.

When removing a group membership with GroupType.Mail the
CustomUserCacheHandler does now also remove any stored
SpamClassificationModel corresponding to this mailGroupId.

Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: das <das@tutao.de>
2025-12-02 13:44:37 +01:00
abp
44fd50d9bf
send ProcessInboxService request only when leader client in list models 2025-12-02 13:44:37 +01:00
nig
1c90b80a51
v315.251201.1 2025-12-01 18:11:28 +01:00
toj
fded0f44c9
fix signup language set by website redirect
Co-authored-by: yoy <yoy@tutao.de>
2025-12-01 18:03:24 +01:00
mac-github
f885f4d0fd
fix default selected plan when no paid plan is available 2025-12-01 18:03:11 +01:00
jenkins build server
83d842f8d5 v315.251201.0 2025-12-01 15:24:07 +01:00
jenkins build server
601e34a0a0 update translations 2025-12-01 15:22:47 +01:00
hrb-hub
63327633aa Log list elements listId for permission not found errors in CryptoFacade
Co-authored-by: paw <paw-hub@users.noreply.github.com>
2025-12-01 14:46:08 +01:00
yoy
f37a70f400 fix: Remove auto login prevention after signup 2025-12-01 14:33:49 +01:00
yoy
e858af4c13 fix: replace old classes to new 2025-12-01 13:11:45 +01:00
toj
fb5d289cb9 fix autologin page reload parameters 2025-12-01 13:11:45 +01:00
jenkins build server
05a229174e v315.251128.1 2025-11-28 16:51:46 +01:00
jenkins build server
69f310e5d9 update translations 2025-11-28 16:50:26 +01:00
yoy
b36d796ed4 chore!: Update size tokens and classes
- Update the size tokens to use multiple of 4px
- Update the spacing related classes' suffix to use the px sizes
  (i.e. mt-s -> mt-4, pb-l -> pb-32)
2025-11-28 16:40:05 +01:00
yoy
ecabae0c44 fix: Improve theme colors to align oklch chroma values and reduced tint 2025-11-28 16:40:05 +01:00
yoy
9633187600 fix: Use on_surface instead of on_surface_variant if applicable 2025-11-28 16:40:05 +01:00
mac-github
f5bcfa30df fix the bottom padding on some signup wizard buttons
Co-authored-by: Yohei <yoy@tutao.de>
2025-11-28 16:40:05 +01:00
nig
c82f73134b add age confirmation to settings & news item
since we're removing the age checkbox from signup, we have
to add it to the usage test opt-in since we can't get consent
for that from someone that's 15 or younger (it has to be a legal
guardian).

We accomplish this by adding the checkbox as a required step to activate
usage tests from the news item and with a new dialog that asks for
confirmation after selecting "Activated" in the settings.
2025-11-28 16:40:05 +01:00
toj
63616ccb54 Improve Signup flow
General

- Do auto-login after the signup completion
  Only create persistent session after recovery code was shown
- Extend new account creation process to cover gift cards

Language

- Use the website's language when it is passed by the query param
- Add language selector in the login page
- Make dropdown to resize dynamically on filtering
- Replace dropdown filter input with `SingleLineTextField`
- Reverse dropdown content based on render-direction (up/down)
- Add a Link style dropdown selector for LoginInfoLinks

Plan selector

- Fix plan selector to remember the selected plan during the flow

Form

- Disable button when checkbox is missing in the signup form
- Remove age checkbox from signup form
- Remove privacy policy checkbox from the Terms of Service agreement

Payment page

- Refactor Payment Switcher and remove PaymentMethodInput.ts
- Auto-continue on Paypal account connection
- Save Paypal billing agreement as shares state after connecting
- Update Countrylist to be all in english Deutschland -> Germany
- Re-enable country locator service to show the correct country

Co-authored-by: nig <nig@tutao.de>
Co-authored-by: toj <toj@tutao.de>
Co-authored-by: yoy <yoy@tutao.de>
Co-authored-by: hak <hak@tutao.de>
2025-11-28 16:40:05 +01:00
wrd
ed4bb663c4 Upgrade Electron to 39.2.4 2025-11-28 13:33:15 +01:00
jenkins build server
cf0c7e274c v315.251128.0 2025-11-28 09:29:33 +01:00
jenkins build server
8a41562f74 update translations 2025-11-28 09:28:15 +01:00
and
fb9f4c46a3 Fix auto migration setting advancedRules to null
Closes #9980

Co-authored-by: ivk <ivk@tutao.de>
2025-11-28 09:09:49 +01:00
jenkins build server
320eb110c6 v315.251125.0 2025-11-25 15:00:15 +01:00
jenkins build server
242fa64cf4 update translations 2025-11-25 14:58:54 +01:00
jhm
dc640a3758
improve logging in SpamClassifier
Co-authored-by: abp <abp@tutao.de>
2025-11-25 14:40:28 +01:00
jhm
2aab6b1e6e
fix flaky test in SpamClassificationHandlerTest.ts
Co-authored-by: abp <abp@tutao.de>
2025-11-25 14:23:33 +01:00
abp
58b58a2715
download mail details in SpamClassificationDataDealer in chunks
Downloading all mail details of relevant mails were causing the Android
app to crash in case there are too many mails. Now we download the mail
details of the mails in chunks to make sure we don't consume too much
memory.

Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
2025-11-25 13:57:46 +01:00
jhm
755f5f187a
use existing spam classification model for prediction while retraining
From now on, we initialize the existing spam classification model
already onPartialLoginSuccess, to be able to do predictions as early
as possible. Additionally, while retraining a model, we keep the old
model to allow predictions while retraining is still ongoing.
Re-training as well as full training now happens only after the sync
is done, as indicated by the SyncTracker.

Co-authored-by: abp <abp@tutao.de>
2025-11-25 13:56:57 +01:00
hrb-hub
bdad9922d4 Handle drag and dropped custom folders by setting their parent folder
Close #9992

Co-authored-by: paw <paw-hub@users.noreply.github.com>
2025-11-25 13:00:43 +01:00
wrd
c6e9beebf0 Clear local autosave after sending to approval email. 2025-11-25 12:22:12 +01:00
bir
933f93c761 Fix localShortcuts conflicts on AZERTY keyboard
Some local shortcuts (e.g., Ctrl+A) were overlapping with others because
we were checking shortcuts using keyCode, which differs across keyboard
layouts (e.g., the keyCode for 'A' on AZERTY is `KeyQ`). Fixed this by
checking the key instead of Keycode on latin keyboards.

Close #5179

Co-authored-by: hrb-hub <181954414+hrb-hub@users.noreply.github.com>
2025-11-25 12:22:12 +01:00
jenkins build server
f711780d81 v315.251124.0 2025-11-24 12:44:15 +01:00
jenkins build server
1fa5e72b40 update translations 2025-11-24 12:42:55 +01:00
abp
96a30cf659
do not classify mails with suspicious phishingStatus as ham
We now do not move mails with suspicious phishing status from spam to
inbox even if the client classifier classifies those mails as ham.
2025-11-24 12:34:27 +01:00
abp
0b794a8f09
apply inbox rules for mails delivered to the spam folder
In case server delivers a mail to the spam folder, it was possible that
the client spam classifier classifies it as ham and moves it to the
inbox folder. In that case, those mails would end up staying in inbox
even if there are inbox rules suitable for them. This commit fixes that
and applies inbox rules to mails landing in spam.

Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
2025-11-24 12:34:26 +01:00
jenkins build server
6cca91c315 v315.251120.0 2025-11-20 16:22:52 +01:00
jenkins build server
e84b55c306 update translations 2025-11-20 16:21:32 +01:00
abp
e196f8f8e4
add tensorflow cpu backend as fallback for webgl backend
When the webgl backend is not available or unsupported,
we fall back to the tensorflow cpu backend.

Tensorflow cpu backend library review by abp and jhm.

Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
2025-11-20 16:06:18 +01:00
jhm
ff856f821e
ensure all relevant clientSpamTrainingData is uploaded for mailbox
We want to make sure that all relevant clientSpamTrainingData is
uploaded correctly for each mailbox. Previously, if
clientSpamTrainingData was not empty for a mailbox, we would not upload
more training data. This led to cases where users do only have a
fraction of training data in comparison to mails available in their
mailbox. We now check if the length of the already existing
clientSpamTrainingData is smaller than the number of relevant mails
for training when training from scratch.

Co-authored-by: abp <abp@tutao.de>
2025-11-20 13:14:31 +01:00
nig
aaa7535055
[doc] add doc/TRANSLATING.md 2025-11-20 12:11:05 +01:00
jenkins build server
4a1de6b140 v315.251119.1 2025-11-19 16:35:34 +01:00