Instead of applying inbox rules based on the unread mail state in the
inbox folder, we introduce the new ProcessingState enum on
the mail type. If a mail has been processed by the leader client, which
is checking for matching inbox rules, the ProcessingState is
updated. If there is a matching rule the flag is updated through the
MoveMailService, if there is no matching rule, the flag is updated
using the ClientClassifierResultService. Both requests are
throttled / debounced. After processing inbox rules, spam prediction
is conducted for mails that have not yet been moved by an inbox rule.
The ProcessingState for not matching ham mails is also updated using
the ClientClassifierResultService.
This new inbox rule handing solves the following two problems:
- when clicking on a notification it could still happen,
that sometimes the inbox rules where not applied
- when the inbox folder had a lot of unread mails, the loading time did
massively increase, since inbox rules were re-applied on every load
Co-authored-by: amm <amm@tutao.de>
Co-authored-by: Nick <nif@tutao.de>
Co-authored-by: das <das@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jhm <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
Reviewed by jhm, abp, das.
The library is added to support training a spam classification model on
client. A custom rollupTensorFlow was created to only use the needed
methods on the final file, which also has multiple stubs which remove
code which is unwanted such as Requests.
Co-authored-by: jhm <17314077+jomapp@users.noreply.github.com>
Co-authored-by: abp <abp@tutao.de>
We use the REG command to manipulate/query the Windows registry.
Also adds CommandExecutor so that we have a nice, unit-testable way to
execute commands.
Closes#9398
This version has a fix for breaking mails that contain HTML comments
closed with +2 dashes.
HTML comments closed with more than two dashes weren't handled correctly
by linkify. Causing the comments' closing `>` to be escaped and replaced
by `>`
This resulted in actual markup being commented out.
Example:
`<div><!--comment--->Actual markup</div>`
becomes
`<div><!--comment--->Actual markup</div>-->`
It isn't invoked automatically anywhere but the editors should pick it
up and it can also be run manually.
It also fixes few little issues, e.g. getPrebuiltNativeModuleForWindows
was getting called with the right arguments.
* according to rollups type definitions, the output option property is
ignored by rollup.rollup, so it moved to bundle.write
* we don't use commonjs deps in the desktop bundle anymore, so the
commonjs plugin can go away from DesktopBuilder
[build] remove some unnecessary rollup plugins
[build] unify the native plugins
[build] vendor keytar
[build] vendor better-sqlite3 deps and restrict module resolution
it's now checked in and can be updated with buildSrc/updateLibs.js
close#4213