Commit Graph

51 Commits

Author SHA1 Message Date
c0aacb7d62 GODT-2224: Allow the user to specify max sync memory usage in Vault 2023-01-31 09:40:22 +01:00
e464e11ab9 GODT-2224: Refactor bridge sync to use less memory
Updates go-proton-api and Gluon to includes memory reduction changes and
modify the sync process to take into account how much memory is used
during the sync stage.

The sync process now has an extra stage which first download the message
metada to ensure that we only download up to `syncMaxDownloadRequesMem`
messages or 250 messages total. This allows for scaling the download
request automatically to accommodate many small or few very large
messages.

The IDs are then sent to a download go-routine which downloads the
message and its attachments. The result is then forwarded to another
go-routine which builds the actual message. This stage tries to ensure
that we don't use more than `syncMaxMessageBuildingMem` to build these
messages.

Finally the result is sent to a last go-routine which applies the
changes to Gluon and waits for them to be completed.

The new process is currently limited to 2GB. Dynamic scaling will be
implemented in a follow up. For systems with less than 2GB of memory we
limit the values to a set of values that is known to work.
2023-01-30 15:05:43 +01:00
24c68f100e GODT-2210: v3.0 splash screen.
Other: new splash screen content.
2023-01-25 09:42:00 +00:00
a377384553 Other: added user's primary email address to the vault. 2023-01-17 11:27:54 +01:00
03c8c323bc GODT-2251: Store gluon cache in user cache rather than user data 2023-01-16 16:27:41 +01:00
0580842ad2 GODT-2229: Own the full path for gluon and do not change Database path. 2023-01-12 13:23:09 +00:00
715efaa087 Revert "GODT-2229: Allow changing cache folder to a non-empty folder."
This reverts commit b19e16e4b8.
2023-01-11 10:19:38 +01:00
b19e16e4b8 GODT-2229: Allow changing cache folder to a non-empty folder. 2023-01-10 16:40:52 +00:00
3743e45566 GODT-2221: Set DOH off by default. 2023-01-04 12:08:06 +00:00
6d0a128111 Other: Update copyright year 2023-01-02 11:09:11 +01:00
e4b81063cb GODT-2213: Don't unnecessarily enable/disable autostart 2022-12-19 08:29:57 +00:00
55ee6a9d13 Other: default UIDVALIDITY 2022-12-13 16:16:54 +01:00
2b25fe1fa4 GODT-2173: fix: Migrate Bridge password from v2.X. 2022-12-13 14:25:39 +00:00
57d563d488 GODT-2173: fix: do not migrate keychain once migrated 2022-12-13 14:25:39 +00:00
3c24ac26d5 Other: Sneaky worker count bump (*2 -> *4) 2022-12-13 10:35:55 +01:00
58d04f9693 GODT-2187: Skip messages during sync that fail to build/parse 2022-12-06 14:07:13 +00:00
9f64e8a6fa Other: Wipe vault properly on factory reset
Deleting the file isn't enough because it's still held in memory
and is written back to disk on the next write (SetLastVersion during
bridge teardown).
2022-11-29 09:59:30 +01:00
e601245f01 Other(chore): Bump major version to v3 2022-11-23 16:08:27 +01:00
ad1fb47b0d Other: Switch from liteapi to go-proton-api 2022-11-23 15:17:56 +01:00
4b6d0d035e GODT-2085: Ensure minimum sync worker count
Make sure that we are at least using 16 workers for sync, otherwise
multiply the current sync worker count by 2.

Finally, this patch also logs the duration of the time it takes to
transfer all the messages from the server.
2022-11-22 15:02:52 +00:00
0df4f41269 Other: Remove unused SyncBuffers setting 2022-11-22 13:59:06 +01:00
e6a780ebd4 Other: Don't encrypt vault version 2022-11-21 09:58:56 +00:00
48dfdabaf4 GODT-1975: Migrate keychain secrets 2022-11-21 09:00:51 +00:00
7ed8d76d84 GODT-1976: Migrate app settings from prefs.json 2022-11-21 09:00:51 +00:00
9e6cbcb35e GODT-2040: Bump UID validity when clearing sync status 2022-11-20 21:48:22 +01:00
7d84ab37f6 GODT-2100: Load users in parallel at startup 2022-11-19 12:13:33 +01:00
e60bbaa60f Other: Add more user-level logs 2022-11-18 13:30:45 +00:00
1e48ab4b9c GODT-2047: Clear last event ID when clearing sync status 2022-11-17 13:18:47 +00:00
223b14e556 Other: Configure attachment pool size in vault 2022-11-16 13:48:31 +01:00
6bf67917fb GODT-2034: Basic vault migration ability (proof of concept) 2022-11-16 13:48:30 +01:00
c548ba85fe Other: Add more extensive logging 2022-11-16 13:48:30 +01:00
bc7912e8fb GODT-2022: Fix change between address modes 2022-11-16 13:48:30 +01:00
924a423488 Other: Add some more debug logs 2022-11-16 13:48:30 +01:00
3c4e8730ac Other: Read sync workers setting from vault 2022-11-16 13:48:30 +01:00
d4c1016e55 Other: Consider vault corrupt if it cannot be unmarshaled 2022-11-16 13:48:30 +01:00
784896434d Other: Add vault editor CI tool 2022-11-16 13:48:30 +01:00
d376b88cf0 Other: Use msgpack instead of json in vault
msgpack is much faster at serializing and deserializing than json. Using
it in the vault gives a performance boost.
2022-11-16 13:48:30 +01:00
7c62312220 Other: Fix all linter errors 2022-11-16 12:26:09 +01:00
e10cd2a3ed GODT-1901: Allow to set IMAP SSL from UI 2022-11-16 12:26:09 +01:00
a74b025de3 Other: Factory reset 2022-11-16 12:26:09 +01:00
ef2dea89b4 Other: Safer vault 2022-11-16 12:26:09 +01:00
fd63611b41 Other: Safer user types 2022-11-16 12:26:09 +01:00
1c922ca083 Other: Fix flaky cookies test 2022-11-16 12:26:09 +01:00
509a767e50 GODT-1657: More stable sync, with some tests 2022-11-16 12:26:09 +01:00
9d69a2e565 GODT-1657: Stable sync (still needs more tests) 2022-11-16 12:26:09 +01:00
120ac6c480 GODT-1609: Fix tests 2022-11-16 12:26:09 +01:00
6ac68984f2 GODT-1609: Fix bridge password encoding 2022-11-16 12:26:09 +01:00
b536b8707e GODT-1609: use byte array for password 2022-11-16 12:26:09 +01:00
e9672e6bba GODT-1815: Combined/Split mode 2022-11-16 12:26:08 +01:00
9670e29d9f GODT-1815: Start with missing gluon files 2022-11-16 12:26:08 +01:00