Commit Graph
100 Commits
Author SHA1 Message Date
link2xt 491d6abe49 docs(deltachat-rpc-client): document Account.import_vcard() 2025-03-10 23:54:31 +00:00
link2xt 8e9c79061f docs(deltachat-rpc-client): document Account.check_qr() 2025-03-10 23:54:31 +00:00
link2xt 94f57e786d api(deltechat-rpc-client): add Account.wait_for_msgs_noticed_event() 2025-03-10 23:54:31 +00:00
link2xt db1a7f6084 api(deltachat-rpc-client): add Account.get_device_chat() 2025-03-10 23:54:31 +00:00
link2xt 25df14707e api(deltachat-rpc-client): add Account.device_contact 2025-03-10 23:54:31 +00:00
link2xt 26672900d5 fix: update async-imap to 0.10.23 to fix division by zero 2025-03-10 23:18:16 +00:00
link2xt 82573dc78c api(deltachat-rpc-client): make it possible to clone accounts 2025-03-10 22:43:23 +00:00
link2xt 35d4eb5168 chore(release): prepare for 1.156.3 2025-03-09 20:46:22 +00:00
link2xt b6d4d10025 chore: update iroh to 0.33 2025-03-09 18:21:24 +00:00
link2xt 53fa9ebf11 build: fixup nix flake after removing git dependency 2025-03-09 18:03:34 +00:00
link2xt 287829d385 build: use mailbuilder from crates.io
This gets rid of the last git dependency.
2025-03-09 17:53:59 +00:00
link2xt d2e1e57890 chore: make cargo-deny happy 2025-03-08 01:45:13 +00:00
link2xt c4e6823396 api!: remove key_gen_type config
This removes the ability to generate RSA keys.
2025-03-06 21:41:41 +00:00
link2xt 8e5f4a2d53 api(jsonrpc): add API to make and import vCards 2025-03-06 21:12:18 +00:00
link2xt dd6e3973d2 api(jsonrpc): add import_vcard_contents() method 2025-03-06 21:12:18 +00:00
link2xt 33b9a582f3 test: transfer vCards in TestContext.create_chat()
SecureJoin and importing a vCard are the primary
ways we want to support for creating contacts.
Typing in an email address and relying on Autocrypt
results in sending the first message unencrypted
and we want to clearly separate unencrypted and encrypted
chats in the future.

To make the tests more stable, we set up test contacts
with vCards as this always immediately
results in creating a single encrypted chat
and this is not going to change.
2025-03-06 21:12:18 +00:00
link2xt 0913b6707b api!: remove save_mime_headers config option and dc_get_mime_headers()
This was only used in tests.
`msgs.mime_headers` coulmn remains
as it is used for HTML messages.
2025-03-06 21:12:18 +00:00
link2xt 476224b980 test: replace create_chat() with get_chat() in test_setup_contact_ex() and test_secure_join()
We do not want to create the chat,
but only check some properties of it even when it is hidden.
Creating a chat makes it appear in the chatlist.
2025-03-06 21:12:18 +00:00
link2xt 490171650a chore(release): prepare for 1.156.2 2025-03-02 20:49:30 +00:00
link2xt efbc4780f2 fix: upgrade native-tls from 0.2.13 to 0.2.14
This fixes the problem introduced by upgrading native-tls from 0.2.11 to 0.2.13 that prevented using OpenSSL on Android.
2025-03-02 18:16:15 +00:00
link2xt 43a40b9349 chore(release): prepare for 1.156.1 2025-02-28 01:23:21 +00:00
link2xt 43a3e40bc7 fix: update mailparse to 0.16.1 to fix panic when parsing a message 2025-02-28 01:12:01 +00:00
link2xt 33f96d4010 build: update fuzzing setup
Say in the README that cargo-bolero@0.8.0
should be installed as newer versions
do not work currently.

Update `mailparse` to 0.16.0
because this is what Delta Chat currently uses.

I also added fuzzer outputs to .gitignore
2025-02-27 21:05:33 +00:00
link2xt 44f72e7f85 fix: log tokio::fs::metadata errors 2025-02-27 16:56:55 +00:00
link2xt 08be98f693 chore(release): prepare for 1.156.0 2025-02-27 00:24:03 +00:00
link2xt 8c2207d15e fix: make it impossible to overwrite default key
Replacing default key
when a profile is already part of
verified groups results in
`[The message was sent with non-verified encryption. See 'Info' for more details]`
messages for other users.

It is still possible
to import the default key before
Delta Chat generates the key.
2025-02-26 20:56:52 +00:00
link2xt ae1bc54b69 fix: do not delete files if cannot read their metadata 2025-02-26 19:08:32 +00:00
link2xt b916937a7a feat: enable bcc-self automatically when doing Autocrypt Setup Message 2025-02-22 23:47:36 +00:00
link2xt f94b21d4aa chore: remove RUSTSEC-2025-0007 exception because "ring" is maintained again
This backs out commit 985ef22d75.
2025-02-22 18:20:05 +00:00
link2xt bbb267331c feat: allow scanning multiple securejoin QR codes in parallel 2025-02-20 18:25:45 +00:00
link2xt 449ba4e192 ci: remove deprecated DeterminateSystems/magic-nix-cache-action 2025-02-20 12:43:48 +00:00
link2xt 1ad72fd826 build(nix): update hashes of git dependencies 2025-02-19 22:51:40 +00:00
link2xt 67f768fec0 refactor: use mail-builder instead of lettre_email 2025-02-18 21:29:35 +00:00
link2xt 82ea4e2ae2 chore: update some dependencies 2025-02-18 17:29:21 +00:00
link2xt 0f449cc7eb chore: update some dependencies 2025-02-18 11:19:53 +00:00
link2xt 48fcf66002 chore(release): prepare for 1.155.6 2025-02-17 20:42:48 +00:00
link2xt 8eff4f40ff fix: show padlock when the message is not sent over the network 2025-02-17 20:30:52 +00:00
link2xt 20d6f0f2ca fix: do not allow non-members to change ephemeral timer settings 2025-02-17 13:44:18 +00:00
link2xt 546d13ef72 fix: use dedicated ID for sync messages affecting device chat
Otherwise `device@localhost` chat may appear on the other device.
2025-02-17 12:33:35 +00:00
link2xt 130bef8c4a feat: use UUID v4 to generate Message-IDs
This hopefully does not trigger Apple spam filter
which seems to pass thorugh Message-IDs with hyphens.
It is not confirmed, but better blend in
by mimicking existing popular email
where possible.
2025-02-17 12:11:51 +00:00
link2xt 41c2a80bd7 feat: sort past members by the timestamp of removal 2025-02-17 09:33:31 +00:00
link2xt 4f71c77ae4 build: remove deprecated node module 2025-02-15 23:06:49 +00:00
link2xt 96704eb73d ci: audit workflows with zizmor 2025-02-15 01:36:46 +00:00
link2xt 4fb24d05dc chore(release): prepare for 1.155.5 2025-02-14 01:07:16 +00:00
link2xt 81e9628ab7 refactor: do not cancel the task returned from async_imap Handle.wait_with_timeout
This task is not guaranteed to be cancellation-safe
and provides a stop token for safe cancellation instead.
We should always cancel the task properly
and not by racing against another future.
Otherwise following call to Handle.done()
may work on IMAP session that is in the middle
of response, for example.
2025-02-10 20:12:36 +00:00
link2xt aaa02968d3 chore: add RUSTSEC-2025-0006 to deny.toml 2025-02-10 20:11:47 +00:00
link2xt 302aa5a5f7 chore(release): prepare for 1.155.4 2025-02-10 19:19:03 +00:00
link2xt a0ff0d71bc fix: do not include CRLF before MIME boundary in the part body
This change adds a test and updates mailparse from 0.15.0 to 0.16.0.
mailparse 0.16.0 includes a fix for the bug
that resulted in CRLF being included at the end of the body.
Workaround for the bug in the `pk_validate` function is also removed.
2025-02-10 12:35:27 +00:00
link2xt 068726453e ci: upgrade Rust from 1.84.0 to 1.84.1 2025-02-09 17:34:41 +00:00
link2xt 0973a46245 fix: make vCard parsing more robust in case of trailing newlines
Contacts should be added only if there is an END:VCARD
detected, not because we found the end of file.
2025-02-06 22:25:47 +00:00
link2xt e22d980845 fix: use CRLF newlines in vCards
This is a requirement from
<https://datatracker.ietf.org/doc/html/rfc6350#section-3.2>
2025-02-06 21:54:12 +00:00
link2xt 4ef6788ffd chore(release): prepare for 1.155.3 2025-02-05 05:56:25 +00:00
link2xt 4198ed1efb fix: store device token in IMAP METADATA on each connection
APNS tokens never expire unless
the user uninstalls the application.
Because of this in most cases
the token remains valid forever
and chatmail server never removes the token
even if it is unencrypted
or the user has removed Delta Chat profile
from the device but not the whole application.

We want to modify chatmail servers
to remember the last time the token was stored
and remove them after some time.
Before we do this, we need to modify
the client to store the device token
each time so the server knows which tokens are used
and can update their timestamps.
2025-02-05 05:36:50 +00:00
link2xt 6f5620dad5 chore: update futures-concurrency
This removes two duplicate dependencies.
2025-02-05 03:21:13 +00:00
link2xt 1d55458781 chore: upgrade iroh from 0.31 to 0.32 2025-02-04 19:45:01 +00:00
link2xt 6297bb967a chore: upgrade iroh from 0.30 to 0.31 2025-02-04 19:16:50 +00:00
link2xt 0040c17892 test: make sure DCBACKUP2 compatibility does not break again
QR code format changed because `NodeAddr` serialization
changed between iroh 0.29.0 and iroh 0.30.0.
We have already released iroh 0.30.0,
so the test at least makes change we don't break compatibility again.
2025-02-04 19:03:46 +00:00
link2xt 258b5cde70 chore: update pgp to 0.15 2025-02-04 17:55:58 +00:00
link2xt 4e5125b98d chore: update OpenSSL to fix RUSTSEC-2025-0004 2025-02-03 13:53:34 +00:00
link2xt ecbec41b97 chore(release): prepare for 1.155.2 2025-01-31 01:57:30 +00:00
l c760e173fa fix: no implicit member changes when we are added to the group (#6493) 2025-01-30 18:30:06 +00:00
link2xt 14d048bea8 feat: improve logging around IMAP IDLE 2025-01-28 00:35:28 +00:00
link2xt a563c4851c fix: use BufReader when reading .xdc files 2025-01-27 19:23:07 +00:00
link2xt 1fd6d80e6d chore(release): prepare for 1.155.1 2025-01-25 14:50:41 +00:00
link2xt 104cc3accf fix: use 0 timestamps if Chat-Group-Member-Timestamps is not set 2025-01-25 14:22:48 +00:00
link2xt fc06351fa3 fix: only send Chat-Group-Member-Timestamps in groups 2025-01-25 14:11:57 +00:00
link2xt 6430977670 fix: use non-empty To: field for "saved messages" 2025-01-24 13:29:14 +00:00
link2xt 8435f40dae fix: don't create tombstones when synchronizing broadcast list members 2025-01-23 17:56:08 +00:00
link2xt 49a0b2d948 feat: only accept SetContacts sync messages for broadcast lists
Delta Chat does not send synchronization
messages for group member lists,
so we don't need to maintain the code accepting it.
2025-01-23 17:56:08 +00:00
link2xt 7bc9dd6c98 chore(release): prepare for 1.155.0 2025-01-23 03:06:03 +00:00
link2xt 1a3a09dfc3 build: nix flake update fenix 2025-01-23 02:59:10 +00:00
link2xt 32459b3fdc Reapply "build: increase MSRV to 1.81.0"
This reverts commit 9d331483e9.
2025-01-23 02:59:10 +00:00
link2xt 52e9daaa1f Revert "build: downgrade Rust version used to build binaries"
This reverts commit d822da3c9f.
2025-01-23 02:59:10 +00:00
link2xt a3734a5f87 Reapply "chore(cargo): bump rustyline from 14.0.0 to 15.0.0"
This reverts commit 6cd6aca7b8.
2025-01-23 02:59:10 +00:00
link2xt 30e1df0754 Revert "bulid(nix): use new fenix for dev shell"
This reverts commit 5069b585c8.
2025-01-23 02:59:10 +00:00
link2xt 744cab1553 feat: expire past members after 60 days 2025-01-22 20:39:15 +00:00
link2xt 8dcd8aa69d api: add JSON-RPC API to get past members 2025-01-22 11:53:56 +00:00
link2xt 2b5ce35c2d chore(release): prepare for 1.154.3 2025-01-20 20:22:40 +00:00
link2xt e3b9c9b209 build(nix): update rust-email hash in flake.nix 2025-01-20 16:55:47 +00:00
link2xt 74930e995d build: remove encoded-words from flake.nix 2025-01-20 16:42:04 +00:00
link2xt 8af6cdf49c chore(release): prepare for 1.154.2 2025-01-20 15:22:05 +00:00
link2xt 19a841657c fix: do not create tombstones for members removed from unpromoted groups
If we create an unpromoted group,
add a member there and then remove it
before we promote a group, there is no need to
add such member to the list of past members
and send the address of this member to the group
when it is promoted.
2025-01-20 15:12:35 +00:00
link2xt 3cbfb47b6e build: switch to non-git version of encoded-words 2025-01-19 10:51:46 +00:00
link2xt 0b9746b57e refactor: make memberlist update logic easier to follow 2025-01-18 22:22:19 +00:00
link2xt fa016b36fb chore(release): prepare for 1.154.1 2025-01-15 19:23:27 +00:00
link2xt 69e01b5197 test: expect trashing of no-op "member added" in non_member_cannot_modify_member_list 2025-01-15 18:27:55 +00:00
link2xt ffd2ec9424 chore(release): prepare for 1.154.0 2025-01-15 17:56:40 +00:00
link2xt 498979c608 fix: trash no-op addition messages
This partially restores the fix from c9cf2b7f2e
that was removed during the addition of new group consistency at de63527d94
but only for "Member added" messages.

Multiple "Member added" messages happen
when the same QR code is processed multiple times
by multiple devices.
2025-01-15 17:41:15 +00:00
link2xt 3e7b662796 feat: do not allow non-members to modify member list 2025-01-15 16:43:23 +00:00
link2xt 29d7e0131e refactor: remove unnecessary is_contact_in_chat check 2025-01-14 00:27:37 +00:00
link2xt 187274d7b7 fix: create new tombstone in chats_contacts if the row does not exist
Otherwise new members do not see past members
even if they receive info about them in every message.
2025-01-12 01:42:02 +00:00
link2xt de63527d94 feat: new group consistency algorithm
This implements new group consistency algorithm described in
<https://github.com/deltachat/deltachat-core-rust/issues/6401>

New `Chat-Group-Member-Timestamps` header is added
to send timestamps of member additions and removals.
Member is part of the chat if its addition timestamp
is greater or equal to the removal timestamp.
2025-01-11 07:52:49 +00:00
link2xt cb43382896 ci: update Rust to 1.84.0 2025-01-10 01:58:08 +00:00
link2xt 6e8668e348 build: increase minimum supported Python version to 3.8
Python 3.7 is not supported on GitHub Actions ubuntu-latest runner:
https://github.com/actions/setup-python/issues/962

Python 3.7 has reached EOL more than 1 year ago anyway,
so not worth the effort supporting it.
2025-01-09 14:58:01 +00:00
link2xt 7f7c76f706 test: use assert_eq! to compare chatlist length 2025-01-05 23:44:34 +00:00
link2xt 3fe9a7b17f refactor: use let..else 2025-01-05 23:44:28 +00:00
link2xt fff4020013 chore(release): prepare for 1.153.0 2025-01-05 09:08:23 +00:00
link2xt 4ffc0ca047 refactor: don't ignore get_for_contact errors 2025-01-05 02:52:19 +00:00
link2xt 3d19996f34 test: fix test_logged_ac_process_ffi_failure flakiness
This test keeps failing on macOS CI,
capturing events like `DC_EVENT_ACCOUNTS_ITEM_CHANGED`
before FailPlugin is setup.
These CI runners likely get less resources
because there is a limited number of them,
and this triggers this race condition.

Race is fixed by setting up fail plugin
before starting to capture events.
2025-01-05 01:36:09 +00:00
link2xt 7e5cec66ba refactor: simplify self_sent condition 2025-01-05 00:36:10 +00:00